Przeglądaj źródła

feat:无聊采集替换

lupeng 6 miesięcy temu
rodzic
commit
10420b3102

+ 14 - 14
src/api/process/index.ts

@@ -1,40 +1,40 @@
 import request from "@/utils/request";
 import { AxiosPromise } from "axios";
 
-export function queryOutSourceDetails(
-    id: object
-): AxiosPromise<any> {
+export function queryOutSourceDetails(id: object): AxiosPromise<any> {
   return request({
     url: "/api/v1/process/outsource/get/" + id,
     method: "get",
   });
 }
 
-export function updateOutSourceApply(
-    params: object
-): AxiosPromise<any> {
+export function updateOutSourceApply(params: object): AxiosPromise<any> {
   return request({
     url: "/api/v1/process/outsource/update",
     method: "post",
-    data: params
+    data: params,
   });
 }
 
-export function queryChildrenInfo(
-    workOrderCode: object
-): AxiosPromise<any> {
+export function queryChildrenInfo(workOrderCode: object): AxiosPromise<any> {
   return request({
     url: "/api/v1/process/info/childrenInfo/" + workOrderCode,
     method: "get",
   });
 }
 
-export function traceabilityTabCount(
-    params: object
-): AxiosPromise<any> {
+export function traceabilityTabCount(params: object): AxiosPromise<any> {
   return request({
     url: "/api/v1/process/web/traceability/tabCount",
     method: "post",
-    data: params
+    data: params,
+  });
+}
+
+export function updateItemRecord(params: object): AxiosPromise<any> {
+  return request({
+    url: "/api/v1/processReplace/updateReplaceBatchNo",
+    method: "post",
+    data: params,
   });
 }

+ 1 - 1
src/views/base/craftManagement/route/components/bottomTable.vue

@@ -272,7 +272,7 @@ const onSelectedFinish = (itemValue) => {
       const recordItem = ref({});
       recordItem.value.itemName = item.bomMaterialName;
       recordItem.value.itemCode = item.bomMaterialCode;
-      recordItem.value.itemModel = item.bomMaterialAttribute;
+      recordItem.value.itemModel = item.spec;
       recordItem.value.recordVersion = item.bomVersion;
       recordItem.value.num = item.bomMaterialNumber;
       recordItem.value.traceType = "S";

+ 10 - 0
src/views/pro/traceability/components/materialsCom.vue

@@ -152,6 +152,16 @@ option.value = Object.assign(option.value, {
       search: false,
     },
     {
+      label: "批次号/管号",
+      prop: "batchNo",
+      display: false,
+    },
+    {
+      label: "替换批次号",
+      prop: "replaceBatchNo",
+      display: false,
+    },
+    {
       label: "已采集数量",
       prop: "num",
       search: false,

+ 145 - 0
src/views/quality/replace/components/replace-material.vue

@@ -0,0 +1,145 @@
+<template>
+  <div class="mainContentBox">
+    <avue-crud
+      ref="crudRef"
+      v-model:search="search"
+      v-model="form"
+      :data="data"
+      :option="option"
+      v-model:page="page"
+      @row-save="createRow"
+      @row-update="updateRow"
+      @row-del="deleteRow"
+      @search-change="searchChange"
+      @search-reset="resetChange"
+      @size-change="dataList"
+      @current-change="dataList"
+      @selection-change="selectionChange"
+    >
+      <template #menu="{ size, row, index }">
+        <el-button
+          type="primary"
+          link
+          size="small"
+          @click="handleEdit(row, index)"
+          ><i-ep-edit />编辑
+        </el-button>
+      </template>
+    </avue-crud>
+  </div>
+</template>
+<script setup>
+import { ref, getCurrentInstance } from "vue";
+import { useCrud } from "@/hooks/userCrud";
+import dictDataUtil from "@/common/configs/dictDataUtil";
+import ButtonPermKeys from "@/common/configs/buttonPermission";
+import { updateRework } from "@/api/rework";
+import {
+  useCommonStoreHook,
+  useDictionaryStore,
+  useDictionaryStoreHook,
+} from "@/store";
+import { updateItemRecord } from "@/api/process/index";
+// 数据字典相关
+const { dicts } = useDictionaryStore();
+
+// 传入一个url,后面不带/
+const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
+  useCrud({
+    src: "/api/v1/processReplace/getItemRecord",
+  });
+const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } =
+  Methords; //增删改查
+const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
+const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
+
+const crudRef = ref(null); //crudRef.value 获取avue-crud对象
+const repeatObj = ref({});
+// 公共弹窗相关
+const ctableRef = ref(null);
+
+const props = defineProps({
+  replaceId: {
+    type: String,
+    default: () => {
+      return 0;
+    },
+  },
+  dialog: {
+    type: Object,
+    default: () => {
+      return {};
+    },
+  },
+});
+const startCreat = () => {
+  if (ctableRef.value) {
+    ctableRef.value.startSelect();
+  }
+};
+defineExpose({ startCreat });
+/**
+ * 上传excel相关
+ */
+const uploadRef = ref(null);
+const uploadFinished = () => {
+  // 上传完成后的刷新操作
+  page.currentPage = 1;
+  dataList();
+};
+const importExcelData = () => {
+  if (uploadRef.value) {
+    uploadRef.value.show("/api/v1/plan/order/import");
+  }
+};
+const handleEdit = (row, index) => {
+  row.replaceId = props.replaceId;
+  crudRef.value && crudRef.value.rowEdit(row, index);
+};
+const onSelectedFinish = (selectedValue) => {
+  form.value.materialCode = selectedValue.materialCode;
+  repeatObj.value.showCreate = false;
+};
+
+option.value = Object.assign(option.value, {
+  selection: false,
+  labelWidth: 110,
+  searchLabelWidth: 110,
+  addBtn: false,
+  delBtn: false,
+  editBtn: false,
+  column: [
+    {
+      label: "物料编码",
+      prop: "itemCode",
+      search: true,
+      disabled: true,
+    },
+    {
+      label: "物料规格",
+      prop: "itemModel",
+      search: true,
+      disabled: true,
+    },
+    {
+      label: "物料名称",
+      prop: "itemName",
+      disabled: true,
+    },
+    {
+      label: "批次号/管号",
+      prop: "batchNo",
+      disabled: true,
+    },
+    {
+      label: "替换批次号",
+      prop: "replaceBatchNo",
+    },
+  ],
+});
+onMounted(() => {
+  // console.log("crudRef", crudRef)
+  search.value.replaceId = props.replaceId;
+  dataList();
+});
+</script>

+ 26 - 1
src/views/quality/replace/index.vue

@@ -32,6 +32,13 @@
             link
             type="primary"
             size="small"
+            @click="showMaterial(row.id)"
+            >采集替换</el-button
+          >
+          <el-button
+            link
+            type="primary"
+            size="small"
             v-if="row?.state != '3'"
             v-hasPerm="[ButtonPermKeys.PLAN.BTNS.filtersheet_del]"
             @click="deleteReplace(row.id)"
@@ -167,6 +174,15 @@
         >{{ item }}</el-card
       >
     </el-dialog>
+    <el-dialog
+      v-model="dialog3.visible"
+      :title="dialog3.title"
+      width="950px"
+      @close="dialog3.visible = false"
+      :destroy-on-close="true"
+    >
+      <Replace :replaceId="replace.id" :dialog="dialog3" />
+    </el-dialog>
   </div>
 </template>
 <script setup>
@@ -174,6 +190,8 @@ import { ref } from "vue";
 import dictDataUtil from "@/common/configs/dictDataUtil";
 import ButtonPermKeys from "@/common/configs/buttonPermission";
 import { updateFilter } from "@/api/plan";
+import Replace from "./components/replace-material.vue";
+const replace = ref({});
 import {
   addReplace,
   delReplace,
@@ -193,7 +211,10 @@ const showSeq = (seqs) => {
   showSeqList.value = seqs;
   dialog2.visible = true;
 };
-
+const showMaterial = (id) => {
+  replace.value.id = id;
+  dialog3.visible = true;
+};
 const dialog = reactive({
   visible: false,
   title: "新增替换记录",
@@ -206,6 +227,10 @@ const dialog2 = reactive({
   title: "管号列表",
   visible: false,
 });
+const dialog3 = reactive({
+  title: "物料替换",
+  visible: false,
+});
 const paginationObj = reactive({
   pageNo: 1,
   pageSize: 10,