pickOrder.vue 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. <template>
  2. <div>
  3. <el-dialog
  4. title="选择领料单"
  5. :visible.sync="dialogVisible"
  6. width="40%"
  7. :before-close="handleClose"
  8. >
  9. <div class="main">
  10. <ele-pro-table
  11. ref="table"
  12. :initLoad="false"
  13. :columns="columns"
  14. :current.sync="current"
  15. highlight-current-row
  16. :datasource="tableData"
  17. tool-class="ele-toolbar-form"
  18. cache-key="systemOrgUserTable"
  19. @row-click="chooseRow"
  20. >
  21. <!-- 表头工具栏 -->
  22. <template v-slot:code="{ row }">
  23. <!-- @click="details(row)" -->
  24. <el-link
  25. type="primary"
  26. @click="pickOrderEdit(row)"
  27. :underline="false"
  28. >
  29. {{ row.code }}
  30. </el-link>
  31. </template>
  32. <template v-slot:action="{ row }">
  33. <el-radio class="radio" v-model="radio" :label="row.id"
  34. ><i></i
  35. ></el-radio>
  36. </template>
  37. <template v-slot:status="{ row }">
  38. <span v-if="row.status == 0">未领料</span>
  39. <span v-else>已领料</span>
  40. </template>
  41. </ele-pro-table>
  42. </div>
  43. <span slot="footer" class="dialog-footer">
  44. <el-button @click="dialogVisible = false">取 消</el-button>
  45. <el-button type="primary" @click="handleMine">确 定</el-button>
  46. </span>
  47. </el-dialog>
  48. <pickOrderEdit ref="pickOrderEditRef" />
  49. </div>
  50. </template>
  51. <script>
  52. import { pickOrderPage } from '@/api/mes';
  53. import pickOrderEdit from './pickOrderEdit.vue';
  54. export default {
  55. components: { pickOrderEdit },
  56. data() {
  57. return {
  58. dialogVisible: false,
  59. pages: {
  60. pageNum: 1,
  61. size: 10
  62. },
  63. total: 0,
  64. tableData: [],
  65. current: {},
  66. radio: null,
  67. columns: [
  68. {
  69. columnKey: 'index',
  70. type: 'index',
  71. width: 80,
  72. label: '序号',
  73. align: 'center',
  74. showOverflowTooltip: true,
  75. fixed: 'left'
  76. },
  77. {
  78. prop: 'code',
  79. label: '领料单号',
  80. showOverflowTooltip: true,
  81. slot: 'code'
  82. },
  83. {
  84. prop: 'executorName',
  85. label: '执行人名称',
  86. showOverflowTooltip: true
  87. },
  88. {
  89. prop: 'executorTime',
  90. label: '执行日期',
  91. showOverflowTooltip: true
  92. },
  93. {
  94. prop: 'status',
  95. label: '领料状态',
  96. showOverflowTooltip: true,
  97. slot: 'status'
  98. },
  99. {
  100. columnKey: 'action',
  101. slot: 'action',
  102. align: 'center',
  103. fixed: 'right',
  104. width: 50
  105. }
  106. ]
  107. };
  108. },
  109. methods: {
  110. pickOrderEdit(row) {
  111. this.$refs.pickOrderEditRef.open(row);
  112. },
  113. handleMine() {
  114. const current = this.current.orderInfoList;
  115. for (const key in current) {
  116. if (
  117. current[key].bomDetailDTOS.length == 0 &&
  118. current[key].instanceList.length == 0
  119. ) {
  120. this.$message.warning('当前领料单数据为空');
  121. return;
  122. }
  123. }
  124. this.$emit('success', this.current);
  125. this.dialogVisible = false;
  126. },
  127. async open() {
  128. this.dialogVisible = true;
  129. const res = await pickOrderPage(this.pages);
  130. console.log(res);
  131. this.tableData = res.data.list;
  132. this.total = res.data.count;
  133. },
  134. chooseRow(row) {
  135. this.current = row;
  136. this.radio = row.id;
  137. },
  138. handleClose(done) {
  139. this.dialogVisible = false;
  140. }
  141. }
  142. };
  143. </script>