From f294efb8c01ad8b0704a92d51c14dbd55d898874 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期四, 23 十月 2025 16:49:46 +0800
Subject: [PATCH] 拆分原材料和外购成品的业务流程(报检、下单、检验)

---
 src/views/business/inspectionTask/inspection.vue |  225 +++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 172 insertions(+), 53 deletions(-)

diff --git a/src/views/business/inspectionTask/inspection.vue b/src/views/business/inspectionTask/inspection.vue
index d750b75..40e6f22 100644
--- a/src/views/business/inspectionTask/inspection.vue
+++ b/src/views/business/inspectionTask/inspection.vue
@@ -1,7 +1,7 @@
 <template>
   <div v-loading="loading" class="inspection" style="background-color: rgb(245, 247, 251);">
     <el-row class="title">
-      <el-col :span="8" style="text-align: left">
+      <el-col v-if="insOrder.ifsOrderType!=='02wg'" :span="8" style="text-align: left;">
         <el-form :inline="true" :model="otherForm" class="form-inline" label-width="50px"
           style="text-align: right; padding-top: 0; display: inline">
           <el-form-item label="娓╁害:" style="margin-bottom: 0">
@@ -16,7 +16,8 @@
           </el-form-item>
         </el-form>
       </el-col>
-      <el-col :span="16" style="text-align: right">
+      <el-col :span="insOrder.ifsOrderType!=='02wg'?16:24" style="text-align: right">
+        <el-button v-if="insOrder.ifsOrderType" size="small" type="primary" @click="showMaterialPropsDialog">IFS鐗╂枡灞炴�ф洿鏂�</el-button>
         <el-button size="small" type="primary" @click="refreshView">鍒锋柊</el-button>
         <el-button v-if="typeSource == 1" size="small" type="primary" @click="openPurchase">杩涜揣楠岃瘉</el-button>
         <el-button v-if="state == 1 && typeSource == 1" size="small" type="primary"
@@ -74,6 +75,17 @@
             @blur="subOtherForm(insOrder.remark, 'remark')"></el-input>
           <!-- <el-tag v-if="currentKey">{{ insOrder.remark }}</el-tag> -->
         </el-form-item>
+        <template v-if="insOrder.isSplitOrder && insOrder.isSplitOrder===1">
+          <el-form-item label="澶栨姢棰滆壊:">
+            <el-input v-model="insOrder.outerColor" clearable disabled placeholder="" size="small"></el-input>
+          </el-form-item>
+          <el-form-item label="缁濈紭棰滆壊:">
+            <el-input v-model="insOrder.insulationColor" clearable disabled placeholder="" size="small"></el-input>
+          </el-form-item>
+          <el-form-item label="鐩樺彿:">
+            <el-input v-model="insOrder.drumNo" clearable disabled placeholder="" size="small"></el-input>
+          </el-form-item>
+        </template>
       </el-form>
     </div>
     <div class="center">
@@ -526,6 +538,41 @@
       :purchaseDialog="purchaseDialog" @resetPurchaseDialog="resetPurchaseDialog"></purchase-verification>
     <!--鏌ョ湅宸ユ椂寮规-->
     <viewManHourDia ref="viewManHourDia" @submit="openAddVerifyDia"></viewManHourDia>
+<!--    IFS鐗╂枡灞炴�х紪杈戝脊妗�-->
+    <el-dialog
+      title="鏇存柊IFS搴撳瓨鐗╂枡鎵规灞炴��"
+      :visible.sync="ifsMaterialPropsVisible"
+      width="20%">
+      <el-form style="width:100%" :model="ifsMaterialPropsForm">
+        <el-form-item label="杞藉叿缂栧彿(Attr1):">
+          <el-input size="small" v-model="ifsMaterialPropsForm.drumNo"></el-input>
+        </el-form-item>
+        <el-form-item label="璧峰绫虫爣(Attr2):">
+          <el-input size="small" v-model="ifsMaterialPropsForm.startMeterMark"></el-input>
+        </el-form-item>
+        <el-form-item label="鎴绫虫爣(Attr3):">
+          <el-input size="small" v-model="ifsMaterialPropsForm.endMeterMark"></el-input>
+        </el-form-item>
+<!--        <el-form-item label="鍏ュ簱闀垮害">-->
+<!--          <el-input v-model="ifsMaterialPropsForm.inboundLength"></el-input>-->
+<!--        </el-form-item>-->
+        <el-form-item label="缁濈紭棰滆壊(Attr4):">
+          <el-input size="small" v-model="ifsMaterialPropsForm.insulationColor"></el-input>
+        </el-form-item>
+        <el-form-item label="澶栨姢棰滆壊(Attr5):">
+          <el-input size="small" v-model="ifsMaterialPropsForm.outerColor"></el-input>
+        </el-form-item>
+        <el-form-item label="鍗板瓧淇℃伅(Attr8):">
+          <el-select size="small" v-model="ifsMaterialPropsForm.letteringInfo" placeholder="璇烽�夋嫨">
+            <el-option v-for="(item,index) in letteringInfoList" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+    <el-button @click="closePartPropDialog()">鍙� 娑�</el-button>
+    <el-button type="primary" @click="saveOrUpdatePartProp()">纭� 瀹�</el-button>
+  </span>
+    </el-dialog>
   </div>
 </template>
 
@@ -561,8 +608,9 @@
 import DataWorker from '@/workers/DataWorker.worker.js';
 import html2canvas from "html2canvas";
 import { mapGetters } from "vuex";
-import { connect,disconnect,weightList } from "@/utils/connect.js";
 import viewManHourDia from "@/views/business/inspectionTask/components/viewManHourDia.vue";
+import {connect,disconnect,weightList} from "@/utils/connect";
+import {getOneByIfsId,saveOrUpdateProps} from "@/api/business/ifsPartProps.js";
 export default {
   name: 'Inspection',
   components: {
@@ -575,6 +623,19 @@
   },
   data() {
     return {
+      letteringInfoList: [],
+      ifsMaterialPropsForm:{
+        id:null,
+        ifsOrderId: null,
+        drumNo: '', // 杞藉叿缂栧彿
+        startMeterMark: '', // 璧峰绫虫爣
+        endMeterMark: '', // 鎴绫虫爣
+        insulationColor: '', // 缁濈紭棰滆壊
+        outerColor: '', // 澶栨姢棰滆壊
+        inboundLength: '', // 鍏ュ簱闀垮害
+        letteringInfo: '', // 鍗板瓧淇℃伅
+      },
+      ifsMaterialPropsVisible:false,
       sonLaboratory: null,
       orderId: null,
       state: null,
@@ -749,7 +810,6 @@
         size: 10,
         current: 0,
       },
-      tableLoading: false,
       // 鏂囦欢鍒楄〃鐩稿叧--缁撴潫
       // 浠诲姟鍒囨崲鍒楄〃--寮�濮�
       tableData0: [],
@@ -784,6 +844,7 @@
       },
       tableLoading0: false,
       // 浠诲姟鍒囨崲鍒楄〃--缁撴潫
+      isSplit: 0, // 鏄惁鏄媶鍗曡繃鏉ョ殑
     };
   },
   // 鐢ㄤ簬涓婁紶鏂囦欢鐨勪俊鎭�
@@ -794,7 +855,7 @@
     },
   },
   created() {
-    let { sonLaboratory, orderId, state, inspectorList, typeSource } =
+    let { sonLaboratory, orderId, state, inspectorList, typeSource,isSplit } =
       this.$route.query;
     this.sonLaboratory = sonLaboratory;
     this.orderId = orderId;
@@ -802,6 +863,7 @@
     this.state = state;
     this.inspectorList = inspectorList;
     this.typeSource = typeSource;
+    this.isSplit = isSplit;
   },
   mounted() {
     this.getTypeDicts(); // 鑾峰彇绱ф�ョ▼搴︿笅鎷夋閫夐」
@@ -880,6 +942,7 @@
           }
         });
       }
+      console.log("澶勭悊鍚庣殑妯℃澘-",this.tableList)
     },
     // 鐗规畩妫�楠岄」--鐩戝惉璁惧淇℃伅鏀瑰彉
     equipForm: {
@@ -897,6 +960,49 @@
     }
   },
   methods: {
+    closePartPropDialog(){
+      this.ifsMaterialPropsForm = {
+        id:null,
+        ifsOrderId: null,
+        drumNo: '', // 杞藉叿缂栧彿
+        startMeterMark: '', // 璧峰绫虫爣
+        endMeterMark: '', // 鎴绫虫爣
+        insulationColor: '', // 缁濈紭棰滆壊
+        outerColor: '', // 澶栨姢棰滆壊
+        inboundLength: '', // 鍏ュ簱闀垮害
+        letteringInfo: '', // 鍗板瓧淇℃伅
+      }
+      this.ifsMaterialPropsVisible = false;
+    },
+    getPartProps(ifsId){
+      getOneByIfsId(ifsId).then((res)=>{
+        if(res.code==200 && res.data){
+          this.ifsMaterialPropsForm = res.data;
+        }
+      })
+    },
+    saveOrUpdatePartProp(){
+      saveOrUpdateProps({
+        ...this.ifsMaterialPropsForm,
+        partNo: this.insOrder.partNo,
+        lotBatchNo: this.insOrder.lotBatchNo,
+      }).then((res)=>{
+        if(res.code==200){
+          this.$message.success("淇濆瓨鎴愬姛");
+          this.ifsMaterialPropsVisible = false;
+        }
+      })
+    },
+    //鎵撳紑IFS鐗╂枡灞炴�у脊妗�
+    showMaterialPropsDialog(){
+      this.getPartProps(this.insOrder.ifsInventoryId)
+      this.$nextTick(()=>{
+        this.ifsMaterialPropsVisible = true;
+      })
+    },
+    disconnect() {
+      return disconnect
+    },
     sss() {
       console.log(this.$store.state.weightList) //
     },
@@ -982,6 +1088,8 @@
         laboratory: this.sonLaboratory,
       }).then(async (res) => {
         this.insOrder = res.data.insOrder;
+        //鏌ヨ闆朵欢灞炴��
+        this.getPartProps(res.data.insOrder.ifsInventoryId)
         this.supplierDensity = res.data.supplierDensity;
         this.getList()
         this.urgentList.forEach((m) => {
@@ -1196,6 +1304,7 @@
       return newObj;
     },
     handleDataAcquisition(data, noDialog) {
+      console.log("dadad--",data)
       // 鏄惁鍙互缂栬緫鏁伴噰鏁版嵁
       if (this.dataAcquisitionEidtAble) {
         this.getDataType = 1;
@@ -1219,7 +1328,9 @@
           };
         }
         // 寰幆鏁伴噰鏁版嵁
+        console.log(data[i],i)
         for (let j in data[i]) {
+          console.log("jjjjj--",j)
           // 鎷兼帴瀛楃涓�  妫�楠岄」鍒嗙被+妫�楠岄」+妫�楠屽瓙椤�
           let str0 = "";
           if (i.includes("@")) {
@@ -1423,6 +1534,7 @@
           this.getDataIndexLoading = false;
           this.dataGetDia = false;
           this.getDataTypeId = "";
+          console.log("dadada---",this.dataAcquisitionInfo)
           this.worker0.postMessage(
             JSON.stringify({
               dataAcquisitionInfo: this.dataAcquisitionInfo,
@@ -1436,6 +1548,7 @@
       // 鐩戝惉 Worker 杩斿洖鐨勭粨鏋�
       this.worker0.onmessage = (event) => {
         let result = JSON.parse(event.data);
+        console.log("Worker 杩斿洖鐨勭粨鏋�:", result);
         if (result.method == "changeInput") {
           // 閲囬泦鍚庣殑鏁版嵁锛岄渶瑕佽繘琛岃绠楃殑绾跨▼杩涜璁$畻
           let { list, n } = result.value;
@@ -1847,7 +1960,7 @@
                   if (c.v.ps != undefined && c.v.ps.value === "妫�楠岄」") {
                     if (count4 === 0) {
                       if (c.v.v) {
-                        c.v.v = c.v.v.replace(/\s*/g, "");
+                        c.v.v = c.v.v.replace(/[\n\r\s]*/g, "");
                       }
                       str += c.v.v;
                       count4 += 1;
@@ -1858,7 +1971,7 @@
                   ) {
                     if (count4 === 1) {
                       if (c.v.v) {
-                        c.v.v = c.v.v.replace(/\s*/g, "");
+                        c.v.v = c.v.v.replace(/[\n\r\s]*/g, "");
                       }
                       str += c.v.v;
                       count4 += 1;
@@ -1868,7 +1981,7 @@
                   if (c.v.ps != undefined && c.v.ps.value === "妫�楠岄」鍒嗙被") {
                     if (count4 === 0) {
                       if (c.v.v) {
-                        c.v.v = c.v.v.replace(/\s*/g, "");
+                        c.v.v = c.v.v.replace(/[\n\r\s]*/g, "");
                       }
                       str += c.v.v;
                       count4 += 1;
@@ -1876,7 +1989,8 @@
                   } else if (c.v.ps != undefined && c.v.ps.value === "妫�楠岄」") {
                     if (count4 === 1) {
                       if (c.v.v) {
-                        c.v.v = c.v.v.replace(/\s*/g, "");
+                        console.log("杩涘叆1111111")
+                        c.v.v = c.v.v.replace(/[\n\r\s]*/g, "");
                       }
                       str += c.v.v;
                       count4 += 1;
@@ -1887,7 +2001,7 @@
                   ) {
                     if (count4 === 2) {
                       if (c.v.v) {
-                        c.v.v = c.v.v.replace(/\s*/g, "");
+                        c.v.v = c.v.v.replace(/[\n\r\s]*/g, "");
                       }
                       str += c.v.v;
                       count4 += 1;
@@ -1897,7 +2011,7 @@
                 if (str === "鏈烘鎬ц兘骞叉�佹媺浼稿己搴�(绾靛悜)") {
                   if (c.v.ps != undefined && c.v.ps.value === "鍗曚綅") {
                     if (c.v.v) {
-                      c.v.v = c.v.v.replace(/\s*/g, "");
+                      c.v.v = c.v.v.replace(/[\n\r\s]*/g, "");
                     }
                     str2 = str + c.v.v;
                     unit2 = c.v.v;
@@ -1915,13 +2029,13 @@
                     undefined
                     ? ""
                     : this.currentSample.insProduct[i].inspectionItemClass;
-                inspectionItemClass = inspectionItemClass.replace(/\s*/g, "");
+                inspectionItemClass = inspectionItemClass.replace(/[\n\r\s]*/g, "");
                 let inspectionItem =
                   this.currentSample.insProduct[i].inspectionItem == null ||
                     this.currentSample.insProduct[i].inspectionItem == undefined
                     ? ""
                     : this.currentSample.insProduct[i].inspectionItem;
-                inspectionItem = inspectionItem.replace(/\s*/g, "");
+                inspectionItem = inspectionItem.replace(/[\n\r\s]*/g, "");
                 let inspectionItemSubclass =
                   this.currentSample.insProduct[i].inspectionItemSubclass ==
                     null ||
@@ -1930,7 +2044,7 @@
                     ? ""
                     : this.currentSample.insProduct[i].inspectionItemSubclass;
                 inspectionItemSubclass = inspectionItemSubclass.replace(
-                  /\s*/g,
+                  /[\n\r\s]*/g,
                   ""
                 );
                 if (inspectionItemSubclass === "骞叉�佹媺浼稿己搴�(绾靛悜)") {
@@ -2620,16 +2734,36 @@
     openAddVerifyDia() {
       this.addVerifyDia = true;
     },
+    confirmSubmit(registerInsResults){
+      submitPlan({
+        orderId: this.orderId,
+        laboratory: this.sonLaboratory,
+        verifyUser: this.verifyUser,
+        entrustCode: this.insOrder.entrustCode,
+        registerInsResults: registerInsResults
+      }).then((res) => {
+        if (res.code === 200) {
+          this.$message.success("鎿嶄綔鎴愬姛");
+          this.goback();
+          this.submitLoading = false;
+          this.addVerifyDia = false;
+        }
+      })
+        .catch((error) => {
+          console.error(error);
+          this.submitLoading = false;
+        });
+    },
     submit() {
       if (this.verifyUser === null || this.verifyUser === "") {
         this.$message.error("璇锋寚瀹氬鏍镐汉鍛�");
         return;
       }
-      if (!this.otherForm.humidity) {
+      if (!this.otherForm.humidity && this.insOrder.ifsOrderType!=='02wg') {
         this.$message.error("璇疯緭鍏ユ箍搴�");
         return;
       }
-      if (!this.otherForm.temperature) {
+      if (!this.otherForm.temperature && this.insOrder.ifsOrderType!=='02wg') {
         this.$message.error("璇疯緭鍏ユ俯搴�");
         return;
       }
@@ -2638,39 +2772,39 @@
         orderId: this.orderId,
         laboratory: this.sonLaboratory,
       }).then((res) => {
+        console.log(res)
         if (res.code === 200) {
-          if (!res.data || res.data.length == 0) {
+          if (!res.data || res.data.errorMsg.length == 0) {
             this.submitLoading = true;
-            submitPlan({
-              orderId: this.orderId,
-              laboratory: this.sonLaboratory,
-              verifyUser: this.verifyUser,
-              entrustCode: this.insOrder.entrustCode,
-            }).then((res) => {
-              if (res.code === 200) {
-                this.$message.success("鎿嶄綔鎴愬姛");
-                this.goback();
-                this.submitLoading = false;
-                this.addVerifyDia = false;
-              }
-            })
-              .catch((error) => {
-                console.error(error);
-                this.submitLoading = false;
+            //妫�楠岀被鍨嬩负鍘熸潗鏂�
+            if(this.typeSource==1 && res.data.unInsOrderCount==0 && this.isSplit==1){
+              const htmlStr = "鏄惁鐧昏IFS閲囪喘妫�楠岀粨鏋滃苟绉诲簱锛熻鎿嶄綔浼氱櫥璁�<span style='color:#ff4949'>鍚屼竴闆朵欢鍚屼竴璁㈠崟鐨勬墍鏈夋媶鍒嗘壒娆�</span>锛岃璋ㄦ厧閫夋嫨銆�"
+              this.$confirm(htmlStr, '鎻愮ず', {
+                confirmButtonText: '鏄�',
+                cancelButtonText: '鍚�',
+                type: 'warning',
+                dangerouslyUseHTMLString: true
+              }).then(() => {
+                this.confirmSubmit(true)
+              }).catch(() => {
+                this.confirmSubmit(false)
               });
+            }else{
+              this.confirmSubmit(true)
+            }
           } else {
             let newData = [];
             const h = this.$createElement;
-            for (let i in res.data) {
-              const lastChar = res.data[i].slice(-1);
+            for (let i in res.data.errorMsg) {
+              const lastChar = res.data.errorMsg[i].slice(-1);
               if (lastChar == "-") {
-                res.data[i] = res.data[i].slice(0, -1);
+                res.data.errorMsg[i] = res.data.errorMsg[i].slice(0, -1);
               }
               newData.push(
                 h(
                   "p",
                   { style: "font-size: 14px;color: red;" },
-                  Number(i) + 1 + "銆�" + res.data[i]
+                  Number(i) + 1 + "銆�" + res.data.errorMsg[i]
                 )
               );
             }
@@ -2693,22 +2827,7 @@
             })
               .then(() => {
                 this.submitLoading = true;
-                submitPlan({
-                  orderId: this.orderId,
-                  laboratory: this.sonLaboratory,
-                  verifyUser: this.verifyUser,
-                }).then((res) => {
-                  if (res.code === 200) {
-                    this.$message.success("鎿嶄綔鎴愬姛");
-                    this.addVerifyDia = false;
-                    this.goback();
-                  }
-                  this.submitLoading = false;
-                })
-                  .catch((error) => {
-                    console.error(error);
-                    this.submitLoading = false;
-                  });
+                this.confirmSubmit(false)
               })
               .catch(() => { });
           }

--
Gitblit v1.9.3