index.vue 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. <template>
  2. <div class="mainContentBox">
  3. <avue-crud
  4. ref="crudRef"
  5. v-model:search="search"
  6. v-model="form"
  7. :data="data"
  8. :option="option"
  9. v-model:page="page"
  10. @row-update="updateRow"
  11. @row-del="deleteRow"
  12. @search-change="searchChange"
  13. @search-reset="resetChange"
  14. @size-change="dataList"
  15. @current-change="dataList"
  16. @selection-change="selectionChange"
  17. >
  18. <template #menu="{ row, index, type }">
  19. <el-button @click="inStock(row)" icon="el-icon-van" text type="primary"
  20. >入库</el-button>
  21. <el-button
  22. @click="viewStock(row)"
  23. icon="el-icon-view"
  24. text
  25. type="primary"
  26. >入库记录</el-button
  27. >
  28. </template>
  29. </avue-crud>
  30. <el-dialog
  31. v-model="dialog.visible"
  32. :title="dialog.title"
  33. width="85%"
  34. :destroy-on-close="true"
  35. @close="dialog.visible = false"
  36. >
  37. <detailStock :dialog="dialog" :workOrderCode="stockInfo.workOrderCode" />
  38. </el-dialog>
  39. <el-dialog
  40. v-model="stockDialog.visible"
  41. :title="stockDialog.title"
  42. width="800px"
  43. :destroy-on-close="true"
  44. @close="stockClose"
  45. >
  46. <inStocks
  47. :stockDialog="stockDialog"
  48. :workOrderCode="stockDetail.workOrderCode"
  49. />
  50. </el-dialog>
  51. </div>
  52. </template>
  53. <script setup>
  54. import { ref, getCurrentInstance } from "vue";
  55. import { useCrud } from "@/hooks/userCrud";
  56. import ButtonPermKeys from "@/common/configs/buttonPermission";
  57. import { useCommonStoreHook, useDictionaryStore } from "@/store";
  58. import dictDataUtil from "@/common/configs/dictDataUtil";
  59. import inStocks from "@/views/plan/finishProduct/components/in-stock.vue";
  60. import detailStocks from "@/views/plan/finishProduct/components/detail-stock.vue";
  61. const { isShowTable, tableType } = toRefs(useCommonStoreHook());
  62. // 数据字典相关
  63. const { dicts } = useDictionaryStore();
  64. const stockDetail = ref({});
  65. const test = () => {
  66. isShowTable.value = true;
  67. tableType.value = tableType.value == 1 ? 2 : 1;
  68. };
  69. const dialog = reactive({
  70. title: "入库记录",
  71. visible: false,
  72. });
  73. const stockDialog = reactive({
  74. title: "入库",
  75. visible: false,
  76. });
  77. const stockClose = () => {
  78. stockDialog.visible = false;
  79. dataList();
  80. };
  81. const stockInfo = ref({});
  82. const viewStock = (row) => {
  83. stockInfo.value = row;
  84. dialog.visible = true;
  85. };
  86. // 传入一个url,后面不带/
  87. const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
  88. useCrud({
  89. src: "/api/v1/plan/workOrder/finishProductIn",
  90. });
  91. const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } =
  92. Methords; //增删改查
  93. const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
  94. const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
  95. // checkBtnPerm(ButtonPermKeys.PLAN.BTNS.order_add) :permission="permission"
  96. // const permission = reactive({
  97. // delBtn: checkPerm(buttonPermission.PLAN.BTNS.order_del),
  98. // addBtn: checkPerm(buttonPermission.PLAN.BTNS.order_add),
  99. // editBtn: checkPerm(buttonPermission.PLAN.BTNS.order_edit),
  100. // menu: true,
  101. // });
  102. onMounted(() => {
  103. // console.log("crudRef", crudRef)
  104. dataList();
  105. });
  106. const inStock = (row) => {
  107. stockDialog.visible = true;
  108. stockDetail.value = row;
  109. };
  110. // 设置表格列或者其他自定义的option
  111. option.value = Object.assign(option.value, {
  112. searchEnter: true,
  113. selection: false,
  114. addBtn: false,
  115. viewBtn: false,
  116. columnBtn: false,
  117. gridBtn: false,
  118. refreshBtn: false,
  119. editBtn: false,
  120. delBtn: false,
  121. column: [
  122. { label: "工单号", prop: "workOrderCode", search: true, overHidden: true },
  123. { label: "产品名称", prop: "materialName", search: true, overHidden: true },
  124. {
  125. label: "产品编码",
  126. prop: "materialCode",
  127. width: 140,
  128. overHidden: true,
  129. search: true,
  130. },
  131. {
  132. label: "订单编码",
  133. prop: "orderCode",
  134. search: true,
  135. },
  136. {
  137. label: "完工时间",
  138. prop: "updated",
  139. overHidden: true,
  140. disabled: true,
  141. hide: true,
  142. },
  143. {
  144. label: "物料数量",
  145. prop: "completeNum",
  146. },
  147. {
  148. label: "入库数量",
  149. prop: "inventoryNum",
  150. },
  151. ],
  152. });
  153. </script>