capacity-page.vue 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. <template>
  2. <div class="mainContentBox">
  3. <avue-form
  4. ref="formRef"
  5. v-model="form"
  6. :option="option"
  7. @submit="rowSave"
  8. >
  9. </avue-form>
  10. <avue-crud
  11. ref="crudRef"
  12. v-model:search="search"
  13. v-model="form"
  14. :data="data"
  15. :option="option"
  16. v-model:page="page"
  17. @row-save="createRow"
  18. @row-update="updateRow"
  19. @row-del="deleteRow"
  20. @search-change="searchChange"
  21. @search-reset="resetChange"
  22. @size-change="dataList"
  23. @current-change="dataList"
  24. @selection-change="selectionChange"
  25. search-option="false"
  26. >
  27. <template #menu-left="{ size }">
  28. <el-button
  29. :disabled="toDeleteIds.length < 1"
  30. type="danger"
  31. icon="el-icon-delete"
  32. :size="size"
  33. @click="multipleDelete"
  34. >删除</el-button
  35. >
  36. </template>
  37. </avue-crud>
  38. <CommonTable
  39. ref="ctableRef"
  40. tableTitle="物料列表"
  41. tableType="MARTERIAL"
  42. @selected-sure="onSelectedFinish"
  43. />
  44. </div>
  45. </template>
  46. <script setup lang="ts">
  47. import { ref, getCurrentInstance } from "vue";
  48. import { useCrud } from "@/hooks/userCrud";
  49. import ButtonPermKeys from "@/common/configs/buttonPermission";
  50. import { useCommonStoreHook } from "@/store";
  51. const { isShowTable, tableType } = toRefs(useCommonStoreHook());
  52. import { useDictionaryStore } from "@/store";
  53. import {
  54. addStationDevice,
  55. } from "@/api/station";
  56. const test = () => {
  57. isShowTable.value = true;
  58. tableType.value = tableType.value == 1 ? 2 : 1;
  59. };
  60. // 传入一个url,后面不带/
  61. const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
  62. useCrud({
  63. src: "/api/v1/base/capacity",
  64. });
  65. const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } =
  66. Methords; //增删改查
  67. const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
  68. const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
  69. // checkBtnPerm(ButtonPermKeys.PLAN.BTNS.order_add) :permission="permission"
  70. // const permission = reactive({
  71. // delBtn: checkPerm(buttonPermission.PLAN.BTNS.order_del),
  72. // addBtn: checkPerm(buttonPermission.PLAN.BTNS.order_add),
  73. // editBtn: checkPerm(buttonPermission.PLAN.BTNS.order_edit),
  74. // menu: true,
  75. // });
  76. function rowSave(form,done,loading) {
  77. console.info(form);
  78. createRow(form,done,loading);
  79. }
  80. const crudRef = ref(null); //crudRef.value 获取avue-crud对象
  81. onMounted(() => {
  82. // console.log("crudRef", crudRef)
  83. search.value.productionLineId=props.productionLineId;
  84. dataList();
  85. });
  86. /**
  87. * 上传excel相关
  88. */
  89. const uploadRef = ref(null);
  90. const uploadFinished = () => {
  91. // 上传完成后的刷新操作
  92. page.currentPage = 1;
  93. dataList();
  94. };
  95. const importExcelData = () => {
  96. if (uploadRef.value) {
  97. uploadRef.value.show("/api/v1/base/stationDevice");
  98. }
  99. };
  100. const ctableRef=ref(null);
  101. const deviceList=()=>{
  102. ctableRef.value.startSelect();
  103. }
  104. // 设置表格列或者其他自定义的option
  105. option.value = Object.assign(option.value, {
  106. selection: true,
  107. labelWidth: 200,
  108. span: 20,
  109. column: [{
  110. label: "物料编号",
  111. prop: "materialCode",
  112. display:false,
  113. },
  114. {
  115. label: "物料名称",
  116. prop: "materialName",
  117. rules: [{
  118. required: true,
  119. message: "请选择物料名称",
  120. trigger: "blur"
  121. }],
  122. click: ({ value, column }) => {
  123. ctableRef.value.startSelect();
  124. },
  125. },
  126. {
  127. label: "产线",
  128. prop: "productionLineName",
  129. display:false,
  130. },
  131. {
  132. label: "产线id",
  133. prop: "productionLineId",
  134. display:false,
  135. hide:true
  136. },
  137. {
  138. label: "产能",
  139. prop: "capacity",
  140. type:"number",
  141. rules: [{
  142. required: true,
  143. message: "请填写产能",
  144. trigger: "blur"
  145. }],
  146. },
  147. {
  148. label: "最小齐套数",
  149. prop: "minCapacity",
  150. type:"number",
  151. rules: [{
  152. required: true,
  153. message: "请填写产能",
  154. trigger: "blur"
  155. }],
  156. },],
  157. delBtn: false,
  158. editBtn: false,
  159. viewBtn: false,
  160. addBtn:false,
  161. menu: false,
  162. });
  163. const props = defineProps({
  164. productionLineId: {
  165. type: Number,
  166. default: () => {
  167. return 0;
  168. }
  169. }
  170. })
  171. const onSelectedFinish=(selectedValue)=>{
  172. form.value.materialCode=selectedValue.materialCode;
  173. form.value.materialName=selectedValue.materialName;
  174. form.value.productionLineId=props.productionLineId;
  175. }
  176. </script>