Pārlūkot izejas kodu

fix:采集双规格物料添加判断

luoxiao 3 dienas atpakaļ
vecāks
revīzija
2cc627c280

+ 17 - 0
src/api/prosteps/wuliaocaiji.ts

@@ -8,6 +8,23 @@ export function recordList(data: any) {
     data,
   });
 }
+
+export function isMixMaterial(data: any) {
+  return request({
+    url: "/api/v1/process/itemRecord/isMixMaterial",
+    method: "post",
+    data,
+  });
+}
+
+export function isFlMixMaterial(data: any) {
+  return request({
+    url: "/api/v1/process/accessoryItemRecord/isMixMaterial",
+    method: "post",
+    data,
+  });
+}
+
 export function accessoryList(data: any) {
   return request({
     url: "/api/v1/process/accessoryItemRecord/list",

+ 240 - 50
src/views/pro-steps/components/wuliaocaiji.vue

@@ -12,10 +12,7 @@
   </div>
   <div v-if="opCompentDataList.length < 1" class="showCodeBody">
     <div class="codeBox">
-      <img
-        src="@/assets/icons/shaoma.svg"
-        style="width: 134px; height: 134px"
-      />
+      <img src="@/assets/icons/shaoma.svg" style="width: 134px; height: 134px" />
     </div>
   </div>
   <div v-else class="materialInfoBody">
@@ -26,11 +23,11 @@
       @click="toXQPop(item)"
     >
       <div class="leftMsg">
-        <div class="nameMsg">{{ item.itemName }}<span v-if="item.groupName" class="dualSpecifications">({{ item.groupName}}) </span></div>
-        <div class="describe">{{ item.itemModel }}</div>
-        <div class="describe" v-if="!flStatus">
-          单管需求:{{ item.needNum }}
+        <div class="nameMsg">
+          {{ item.itemName }}<span v-if="item.groupName" class="dualSpecifications">({{ item.groupName }}) </span>
         </div>
+        <div class="describe">{{ item.itemModel }}</div>
+        <div class="describe" v-if="!flStatus">单管需求:{{ item.needNum }}</div>
       </div>
       <div class="rightMsg">
         <div class="showSeq" @click.stop="showSeq(item.batchNoList)">
@@ -48,12 +45,14 @@
   <xiangqingPopUp
     v-if="!flStatus"
     v-model="showXQ"
+    :isMixMaterial="isMix"
     :showInfo="seqInfoList"
     @data-list="getOpCompentData"
   />
   <flXiangqingPopUp
     v-else
     v-model="showXQ"
+    :isMixMaterial="isFlMix"
     :showInfo="seqInfoList"
     :isShow="isShowButton"
     @data-list="getOpCompentData"
@@ -75,11 +74,15 @@ import {
   getCollectHistory,
   searchFlMaterial,
   getFlCollectHistory,
+  isMixMaterial,
+  isFlMixMaterial,
 } from "@/api/prosteps/wuliaocaiji";
 import { useProcessStore } from "@/store";
 defineOptions({
   name: "Wuliaocaiji",
 });
+const isMix = ref(0);
+const isFlMix = ref(0);
 const isShowButton = ref(true);
 const flStatus = ref(false);
 const caijiRef = ref(null);
@@ -91,27 +94,27 @@ const showCJ = ref(false);
 const showSEQ = ref(false);
 const seqInfoList = ref([]);
 const getHistroyList = async (item) => {
-  if (!flStatus.value) {
-    const { data } = await getCollectHistory({
-      itemCode: item.itemCode,
-      operationId: store.odersData.operationId,
-      pageNo: 1,
-      pageSize: 9999,
-      processId: store.scanInfo.id,
-      workOrderCode: store.odersData.workOrderCode,
-    });
-    seqInfoList.value = data[0];
-  } else {
-    const { data } = await getFlCollectHistory({
-      itemCode: item.itemCode,
-      operationId: store.odersData.operationId,
-      pageNo: 1,
-      pageSize: 9999,
-      processId: store.scanInfo.id,
-      workOrderCode: store.odersData.workOrderCode,
-    });
-    seqInfoList.value = data[0];
-  }
+  const { data } = await getCollectHistory({
+    itemCode: item.itemCode,
+    operationId: store.odersData.operationId,
+    pageNo: 1,
+    pageSize: 9999,
+    processId: store.scanInfo.id,
+    workOrderCode: store.odersData.workOrderCode,
+  });
+  seqInfoList.value = data[0];
+};
+
+const getFlHistoryList = async (item) => {
+  const { data } = await getFlCollectHistory({
+    itemCode: item.itemCode,
+    operationId: store.odersData.operationId,
+    pageNo: 1,
+    pageSize: 9999,
+    processId: store.scanInfo.id,
+    workOrderCode: store.odersData.workOrderCode,
+  });
+  seqInfoList.value = data[0];
 };
 const showSeqData = ref([]);
 const showSeq = (data) => {
@@ -124,6 +127,7 @@ const showInfo = ref({});
 //详情展示数据
 const scanData = ref([]);
 provide("scanData", scanData);
+
 const enterfnc = async () => {
   isShowButton.value = true;
   let str = scanCode.value;
@@ -131,36 +135,140 @@ const enterfnc = async () => {
     ElMessage.error("请扫码采集物料");
     return;
   }
-  scanCode.value = "";
-  scanCodeCopyValue.value = str;
-  if (flStatus.value == false) {
-    const { code, data } = await searchMaterial({
+  if (!flStatus.value) {
+    //判断是否混料
+    isMixMaterial({
       operationId: store.odersData.operationId,
       processId: store.scanInfo.id,
-      seqNo: store.scanInfo.seqNo,
       scanCode: str,
-      flStatus: flStatus.value,
       workOrderCode: store.odersData.workOrderCode,
+    }).then((res) => {
+      if (res.code == "200") {
+        if (res.data.isMixMaterial === 1) {
+          isMix.value = 1;
+          if (res.data.isDpa === 1) {
+            ElMessageBox({
+              title: "提示",
+              message: "当前采集物料出现一致性问题,绑定物料规格或批次不一致",
+              showCancelButton: true,
+              confirmButtonText: "确认",
+              cancelButtonText: "取消",
+              confirmButtonDisabled: true,
+              type: "warning",
+            })
+              .then(() => {
+                openDetailForm(str);
+              })
+              .catch(() => {
+                return;
+              });
+          } else {
+            ElMessageBox({
+              title: "提示",
+              message: "当前采集物料出现一致性问题,绑定物料规格或批次不一致",
+              showCancelButton: true,
+              confirmButtonText: "确认",
+              cancelButtonText: "取消",
+              type: "warning",
+            })
+              .then(() => {
+                openDetailForm(str);
+              })
+              .catch(() => {
+                return;
+              });
+          }
+        } else {
+          isMix.value = 0;
+          openDetailForm(str);
+        }
+      }
     });
-    if (code == "200") {
-      seqInfoList.value = data[0];
-      showXQ.value = true;
-    }
   } else {
-    const { code, data } = await searchFlMaterial({
+    isFlMixMaterial({
       operationId: store.odersData.operationId,
       processId: store.scanInfo.id,
-      seqNo: store.scanInfo.seqNo,
       scanCode: str,
-      flStatus: flStatus.value,
       workOrderCode: store.odersData.workOrderCode,
+    }).then((res) => {
+      if (res.code == "200") {
+        if (res.data.isMixMaterial === 1) {
+          isFlMix.value = 1;
+          if (res.data.isDpa === 1) {
+            ElMessageBox({
+              title: "提示",
+              message: "当前采集物料出现一致性问题,绑定物料规格或批次不一致",
+              showCancelButton: true,
+              confirmButtonText: "确认",
+              cancelButtonText: "取消",
+              confirmButtonDisabled: true,
+              type: "warning",
+            })
+              .then(() => {
+                openFlDetailForm(str);
+              })
+              .catch(() => {
+                return;
+              });
+          } else {
+            ElMessageBox({
+              title: "提示",
+              message: "当前采集物料出现一致性问题,绑定物料规格或批次不一致",
+              showCancelButton: true,
+              confirmButtonText: "确认",
+              cancelButtonText: "取消",
+              type: "warning",
+            })
+              .then(() => {
+                openFlDetailForm(str);
+              })
+              .catch(() => {
+                return;
+              });
+          }
+        } else {
+          isFlMix.value = 0;
+          openFlDetailForm(str);
+        }
+      }
     });
-    if (code == "200") {
-      seqInfoList.value = data[0];
-      showXQ.value = true;
-    }
   }
 };
+
+const openDetailForm = async (str) => {
+  scanCode.value = "";
+  scanCodeCopyValue.value = str;
+  const { code, data } = await searchMaterial({
+    operationId: store.odersData.operationId,
+    processId: store.scanInfo.id,
+    seqNo: store.scanInfo.seqNo,
+    scanCode: str,
+    flStatus: flStatus.value,
+    workOrderCode: store.odersData.workOrderCode,
+  });
+  if (code == "200") {
+    seqInfoList.value = data[0];
+    showXQ.value = true;
+  }
+};
+
+const openFlDetailForm = async (str) => {
+  scanCode.value = "";
+  scanCodeCopyValue.value = str;
+  const { code, data } = await searchFlMaterial({
+    operationId: store.odersData.operationId,
+    processId: store.scanInfo.id,
+    seqNo: store.scanInfo.seqNo,
+    scanCode: str,
+    flStatus: flStatus.value,
+    workOrderCode: store.odersData.workOrderCode,
+  });
+  if (code == "200") {
+    seqInfoList.value = data[0];
+    showXQ.value = true;
+  }
+};
+
 const opCompentDataList = ref([]);
 //通过id获取详情
 // const getInfoById = async (item) => {
@@ -173,10 +281,92 @@ const opCompentDataList = ref([]);
 //   showInfo.value = item;
 // };
 const toXQPop = async (item) => {
-  // await getInfoById(item);
-  await getHistroyList(item);
-  showXQ.value = true;
-  isShowButton.value = false;
+  if (!flStatus.value) {
+    //判断是否混料
+    isMixMaterial({
+      operationId: store.odersData.operationId,
+      processId: store.scanInfo.id,
+      materialCode: item.itemCode,
+      workOrderCode: store.odersData.workOrderCode,
+    }).then((res) => {
+      if (res.code == "200") {
+        if (res.data.isMixMaterial === 1) {
+          isMix.value = 1;
+          if (res.data.isDpa === 1) {
+            ElMessageBox({
+              title: "提示",
+              message: "当前采集物料出现一致性问题,绑定物料规格或批次不一致",
+              showCancelButton: true,
+              confirmButtonText: "确认",
+              cancelButtonText: "取消",
+              confirmButtonDisabled: true,
+              type: "warning",
+            })
+              .then(() => {})
+              .catch(() => {
+                return;
+              });
+          } else {
+            ElMessageBox({
+              title: "提示",
+              message: "当前采集物料出现一致性问题,绑定物料规格或批次不一致",
+              showCancelButton: true,
+              confirmButtonText: "确认",
+              cancelButtonText: "取消",
+              type: "warning",
+            })
+              .then(() => {
+                getHistroyList(item);
+                showXQ.value = true;
+                isShowButton.value = false;
+              })
+              .catch(() => {
+                return;
+              });
+          }
+        } else {
+          isMix.value = 0;
+          getHistroyList(item);
+          showXQ.value = true;
+          isShowButton.value = false;
+        }
+      }
+    });
+  } else {
+    isFlMixMaterial({
+      operationId: store.odersData.operationId,
+      processId: store.scanInfo.id,
+      materialCode: item.itemCode,
+      workOrderCode: store.odersData.workOrderCode,
+    }).then((res) => {
+      if (res.code == "200") {
+        if (res.data.isMixMaterial === 1) {
+          isFlMix.value = 1;
+          ElMessageBox({
+            title: "提示",
+            message: "当前采集物料出现一致性问题,绑定物料规格或批次不一致",
+            showCancelButton: true,
+            confirmButtonText: "确认",
+            cancelButtonText: "取消",
+            type: "warning",
+          })
+            .then(() => {
+              getFlHistoryList(item);
+              showXQ.value = true;
+              isShowButton.value = false;
+            })
+            .catch(() => {
+              return;
+            });
+        } else {
+          isFlMix.value = 0;
+          getFlHistoryList(item);
+          showXQ.value = true;
+          isShowButton.value = false;
+        }
+      }
+    });
+  }
 };
 //提交录入信息
 const submitRecordAdd = async (index) => {

+ 18 - 54
src/views/pro-steps/popUpView/flXiangqingPopUp.vue

@@ -2,19 +2,12 @@
   <!-- 辅料采集详情界面 -->
   <div class="popUp" v-if="modelValue">
     <div class="header" style="height: 3vh">
-      <div class="headerTittle" style="font-weight: border; font-size: 28px">
-        辅料采集详情
-      </div>
+      <div class="headerTittle" style="font-weight: border; font-size: 28px">辅料采集详情</div>
     </div>
-    <div
-      class="header"
-      style="display: flex; justify-content: center; margin: 20px"
-    >
+    <div class="header" style="display: flex; justify-content: center; margin: 20px">
       <div class="box" @click.stop>
         <div class="boxItem">
-          <div class="describeText">
-            需采集物料:{{ showInfo.materialName }}
-          </div>
+          <div class="describeText">需采集物料:{{ showInfo.materialName }}</div>
           <div class="describeText">物料编码:{{ showInfo.materialCode }}</div>
           <div class="describeText">型号:{{ showInfo.spec }}</div>
         </div>
@@ -22,9 +15,7 @@
     </div>
     <div class="body">
       <div class="container1" @click.stop>
-        <div class="boxTittle">
-          批次号列表(共&nbsp;{{ batchNoTableData.length }}&nbsp;批次)
-        </div>
+        <div class="boxTittle">批次号列表(共&nbsp;{{ batchNoTableData.length }}&nbsp;批次)</div>
         <el-divider style="margin-top: 20px !important" />
         <div style="display: flex; margin-bottom: 20px; align-items: center">
           <div class="seqSearchInput">
@@ -40,12 +31,7 @@
           > -->
         </div>
 
-        <el-table
-          border
-          class="seqTable"
-          :data="showBatchNoTableData"
-          style="flex: 1"
-        >
+        <el-table border class="seqTable" :data="showBatchNoTableData" style="flex: 1">
           <el-table-column align="center" label="批次号" prop="batchNo" />
           <el-table-column align="center" label="绑定管号">
             <template #default="scope">
@@ -59,17 +45,9 @@
                   v-model="batchNoTableData[scope.$index].seqList"
                 >
                   <template #header>
-                    <el-checkbox @change="handleCheckAll(scope.$index)">
-                      全选
-                    </el-checkbox>
+                    <el-checkbox @change="handleCheckAll(scope.$index)"> 全选 </el-checkbox>
                   </template>
-                  <el-option
-                    v-for="item in seqList"
-                    :key="item"
-                    :label="item"
-                    :value="item"
-                  >
-                  </el-option>
+                  <el-option v-for="item in seqList" :key="item" :label="item" :value="item"> </el-option>
                 </el-select>
               </el-scrollbar>
             </template>
@@ -97,12 +75,7 @@
         <el-divider />
         <div style="display: flex; margin-bottom: 20px; align-items: center">
           <div class="seqSearchInput">
-            <el-input
-              v-model="searchSeqNo"
-              placeholder="搜索管号"
-              class="searchInput"
-              clearable
-            />
+            <el-input v-model="searchSeqNo" placeholder="搜索管号" class="searchInput" clearable />
           </div>
           <!-- <el-button @click="seqNoOk = true" :type="seqNoOk ? 'primary' : ''"
             >完成绑定</el-button
@@ -113,16 +86,9 @@
         </div>
         <el-table border class="seqTable" :data="showSeqData" style="flex: 1">
           <el-table-column align="center" label="管号" prop="seqNo" />
-          <el-table-column
-            align="center"
-            label="批次号绑定情况"
-            prop="bodyatchNoList"
-          >
+          <el-table-column align="center" label="批次号绑定情况" prop="bodyatchNoList">
             <template #default="scope">
-              <template
-                v-if="scope.row.batchNoList.length > 0"
-                v-for="item in scope.row.batchNoList"
-              >
+              <template v-if="scope.row.batchNoList.length > 0" v-for="item in scope.row.batchNoList">
                 <div>批次号: {{ item }}</div>
               </template>
               <span v-else>-</span>
@@ -154,10 +120,14 @@ const props = defineProps({
   showInfo: {
     type: Object,
   },
-  isShow:{
+  isShow: {
     type: Boolean,
     default: true,
   },
+  isMixMaterial: {
+    type: Boolean,
+    default: false,
+  },
 });
 const searchBatchNo = ref("");
 const searchSeqNo = ref("");
@@ -168,11 +138,7 @@ const showBatchNoTableData = computed(() => {
   let array = JSON.parse(JSON.stringify(batchNoTableData.value));
   if (searchBatchNo.value) {
     const lowerCaseSearchValue = searchBatchNo.value.toLowerCase();
-    array = array.filter(
-      (item) =>
-        item.batchNo &&
-        item.batchNo.toLowerCase().includes(lowerCaseSearchValue)
-    );
+    array = array.filter((item) => item.batchNo && item.batchNo.toLowerCase().includes(lowerCaseSearchValue));
   }
   return array;
 });
@@ -234,10 +200,7 @@ const showSeqData = computed(() => {
   }
   if (searchSeqNo.value) {
     const lowerCaseSearchValue = searchSeqNo.value.toLowerCase();
-    array = array.filter(
-      (item) =>
-        item.seqNo && item.seqNo.toLowerCase().includes(lowerCaseSearchValue)
-    );
+    array = array.filter((item) => item.seqNo && item.seqNo.toLowerCase().includes(lowerCaseSearchValue));
   }
   return array;
 });
@@ -256,6 +219,7 @@ const submit = async () => {
         trackBy: store1.user.username,
         seqNoList: item.seqList,
         batchNo: item.batchNo,
+        isMixMaterial: props.isMixMaterial ? 1 : 0,
       });
     }
   });

+ 5 - 0
src/views/pro-steps/popUpView/saveBatchInfoPop.vue

@@ -37,6 +37,10 @@ const props = defineProps({
   showInfo: {
     type: Object,
   },
+  isMixMaterial: {
+    type: Boolean,
+    default: false,
+  },
 });
 
 //现选中List
@@ -58,6 +62,7 @@ const submit = async () => {
         trackBy: store1.user.username,
         seqNoList: item.selectSeq,
         batchNo: item.batchNo,
+        isMixMaterial: props.isMixMaterial ? 1 : 0,
       });
     });
   if (showData.value.length < 1) {

+ 46 - 143
src/views/pro-steps/popUpView/xiangqingPopUp.vue

@@ -2,19 +2,12 @@
   <!-- 物料采集详情界面 -->
   <div class="popUp" v-if="modelValue">
     <div class="header" style="height: 3vh">
-      <div class="headerTittle" style="font-weight: border; font-size: 28px">
-        物料采集详情
-      </div>
+      <div class="headerTittle" style="font-weight: border; font-size: 28px">物料采集详情</div>
     </div>
-    <div
-      class="header"
-      style="display: flex; justify-content: center; margin: 20px"
-    >
+    <div class="header" style="display: flex; justify-content: center; margin: 20px">
       <div class="box" @click.stop>
         <div class="boxItem">
-          <div class="describeText">
-            需采集物料:{{ showInfo.materialName }}
-          </div>
+          <div class="describeText">需采集物料:{{ showInfo.materialName }}</div>
           <div class="describeText">物料编码:{{ showInfo.materialCode }}</div>
           <div class="describeText">型号:{{ showInfo.spec }}</div>
           <div class="describeText">单管需要:{{ showInfo.totalNum }}</div>
@@ -24,9 +17,7 @@
     <div class="body">
       <div class="container1" @click.stop>
         <div class="boxTittle">
-          批次号列表(共&nbsp;{{
-            batchNoTableData.length
-          }}&nbsp;批次,完成绑定&nbsp;{{
+          批次号列表(共&nbsp;{{ batchNoTableData.length }}&nbsp;批次,完成绑定&nbsp;{{
             batchNoOkSum
           }}&nbsp;批次,本次完成绑定<span style="color: green">
             &nbsp;
@@ -36,41 +27,16 @@
         <el-divider style="margin-top: 20px !important" />
         <div style="display: flex; margin-bottom: 20px; align-items: center">
           <div class="seqSearchInput">
-            <el-input
-              v-model="searchBatchNo"
-              placeholder="搜索批次号"
-              class="searchInput"
-              clearable
-            />
+            <el-input v-model="searchBatchNo" placeholder="搜索批次号" class="searchInput" clearable />
           </div>
-          <el-button
-            @click="batchNoOk = true"
-            :type="batchNoOk ? 'primary' : ''"
-            >数量绑定完成</el-button
-          >
-          <el-button
-            :type="!batchNoOk ? 'primary' : ''"
-            @click="batchNoOk = false"
-            >还可绑定</el-button
-          >
-          <el-button style="width: 300px" type="success" @click="autoAll"
-            >按需全批次自动绑定</el-button
-          >
+          <el-button @click="batchNoOk = true" :type="batchNoOk ? 'primary' : ''">数量绑定完成</el-button>
+          <el-button :type="!batchNoOk ? 'primary' : ''" @click="batchNoOk = false">还可绑定</el-button>
+          <el-button style="width: 300px" type="success" @click="autoAll">按需全批次自动绑定</el-button>
         </div>
 
-        <el-table
-          border
-          class="seqTable"
-          :data="showTableData"
-          :row-class-name="tableRowClassName1"
-          style="flex: 1"
-        >
+        <el-table border class="seqTable" :data="showTableData" :row-class-name="tableRowClassName1" style="flex: 1">
           <el-table-column align="center" label="批次号" prop="batchNo" />
-          <el-table-column
-            align="center"
-            label="总可绑数量"
-            prop="surplusNum"
-          />
+          <el-table-column align="center" label="总可绑数量" prop="surplusNum" />
           <el-table-column align="center" label="本次绑定管号">
             <template #default="scope">
               <el-scrollbar max-height="300px">
@@ -80,14 +46,7 @@
                   filterable
                   placeholder="管号"
                   v-model="batchNoTableData[scope.$index].selectSeqNo"
-                  @change="
-                    (value) =>
-                      setSelectSeq(
-                        value,
-                        scope.$index,
-                        batchNoTableData[scope.$index].batchNo
-                      )
-                  "
+                  @change="(value) => setSelectSeq(value, scope.$index, batchNoTableData[scope.$index].batchNo)"
                   @clear="clear(scope.$index)"
                   @remove-tag="(tagValue) => removeTag(tagValue, scope.$index)"
                 >
@@ -97,9 +56,7 @@
                     :label="item.seqNo"
                     :value="item.seqNo"
                     :disabled="
-                      item.selectBatchNoList.includes(
-                        batchNoTableData[scope.$index].batchNo
-                      )
+                      item.selectBatchNoList.includes(batchNoTableData[scope.$index].batchNo)
                         ? false
                         : tabledata[scope.$index].num <= 0
                           ? true
@@ -116,11 +73,7 @@
           <el-table-column align="center" width="200" label="绑定管号详情">
             <template #default="scope">
               <el-scrollbar max-height="300px">
-                <el-form
-                  :model="item"
-                  v-for="(item, index) in scope.row.selectSeq"
-                  :key="index"
-                >
+                <el-form :model="item" v-for="(item, index) in scope.row.selectSeq" :key="index">
                   <el-form-item
                     :rules="{
                       message: '该选项为必选',
@@ -140,9 +93,7 @@
                     prop="num"
                   >
                     <el-input-number
-                      v-model="
-                        batchNoTableData[scope.$index].selectSeq[index].num
-                      "
+                      v-model="batchNoTableData[scope.$index].selectSeq[index].num"
                       :min="0"
                       :max="
                         batchNoTableData[scope.$index].selectSeq[index].num +
@@ -157,19 +108,13 @@
               </el-scrollbar>
             </template>
           </el-table-column>
-          <el-table-column align="center" label="剩余可绑数量" prop="num">
-          </el-table-column>
+          <el-table-column align="center" label="剩余可绑数量" prop="num"> </el-table-column>
           <el-table-column align="center" width="160" label="操作">
             <template #default="scope">
               <el-button
                 style="width: 120px"
                 type="primary"
-                @click="
-                  toAutoItem(
-                    scope.$index,
-                    batchNoTableData[scope.$index].batchNo
-                  )
-                "
+                @click="toAutoItem(scope.$index, batchNoTableData[scope.$index].batchNo)"
                 >按需自动绑定</el-button
               >
             </template>
@@ -181,16 +126,13 @@
           </template>
         </el-table>
         <div class="btns">
-          <el-button type="primary" @click="submitInfoStatus = true"
-            >绑定确认</el-button
-          >
+          <el-button type="primary" @click="submitInfoStatus = true">绑定确认</el-button>
           <el-button @click="handleClose">取消</el-button>
         </div>
       </div>
       <div class="container2" @click.stop>
         <div class="boxTittle">
-          管号列表(共 {{ seqList.length }} 个,完成绑定
-          {{ seqNoOkSum }} 个,本次完成绑定<span style="color: green">
+          管号列表(共 {{ seqList.length }} 个,完成绑定 {{ seqNoOkSum }} 个,本次完成绑定<span style="color: green">
             &nbsp;
             {{ seqNoDataList.filter((item) => item.remainingNum <= 0).length }}
             &nbsp;</span
@@ -199,19 +141,10 @@
         <el-divider />
         <div style="display: flex; margin-bottom: 20px; align-items: center">
           <div class="seqSearchInput">
-            <el-input
-              v-model="searchSeqNo"
-              placeholder="搜索管号"
-              class="searchInput"
-              clearable
-            />
+            <el-input v-model="searchSeqNo" placeholder="搜索管号" class="searchInput" clearable />
           </div>
-          <el-button @click="seqNoOk = true" :type="seqNoOk ? 'primary' : ''"
-            >完成绑定</el-button
-          >
-          <el-button :type="!seqNoOk ? 'primary' : ''" @click="seqNoOk = false"
-            >未完成</el-button
-          >
+          <el-button @click="seqNoOk = true" :type="seqNoOk ? 'primary' : ''">完成绑定</el-button>
+          <el-button :type="!seqNoOk ? 'primary' : ''" @click="seqNoOk = false">未完成</el-button>
         </div>
         <el-table
           border
@@ -221,16 +154,9 @@
           style="flex: 1"
         >
           <el-table-column align="center" label="管号" prop="seqNo" />
-          <el-table-column
-            align="center"
-            label="已绑定批次号及数量"
-            prop="batchNo"
-          >
+          <el-table-column align="center" label="已绑定批次号及数量" prop="batchNo">
             <template #default="scope">
-              <template
-                v-if="scope.row.batchNo.length > 0"
-                v-for="item in scope.row.batchNo"
-              >
+              <template v-if="scope.row.batchNo.length > 0" v-for="item in scope.row.batchNo">
                 <div class="selectInfo">
                   <div class="batchNo">批次号: {{ item.batchNo }}</div>
                   <div class="num">数量: {{ item.num }}</div>
@@ -239,22 +165,10 @@
               <span v-else>-</span>
             </template>
           </el-table-column>
-          <el-table-column
-            label="剩余需要绑定数量"
-            sortable
-            prop="remainingNum"
-            align="center"
-          />
-          <el-table-column
-            align="center"
-            v-if="!seqNoOk"
-            label="本次绑定批次号及数量"
-          >
+          <el-table-column label="剩余需要绑定数量" sortable prop="remainingNum" align="center" />
+          <el-table-column align="center" v-if="!seqNoOk" label="本次绑定批次号及数量">
             <template #default="scope">
-              <template
-                v-if="scope.row.selectList.length > 0"
-                v-for="item in scope.row.selectList"
-              >
+              <template v-if="scope.row.selectList.length > 0" v-for="item in scope.row.selectList">
                 <div class="selectInfo">
                   <div class="batchNo">批次号: {{ item.batchNo }}</div>
                   <div class="num">数量: {{ item.num }}</div>
@@ -273,6 +187,7 @@
     </div>
     <saveBatchInfoPop
       v-model="submitInfoStatus"
+      :isMixMaterial="props.isMixMaterial"
       :showInfo="showInfo"
       @close="handleClose"
       @data-list="dataList"
@@ -286,6 +201,7 @@ import { useProcessStore } from "@/store";
 import { getunProcessedList } from "@/api/prosteps";
 import { includes } from "lodash-es";
 import internal from "stream";
+import { isMixMaterial } from "@/api/prosteps/wuliaocaiji";
 const props = defineProps({
   modelValue: {
     type: Boolean,
@@ -294,6 +210,10 @@ const props = defineProps({
   showInfo: {
     type: Object,
   },
+  isMixMaterial: {
+    type: Boolean,
+    default: false,
+  },
 });
 const batchNoOk = ref(false);
 const submitInfoStatus = ref(false);
@@ -307,9 +227,9 @@ const batchNoOkSum = computed(() => {
 });
 provide("batchNoTableData", batchNoTableData);
 const removeTag = (tagValue, index) => {
-  batchNoTableData.value[index].selectSeq = batchNoTableData.value[
-    index
-  ].selectSeq.filter((item) => item.seqNo != tagValue);
+  batchNoTableData.value[index].selectSeq = batchNoTableData.value[index].selectSeq.filter(
+    (item) => item.seqNo != tagValue
+  );
 };
 const clear = (index) => {
   batchNoTableData.value[index].selectSeq = [];
@@ -336,10 +256,7 @@ const setBatchNoTableData = () => {
     for (let i = 0; i < resetArray.length; i++) {
       //设置数字
       if (myMap.has(resetArray[i].batchNo)) {
-        myMap.set(
-          resetArray[i].batchNo,
-          Number(myMap.get(resetArray[i].batchNo)) + Number(resetArray[i].num)
-        );
+        myMap.set(resetArray[i].batchNo, Number(myMap.get(resetArray[i].batchNo)) + Number(resetArray[i].num));
       } else {
         myMap.set(resetArray[i].batchNo, resetArray[i].num);
       }
@@ -360,9 +277,7 @@ const setBatchNoTableData = () => {
     item.seqNo = listObj[item.batchNo];
     item.ok = item.surplusNum > 0 ? false : true;
     item.soNum = item.surplusNum;
-    item.surplusNum = myMap.get(item.batchNo)
-      ? item.surplusNum + myMap.get(item.batchNo)
-      : item.surplusNum;
+    item.surplusNum = myMap.get(item.batchNo) ? item.surplusNum + myMap.get(item.batchNo) : item.surplusNum;
   });
 };
 
@@ -392,7 +307,7 @@ const setSeqNoList = (seqList) => {
     }
     array[i].remainingNum = sum;
     if (array[i].remainingNum <= 0) {
-      array[i].remainingNum=0;
+      array[i].remainingNum = 0;
       array[i].ok = true;
     } else {
       array[i].ok = false;
@@ -406,18 +321,13 @@ const showOKseqData = computed(() => {
   resArray = seqNoList.value.filter((item) => item.ok == true);
   if (searchSeqNo.value) {
     const lowerCaseSearchValue = searchSeqNo.value.toLowerCase();
-    resArray.filter(
-      (item) =>
-        item.seqNo && item.seqNo.toLowerCase().includes(lowerCaseSearchValue)
-    );
+    resArray.filter((item) => item.seqNo && item.seqNo.toLowerCase().includes(lowerCaseSearchValue));
   }
   return resArray;
 });
 const seqNoDataList = computed(() => {
   let resArray = [];
-  resArray = JSON.parse(JSON.stringify(seqNoList.value)).filter(
-    (item) => item.ok != true
-  );
+  resArray = JSON.parse(JSON.stringify(seqNoList.value)).filter((item) => item.ok != true);
   //对本次采集过滤
   const selectArray = [];
   //此处batchNoTableData为本计算属性主驱动
@@ -442,10 +352,7 @@ const seqNoDataList = computed(() => {
   });
   if (searchSeqNo.value) {
     const lowerCaseSearchValue = searchSeqNo.value.toLowerCase();
-    resArray = resArray.filter(
-      (item) =>
-        item.seqNo && item.seqNo.toLowerCase().includes(lowerCaseSearchValue)
-    );
+    resArray = resArray.filter((item) => item.seqNo && item.seqNo.toLowerCase().includes(lowerCaseSearchValue));
   }
   return resArray;
 });
@@ -531,11 +438,7 @@ const showTableData = computed(() => {
   let array = JSON.parse(JSON.stringify(tabledata.value));
   if (searchBatchNo.value) {
     const lowerCaseSearchValue = searchBatchNo.value.toLowerCase();
-    array = array.filter(
-      (item) =>
-        item.batchNo &&
-        item.batchNo.toLowerCase().includes(lowerCaseSearchValue)
-    );
+    array = array.filter((item) => item.batchNo && item.batchNo.toLowerCase().includes(lowerCaseSearchValue));
   }
   return array;
 });
@@ -583,9 +486,9 @@ const searchSeqNo = ref("");
 const setSelectSeq = (value, index, batchNo) => {
   const value1 = ref(value);
   const array = [];
-  batchNoTableData.value[index].selectSeq = batchNoTableData.value[
-    index
-  ].selectSeq.filter((item) => value1.value.includes(item.seqNo));
+  batchNoTableData.value[index].selectSeq = batchNoTableData.value[index].selectSeq.filter((item) =>
+    value1.value.includes(item.seqNo)
+  );
   for (let i = 0; i < batchNoTableData.value[index].selectSeq.length; i++) {
     array.push(batchNoTableData.value[index].selectSeq[i].seqNo);
   }
@@ -624,7 +527,7 @@ const tableRowClassName1 = ({ row, rowIndex }) => {
 };
 const tableRowClassName2 = ({ row, rowIndex }) => {
   if (row.remainingNum <= 0) {
-    row.remainingNum=0;
+    row.remainingNum = 0;
     return "success-row";
   } else {
   }