outsourcingList.vue 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. <template>
  2. <div class="ele-body">
  3. <el-card shadow="never" v-loading="loading">
  4. <return-search @search="reload" ref="searchRef"> </return-search>
  5. <!-- 数据表格 -->
  6. <ele-pro-table
  7. ref="table"
  8. :columns="columns"
  9. :datasource="datasource"
  10. row-key="id"
  11. cache-key="returnKey"
  12. autoAmendPage
  13. :parse-data="parseData"
  14. :selection.sync="selection"
  15. >
  16. <template v-slot:toolbar>
  17. <el-button type="primary" size="mini" @click="handleReturn"
  18. >新建</el-button
  19. >
  20. </template>
  21. <template v-slot:scene="{ row }">
  22. {{ sceneListFn(row.scene) }}
  23. </template>
  24. <template v-slot:action="{ row }">
  25. <el-button type="text" size="mini" @click="handDetailed(row)"
  26. >详情</el-button
  27. >
  28. </template>
  29. </ele-pro-table>
  30. </el-card>
  31. <returnPop
  32. v-if="returnShow"
  33. :returnDetailsId="returnDetailsId"
  34. @close="close"
  35. :sceneList="sceneList"
  36. ></returnPop>
  37. </div>
  38. </template>
  39. <script>
  40. export default {
  41. components: {
  42. returnSearch,
  43. returnPop
  44. },
  45. data() {
  46. return {
  47. // 加载状态
  48. loading: false,
  49. selection: [],
  50. returnShow: false,
  51. returnDetailsId: null,
  52. sceneList: []
  53. };
  54. },
  55. computed: {
  56. columns() {
  57. return [
  58. {
  59. prop: 'remark',
  60. label: '材料名称',
  61. align: 'center'
  62. },
  63. {
  64. prop: 'remark',
  65. label: '材料名称',
  66. align: 'center'
  67. },
  68. {
  69. prop: 'code',
  70. label: '牌号',
  71. align: 'center'
  72. },
  73. {
  74. prop: 'name',
  75. label: '型号',
  76. align: 'center'
  77. },
  78. {
  79. slot: 'scene',
  80. prop: 'scene',
  81. label: '模孔数量',
  82. align: 'center'
  83. },
  84. {
  85. prop: 'executorName',
  86. label: '芯棒直径',
  87. align: 'center'
  88. },
  89. {
  90. prop: 'executorTime',
  91. label: '收缩系数',
  92. align: 'center'
  93. }
  94. ];
  95. }
  96. },
  97. created() {
  98. this.getByCodeFn();
  99. },
  100. methods: {
  101. /* 表格数据源 */
  102. async datasource({ page, limit, where }) {
  103. let res = await returnPage({
  104. ...where,
  105. pageNum: page,
  106. size: limit
  107. });
  108. return res;
  109. },
  110. // 新增退料
  111. handleReturn() {
  112. this.returnDetailsId = null;
  113. this.returnShow = true;
  114. },
  115. close(val) {
  116. if (val) {
  117. this.reload();
  118. }
  119. this.returnDetailsId = null;
  120. this.returnShow = false;
  121. },
  122. //查看详情
  123. handDetailed(row) {
  124. this.returnDetailsId = row.id;
  125. this.returnShow = true;
  126. },
  127. getByCodeFn() {
  128. getByCode('returnScenario').then((res) => {
  129. let _arr = [];
  130. res.data.map((item) => {
  131. const key = Object.keys(item)[0];
  132. const value = item[key];
  133. _arr.push({ label: value, value: key });
  134. });
  135. this.sceneList = _arr;
  136. });
  137. },
  138. sceneListFn(val) {
  139. let _arr = this.sceneList;
  140. for (const item of _arr) {
  141. if (item.value == val) {
  142. return item.label;
  143. }
  144. }
  145. },
  146. /* 刷新表格 */
  147. reload(where = {}) {
  148. this.$refs.table.reload({ page: 1, where });
  149. },
  150. /* 数据转为树形结构 */
  151. parseData(data) {
  152. return {
  153. ...data,
  154. list: this.$util.toTreeData({
  155. data: data.list,
  156. count: data.total,
  157. idField: 'id',
  158. parentIdField: 'parentId'
  159. })
  160. };
  161. }
  162. }
  163. };
  164. </script>