scanningCode.vue 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. <template>
  2. <div>
  3. <div class="gva-search-box">
  4. <el-form ref="searchForm" :inline="true" :model="searchInfo">
  5. <el-form-item label="分类">
  6. <el-select v-model="searchInfo.task_type" placeholder="分类查询" >
  7. <el-option
  8. v-for="item in searchStatusOptions"
  9. :key="item.value"
  10. :label="item.label"
  11. :value="item.value"
  12. :disabled="item.disabled"
  13. />
  14. </el-select>
  15. </el-form-item>
  16. <el-form-item label="游戏id">
  17. <el-input v-model="searchInfo.game_id" placeholder="游戏id" />
  18. </el-form-item>
  19. <el-form-item label="日期" prop="create_date">
  20. <el-date-picker
  21. v-model="searchInfo.date"
  22. popper-class="picker-popovers"
  23. class="timefilter"
  24. type="datetime"
  25. placeholder="选择日期时间"
  26. value-format="YYYY-MM-DD"
  27. >
  28. </el-date-picker>
  29. </el-form-item>
  30. <el-form-item>
  31. <el-button size="small" type="primary" icon="search" @click="onSubmit">查询</el-button>
  32. <el-button size="small" icon="refresh" @click="onReset">重置</el-button>
  33. </el-form-item>
  34. </el-form>
  35. </div>
  36. <div class="gva-table-box">
  37. <el-table :data="tableData" @sort-change="sortChange">
  38. <el-table-column align="left" label="游戏ID" min-width="150" prop="game_id" sortable="custom" />
  39. <el-table-column align="left" label="日期" min-width="150" prop="create_date" sortable="custom" />
  40. <el-table-column align="left" label="订单号" min-width="150" prop="order_num" sortable="custom" />
  41. <el-table-column align="left" label="供应商" min-width="150" prop="supplier" sortable="custom" />
  42. <el-table-column align="left" label="上报时间" min-width="150" prop="create_time" sortable="custom" />
  43. <el-table-column fixed="left" align="left" label="类型" min-width="60" prop="task_type" sortable="custom">
  44. <template #default="scope">
  45. <div>
  46. {{ typeFiletr(scope.row.task_type) }}
  47. </div>
  48. </template>
  49. </el-table-column>
  50. </el-table>
  51. <div class="gva-pagination">
  52. <el-pagination
  53. :current-page="page"
  54. :page-size="pageSize"
  55. :page-sizes="[10, 30, 50, 100]"
  56. :total="total"
  57. layout="total, sizes, prev, pager, next, jumper"
  58. @current-change="handleCurrentChange"
  59. @size-change="handleSizeChange"
  60. />
  61. </div>
  62. </div>
  63. </div>
  64. </template>
  65. <script>
  66. export default {
  67. name: 'ScanningTotal',
  68. }
  69. </script>
  70. <script setup>
  71. import {
  72. getLogScanningList,
  73. } from '@/api/log'
  74. import { toSQLLine } from '@/utils/stringFun'
  75. import { ref } from 'vue'
  76. const page = ref(1)
  77. const total = ref(0)
  78. const pageSize = ref(10)
  79. const tableData = ref([])
  80. const searchInfo = ref({})
  81. const onReset = () => {
  82. searchInfo.value = {}
  83. }
  84. // 搜索
  85. const onSubmit = () => {
  86. page.value = 1
  87. pageSize.value = 10
  88. searchInfo.value.game_id = Number(searchInfo.value.game_id)
  89. getTableData()
  90. }
  91. // 分页
  92. const handleSizeChange = (val) => {
  93. pageSize.value = val
  94. getTableData()
  95. }
  96. const handleCurrentChange = (val) => {
  97. page.value = val
  98. getTableData()
  99. }
  100. // 排序
  101. const sortChange = ({ prop, order }) => {
  102. if (prop) {
  103. if (prop === 'id') {
  104. prop = 'id'
  105. }
  106. searchInfo.value.orderKey = toSQLLine(prop)
  107. searchInfo.value.desc = order === 'descending'
  108. }
  109. getTableData()
  110. }
  111. // 查询
  112. const getTableData = async() => {
  113. const table = await getLogScanningList({ page: page.value, pageSize: pageSize.value, ...searchInfo.value })
  114. if (table.code === 0) {
  115. tableData.value = table.data.list
  116. total.value = table.data.total
  117. page.value = table.data.page
  118. pageSize.value = table.data.pageSize
  119. }
  120. }
  121. getTableData()
  122. const searchStatusOptions = ref([
  123. {
  124. value: 0,
  125. label: '总数据',
  126. },
  127. {
  128. value: -1,
  129. label: '新增',
  130. },
  131. {
  132. value: 1,
  133. label: '留存',
  134. }
  135. ])
  136. const typeFiletr = (value) => {
  137. const target = typeOptions.value.filter(item => item.value === value)[0]
  138. return target && `${target.label}`
  139. }
  140. const typeOptions = ref([
  141. {
  142. value: 0,
  143. label: '新增',
  144. type: ''
  145. },
  146. {
  147. value: 1,
  148. label: '活跃',
  149. type: ''
  150. }
  151. ])
  152. </script>
  153. <style scoped lang="scss">
  154. .button-box {
  155. padding: 10px 20px;
  156. .el-button {
  157. float: right;
  158. }
  159. }
  160. .warning {
  161. color: #dc143c;
  162. }
  163. </style>