index.vue 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. <template>
  2. <div class="ele-body">
  3. <el-card shadow="never" v-loading="loading">
  4. <pick-search @search="reload" ref="searchRef"> </pick-search>
  5. <!-- 数据表格 -->
  6. <ele-pro-table
  7. ref="table"
  8. :columns="columns"
  9. :datasource="datasource"
  10. row-key="id"
  11. cache-key="pickKey"
  12. :selection.sync="selection"
  13. autoAmendPage
  14. :parse-data="parseData"
  15. >
  16. <template v-slot:toolbar>
  17. <el-button type="primary" size="mini" @click="handPick">工单领料</el-button>
  18. <el-button type="primary" size="mini">自建领料单</el-button>
  19. </template>
  20. <template v-slot:status="{ row }">
  21. <el-tag
  22. :type="row.status == '0' ? 'danger' : 'success'"
  23. effect="dark"
  24. >{{
  25. row.status == '0'
  26. ? '未领料'
  27. : row.status == '1'
  28. ? '已领料'
  29. : row.status == '2'
  30. ? '已出库'
  31. : ''
  32. }}</el-tag
  33. >
  34. </template>
  35. </ele-pro-table>
  36. </el-card>
  37. <addPick v-if="addPickShow" @close="close"></addPick>
  38. </div>
  39. </template>
  40. <script>
  41. import { getPage } from '@/api/pick/pickApply';
  42. import pickSearch from './components/pick-search.vue';
  43. import addPick from './components/addPick.vue';
  44. export default {
  45. components: {
  46. pickSearch,
  47. addPick
  48. },
  49. data() {
  50. return {
  51. // 加载状态
  52. loading: false,
  53. selection: [],
  54. addPickShow: false
  55. };
  56. },
  57. computed: {
  58. columns() {
  59. return [
  60. {
  61. prop: 'code',
  62. label: '领料单编号',
  63. align: 'center'
  64. },
  65. {
  66. prop: 'joinWorkOrderCode',
  67. label: '关联工单编号',
  68. align: 'center'
  69. },
  70. {
  71. prop: 'joinWarehouseName',
  72. label: '关联仓库名称',
  73. align: 'center'
  74. },
  75. {
  76. prop: 'joinReviewerName',
  77. label: '关联审核人',
  78. align: 'center'
  79. },
  80. {
  81. prop: 'executorName',
  82. label: '领料人',
  83. align: 'center'
  84. },
  85. {
  86. prop: 'createTime',
  87. label: '领料时间',
  88. align: 'center'
  89. },
  90. {
  91. prop: 'status',
  92. slot: 'status',
  93. label: '状态',
  94. align: 'center'
  95. },
  96. {
  97. prop: '',
  98. label: '操作',
  99. width: 80,
  100. align: 'center',
  101. resizable: false,
  102. fixed: 'right',
  103. slot: 'action'
  104. }
  105. ];
  106. }
  107. },
  108. created() {},
  109. methods: {
  110. /* 表格数据源 */
  111. async datasource({ page, limit, where }) {
  112. let res = await getPage({
  113. ...where,
  114. pageNum: page,
  115. size: limit
  116. });
  117. return res;
  118. },
  119. /* 数据转为树形结构 */
  120. parseData(data) {
  121. return {
  122. ...data,
  123. list: this.$util.toTreeData({
  124. data: data.list,
  125. count: data.total,
  126. idField: 'id',
  127. parentIdField: 'parentId'
  128. })
  129. };
  130. },
  131. handPick() {
  132. this.addPickShow = true;
  133. },
  134. close() {
  135. this.addPickShow = false;
  136. },
  137. /* 刷新表格 */
  138. reload(where = {}) {
  139. this.$refs.table.reload({ page: 1, where });
  140. }
  141. }
  142. };
  143. </script>