index.vue 4.2 KB

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