materialsCom.vue 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. <!-- 已采物料 -->
  2. <template>
  3. <div class="mainContentBox">
  4. <avue-crud
  5. ref="crudRef2"
  6. v-model:search="search"
  7. v-model="form"
  8. @row-update="updateRow"
  9. :data="data"
  10. :option="option"
  11. v-model:page="page"
  12. >
  13. <template #menu="{ size, row, index }">
  14. <el-button
  15. v-if="row.itemCode != undefined && row.itemCode != null"
  16. type="primary"
  17. link
  18. size="small"
  19. @click="doEdit(row, index)"
  20. ><i-ep-edit />编辑
  21. </el-button>
  22. </template>
  23. </avue-crud>
  24. <CommonTable
  25. ref="ctableRef"
  26. tableTitle="物料选择"
  27. tableType="MARTERIAL"
  28. @selected-sure="onSelectedFinish"
  29. />
  30. </div>
  31. </template>
  32. <script setup>
  33. import { ref, getCurrentInstance } from "vue";
  34. import { useCrud } from "@/hooks/userCrud";
  35. import dictDataUtil from "@/common/configs/dictDataUtil";
  36. import ButtonPermKeys from "@/common/configs/buttonPermission";
  37. import {
  38. useCommonStoreHook,
  39. useDictionaryStore,
  40. useUserStoreHook,
  41. } from "@/store";
  42. // 数据字典相关
  43. const { dicts } = useDictionaryStore();
  44. const crudRef2 = ref({});
  45. // 传入一个url,后面不带/
  46. const {
  47. form,
  48. data,
  49. option,
  50. search,
  51. page,
  52. toDeleteIds,
  53. Methords,
  54. Utils,
  55. commonConfig,
  56. } = useCrud({
  57. src: "/api/v1/process/web/traceability/materialsRecordInfo",
  58. });
  59. const ctableRef = ref(null);
  60. const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } =
  61. Methords; //增删改查
  62. const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
  63. const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
  64. const userStore = useUserStoreHook();
  65. const crudRef = ref(null); //crudRef.value 获取avue-crud对象
  66. const doEdit = (row, index) => {
  67. crudRef2.value && crudRef2.value.rowEdit(row, index);
  68. };
  69. const refreshTra = (row) => {
  70. commonConfig.value.params = {
  71. seqNo: row.seqNo,
  72. workOrderCode: row.workOrderCode,
  73. };
  74. dataList();
  75. };
  76. defineExpose({ refreshTra });
  77. onMounted(() => {
  78. if (userStore.user.userId === 10000) {
  79. option.value.menu = true;
  80. }
  81. });
  82. const onSelectedFinish = (selectedValue) => {
  83. form.value.itemCode = selectedValue.materialCode;
  84. form.value.itemName = selectedValue.materialName;
  85. form.value.itemModel = selectedValue.spec;
  86. };
  87. option.value = Object.assign(option.value, {
  88. searchEnter: true,
  89. selection: false,
  90. border: true,
  91. index: false,
  92. expandLevel: 3,
  93. headerAlign: "center",
  94. align: "center",
  95. labelWidth: 100,
  96. addBtn: false,
  97. delBtn: false,
  98. viewBtn: false,
  99. menu: false,
  100. header: false,
  101. editBtn: false,
  102. rowKey: "opId",
  103. column: [
  104. {
  105. label: "工序Id",
  106. prop: "opId",
  107. display: false,
  108. hide: true,
  109. },
  110. {
  111. label: "工序名称",
  112. prop: "opName",
  113. display: false,
  114. },
  115. {
  116. label: "物料名称",
  117. prop: "itemName",
  118. disabled: "true",
  119. },
  120. {
  121. label: "物料规格",
  122. prop: "itemModel",
  123. disabled: "true",
  124. search: true,
  125. type: "input",
  126. },
  127. {
  128. label: "物料编号",
  129. prop: "itemCode",
  130. search: false,
  131. click: ({ value, column }) => {
  132. ctableRef.value.startSelect();
  133. },
  134. change: ({ value, column }) => {
  135. if (value != form.value.itemCode) {
  136. ctableRef.value.startSelect();
  137. }
  138. },
  139. rules: [
  140. {
  141. required: true,
  142. message: "请选择物料编码",
  143. trigger: "blur",
  144. },
  145. ],
  146. },
  147. {
  148. label: "采集编码",
  149. prop: "itemSeq",
  150. display: false,
  151. search: false,
  152. },
  153. {
  154. label: "批次号/管号",
  155. prop: "batchNo",
  156. display: false,
  157. },
  158. {
  159. label: "替换批次号",
  160. prop: "replaceBatchNo",
  161. display: false,
  162. },
  163. {
  164. label: "已采集数量",
  165. prop: "num",
  166. search: false,
  167. },
  168. ],
  169. });
  170. </script>