From ea06730ea1e9ae1838db35e0960ab98a0b250d0d Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期四, 10 四月 2025 17:16:25 +0800
Subject: [PATCH] 检验任务修改

---
 src/views/business/inspectionTask/inspection.vue |  268 ++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 182 insertions(+), 86 deletions(-)

diff --git a/src/views/business/inspectionTask/inspection.vue b/src/views/business/inspectionTask/inspection.vue
index 8b844ee..b2212fb 100644
--- a/src/views/business/inspectionTask/inspection.vue
+++ b/src/views/business/inspectionTask/inspection.vue
@@ -19,9 +19,10 @@
       <el-col :span="16" style="text-align: right">
         <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" @click="openUnPassDialog('add')">涓嶅悎鏍煎鐞�</el-button>
-        <el-button size="small" type="primary" @click="sampleVisible = true;uploadSample();">鏍峰搧鍒囨崲</el-button>
-<!--        <el-button v-if="state == 1" size="small" type="primary" @click="taskVisible = true">浠诲姟鍒囨崲</el-button>-->
+        <el-button v-if="state == 1 && typeSource == 1" size="small" type="primary"
+          @click="openUnPassDialog('add')">涓嶅悎鏍煎鐞�</el-button>
+        <el-button size="small" type="primary" @click="sampleVisible = true; uploadSample();">鏍峰搧鍒囨崲</el-button>
+        <!--        <el-button v-if="state == 1" size="small" type="primary" @click="taskVisible = true">浠诲姟鍒囨崲</el-button>-->
         <el-button v-if="state == 1" size="small" type="primary" @click="addVerifyDia = true">鎻愪氦</el-button>
         <!-- 澶嶆牳 -->
         <el-button v-if="state == 2" size="medium" type="primary" @click="openAddCheck">閫氳繃</el-button>
@@ -146,8 +147,7 @@
       </div>
       <!-- 甯歌妫�楠屽師濮嬭褰� -->
       <div id="nav" v-loading="tableLoading" class="center-box">
-        <template v-if="
-          tableLists.find((m) => m.templateId == currentTable)">
+        <template v-if="tableLists.find((m) => m.templateId == currentTable)">
           <table v-for="(item, index) in tableList" :key="index + currentTable + currentSample.id" border="1"
             cellpadding="10" class="tables" id="myTable">
             <tbody>
@@ -166,8 +166,7 @@
                     };`">
                   <div :class="`content-h-${n.v.ht} content-v-${n.v.vt}`" :style="`width:${handleWidth(n)}px !important;min-height:${item.style.rowlen[n.r]
                     }px;`" class="content">
-                    <template v-if="
-                      n.v.ps != undefined &&
+                    <template v-if="n.v.ps != undefined &&
                       typeof n.v.ps.value === 'string' &&
                       n.v.ps.value.includes('妫�楠屽��') &&
                       state == 1
@@ -222,7 +221,7 @@
                       <el-select v-if="
                         (getInspectionValueType(n.i) == 2 ||
                           getInspectionValueType(n.i) == 5) &&
-                        state == 1
+                        state == 1 && (n.u != userId && n.u != undefined && n.u != '')
                       " v-model="n.v.v" class="table_input" @change="(m) =>
                         changeInput(
                           m,
@@ -253,8 +252,7 @@
                         <span v-else :style="`font-family:${n.v.ff} !important;`">寰呭畾</span>
                       </template>
                     </template>
-                    <template v-else-if="
-                      n.v.ps != undefined &&
+                    <template v-else-if="n.v.ps != undefined &&
                       n.v.ps.value === '璁惧缂栫爜' &&
                       state == 1
                     ">
@@ -263,8 +261,9 @@
                     <template v-else-if="
                       n.v.ps != undefined && n.v.ps.value === '璁惧鍚嶇О'
                     ">
-                      <el-select v-model="n.v.v" :disabled="state > 1" class="table_input" filterable multiple
-                        placeholder="璁惧" remote @change="(val) => changeEquip(val, n)"
+                      <el-select v-model="n.v.v"
+                        :disabled="state > 1 || (n.u != userId && n.u != undefined && n.u != '')" class="table_input"
+                        filterable multiple placeholder="璁惧" remote @change="(val) => changeEquip(val, n)"
                         @visible-change="(e) => getEquipOptions(e, n.i)">
                         <el-option v-for="item in equipOptions" :key="item.value" :label="item.label"
                           :value="item.value">
@@ -272,8 +271,7 @@
                         </el-option>
                       </el-select>
                     </template>
-                    <template v-else-if="
-                      n.v.ps != undefined &&
+                    <template v-else-if="n.v.ps != undefined &&
                       n.v.ps.value === '瑕佹眰鍊�' &&
                       state == 1
                     ">
@@ -297,8 +295,7 @@
                         toFixed(n.v.v, n.v.ct)
                       }}</span>
                     </template>
-                    <template v-else-if="
-                      n.v.ps != undefined && n.v.ps.value === '鏍峰搧缂栧彿'
+                    <template v-else-if="n.v.ps != undefined && n.v.ps.value === '鏍峰搧缂栧彿'
                     ">
                       <div :title="currentSample.sampleCode" style="
                         display: flex;
@@ -314,15 +311,27 @@
                         <i class="el-icon-caret-right table_caret" style="width: 16px" @click="caretSample(1)"></i>
                       </div>
                     </template>
-                    <template v-else-if="
-                      n.v.ps != undefined && n.v.ps.value === '鏍峰搧鍨嬪彿'
+                    <template v-else-if="n.v.ps != undefined && n.v.ps.value === '鏍峰搧鍨嬪彿'
                     ">
-                      <div v-if="
-                        currentSample.model !== undefined &&
+                      <div v-if="currentSample.model !== undefined &&
                         currentSample.model !== null
                       " :style="`font-family:${n.v.ff} !important;`">
                         {{ currentSample.model }}
                       </div>
+                    </template>
+                    <template v-else-if="n.v.ps != undefined && n.v.ps.value === '璧峰鏃堕棿'
+                    ">
+                      <span v-if="state > 1 || (n.u != userId && n.u != undefined && n.u != '')">{{ n.v.v }}</span>
+                      <el-date-picker v-else v-model="n.v.v" type="datetime" placeholder="" format="yyyy-MM-dd HH:mm:ss"
+                        value-format="yyyy-MM-dd HH:mm:ss" @change="(val) => changeTestTime(val, n, 'testStartTime')">
+                      </el-date-picker>
+                    </template>
+                    <template v-else-if="n.v.ps != undefined && n.v.ps.value === '缁堟鏃堕棿'
+                    ">
+                      <span v-if="state > 1 || (n.u != userId && n.u != undefined && n.u != '')">{{ n.v.v }}</span>
+                      <el-date-picker v-else v-model="n.v.v" type="datetime" placeholder="" format="yyyy-MM-dd HH:mm:ss"
+                        value-format="yyyy-MM-dd HH:mm:ss" @change="(val) => changeTestTime(val, n, 'testEndTime')">
+                      </el-date-picker>
                     </template>
                     <span v-else :style="`font-family:${n.v.ff} !important;`" v-html="getValue(n.v)"></span>
                   </div>
@@ -343,8 +352,9 @@
     </div>
     <el-drawer :size="550" :visible.sync="sampleVisible" title="鏍峰搧鍒囨崲">
       <el-table v-if="sampleVisible" ref="productTable" :current-row-key="currentKey" :data="sampleProduct"
-        :row-class-name="tableRowClassName" :row-key="(record) => record.index" border class="el-table" height="100%"
-        highlight-current-row tooltip-effect="dark" @row-click="handleChangeSample">
+        :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border :row-class-name="tableRowClassName"
+        :row-key="(record) => record.index" border class="el-table" height="100%" highlight-current-row
+        tooltip-effect="dark" @row-click="handleChangeSample">
         <el-table-column :key="Math.random()" align="center" label="搴忓彿" type="index" width="70px">
         </el-table-column>
         <el-table-column label="鏍峰搧缂栧彿" min-width="100px" prop="sampleCode" show-overflow-tooltip></el-table-column>
@@ -506,15 +516,17 @@
     <InspectionWord v-if="unPassCheck" :inspectorList="inspectorList" :orderId="orderId"
       :rawMaterialTag="rawMaterialTag" :sonLaboratory="sonLaboratory" :state="state" :typeSource="typeSource"
       :unPassCheck="unPassCheck" @closeUnPassCheckDialog="closeUnPassCheckDialog" @refreshView="refreshView" />
-    <purchase-verification v-if="purchaseDialog" ref="purchaseDialog" :orderId="orderId"
+    <purchase-verification v-if="purchaseDialog" ref="purchaseDialog" :orderId="orderId" :workShopId="workShopId"
       :purchaseDialog="purchaseDialog" @resetPurchaseDialog="resetPurchaseDialog"></purchase-verification>
+    <!--鏌ョ湅宸ユ椂寮规-->
+    <viewManHourDia ref="viewManHourDia" @submit="openAddVerifyDia"></viewManHourDia>
   </div>
 </template>
 
 <script>
 import excelFunction from "@/utils/excelFountion";
 import limsTable from "@/components/Table/lims-table.vue";
-import UnPassDialog from "../unpass/components/addUnPass.vue";
+import UnPassDialog from "../unpass/components/unPassDialog.vue";
 import AddUnPass from "../unpass/components/addUnPass.vue";
 import InspectionWord from "./components/InspectionWord.vue";
 import PurchaseVerification from "../unpass/components/PurchaseVerification.vue";
@@ -537,13 +549,15 @@
   delfile,
   inspectionOrderDetailsTaskSwitching
 } from "@/api/business/inspectionTask.js";
-import InspectionWorker from '../../../InspectionWorker.worker';
-import DataWorker from '../../../DataWorker.worker';
+import InspectionWorker from '../../../workers/InspectionWorker.worker';
+import DataWorker from '../../../workers/DataWorker.worker';
 import html2canvas from "html2canvas";
 import { mapGetters } from "vuex";
+import viewManHourDia from "@/views/business/inspectionTask/components/viewManHourDia.vue";
 export default {
-  name: 'inspection',
+  name: 'Inspection',
   components: {
+    viewManHourDia,
     PurchaseVerification,
     AddUnPass,
     limsTable,
@@ -553,6 +567,7 @@
   data() {
     return {
       sonLaboratory: null,
+      workShopId: null,
       orderId: null,
       state: null,
       inspectorList: null,
@@ -769,8 +784,9 @@
     },
   },
   created() {
-    let { sonLaboratory, orderId, state, inspectorList, typeSource } =
+    let { sonLaboratory, orderId, state, inspectorList, typeSource, workShopId } =
       this.$route.query;
+    this.workShopId = workShopId
     this.sonLaboratory = sonLaboratory;
     this.orderId = orderId;
     this.id = this.orderId;
@@ -783,7 +799,15 @@
     this.getInsStateDicts();
     this.getComparisonList();
     this.getAuthorizedPerson();
-    // this.getPower();
+    this.startWorker();
+    // this.getList0() // 浠诲姟鍒囨崲
+    this.scrollInit();
+  },
+  activated() {
+    this.getTypeDicts(); // 鑾峰彇绱ф�ョ▼搴︿笅鎷夋閫夐」
+    this.getInsStateDicts();
+    this.getComparisonList();
+    this.getAuthorizedPerson();
     this.startWorker();
     // this.getList0() // 浠诲姟鍒囨崲
     this.scrollInit();
@@ -813,6 +837,8 @@
                 equipValue: [],
                 equipName: [],
                 insResult: null,
+                testEndTime: [],
+                testStartTime: [],
               };
             });
             // 鍘婚噸妯℃澘锛岃繑鍥炴湁鍑犱釜妯℃澘
@@ -886,15 +912,12 @@
         confirmButtonText: "纭畾",
         cancelButtonText: "鍙栨秷",
         type: "warning",
-      })
-        .then(() => {
-          delfile({ id: row.id }).then((res) => {
-            if (res.code == 201) return;
-            this.$message.success("鍒犻櫎鎴愬姛");
-            this.refresh();
-          });
-        })
-        .catch(() => { });
+      }).then(() => {
+        delfile({ id: row.id }).then((res) => {
+          this.$message.success("鍒犻櫎鎴愬姛");
+          this.getList();
+        });
+      }).catch(() => { });
     },
     // 鏂囦欢绠$悊--缁撴潫
 
@@ -970,6 +993,8 @@
             equipValue: [],
             equipName: [],
             insResult: null,
+            testEndTime: [],
+            testStartTime: [],
           };
         });
         if (this.currentSample.index == undefined)
@@ -1122,7 +1147,6 @@
       this.dataAcquisitionInfo = {};
       this.getData = [];
       for (let i in this.objectOrder(data)) {
-        console.log("i---", i);
         let obj = {};
         if (i.includes("@")) {
           obj = {
@@ -1465,12 +1489,10 @@
     },
     // 淇濆瓨婀垮害銆佹俯搴︽暟鎹�
     subOtherForm(m, type) {
-      console.log("m---", m);
       write({
         [type]: type === "remark" ? m : Number(m),
         id: this.insOrder.id,
       }).then((res) => {
-        if (res.code == 201) return;
         this.$message.success("淇濆瓨鎴愬姛");
       });
     },
@@ -1489,34 +1511,6 @@
         a.download = "table.png";
         a.click();
       });
-    },
-    // 鏉冮檺鑾峰彇
-    getPower() {
-      let power = JSON.parse(sessionStorage.getItem("power"));
-      let fileDel = false;
-      let fileAdd = false;
-      let collected = false;
-      let temDataAcquisition = false;
-      for (var i = 0; i < power.length; i++) {
-        if (power[i].menuMethod == "uploadFile") {
-          fileAdd = true;
-        }
-        if (power[i].menuMethod == "delfile") {
-          fileDel = true;
-        }
-        if (power[i].menuMethod == "isItAllowedToModifyTheCollectedValues") {
-          collected = true;
-        }
-        if (power[i].menuMethod == "temDataAcquisition") {
-          temDataAcquisition = true;
-        }
-      }
-      if (!fileDel) {
-        // this.componentData0.do.splice(1, 1);
-      }
-      this.fileAdd = fileAdd;
-      this.collected = collected;
-      this.temDataAcquisition = temDataAcquisition;
     },
     uploadSample() {
       doInsOrder({
@@ -1568,6 +1562,8 @@
           equipValue: [],
           equipName: [],
           insResult: null,
+          testEndTime: [],
+          testStartTime: [],
         };
       });
       // 澶勭悊椤甸潰鍒楄〃鏁版嵁
@@ -1613,6 +1609,8 @@
               equipValue: [],
               equipName: [],
               insResult: null,
+              testEndTime: [],
+              testStartTime: [],
             };
           });
           this.getTableLists0(list);
@@ -1973,6 +1971,12 @@
               ) {
                 a.template[b].v.v = id.product.methodS;
               }
+              if (
+                a.template[b].v.ps != undefined &&
+                a.template[b].v.ps.value === "璇曢獙鏉′欢"
+              ) {
+                a.template[b].v.v = id.product.radius;
+              }
             }
           }
         });
@@ -2012,6 +2016,7 @@
           (n) => n.v.ps != undefined && n.v.ps.value === "鏈�缁堝��"
         ); //鏈�缁堝�煎垪琛�
         a.template.forEach((b) => {
+          // console.log(444444, b)
           if (
             b.v.ps != undefined &&
             b.v.ps.value === "搴忓彿" &&
@@ -2034,6 +2039,10 @@
             this.$set(b.v, "v", "");
             // b.v.v = ''
             b.u = "";
+            let obj = this.currentSample.insProduct.find(m => m.id == b.i)
+            if (obj) {
+              this.$set(b, "u", obj.checkUserId);
+            }
             b.i && this.param[b.i] && this.param[b.i].insValue.push(b);
           }
           if (b.v.ps != undefined && b.v.ps.value === "璁$畻鍊�") {
@@ -2048,8 +2057,31 @@
           }
           if (b.v.ps != undefined && b.v.ps.value === "璁惧鍚嶇О") {
             this.$set(b.v, "v", "");
+            b.u = "";
+            let obj = this.currentSample.insProduct.find(m => m.id == b.i)
+            if (obj) {
+              this.$set(b, "u", obj.checkUserId);
+            }
             // b.v.v = ''
             b.i && this.param[b.i] && this.param[b.i].equipName.push(b);
+          }
+          if (b.v.ps != undefined && b.v.ps.value === "璧峰鏃堕棿") {
+            this.$set(b.v, "v", '');
+            let obj = this.currentSample.insProduct.find(m => m.id == b.i)
+            if (obj) {
+              this.$set(b, "u", obj.checkUserId);
+            }
+            // this.param[b.i].testStartTime = []
+            b.i && this.param[b.i] && this.param[b.i].testStartTime.push(b);
+          }
+          if (b.v.ps != undefined && b.v.ps.value === "缁堟鏃堕棿") {
+            this.$set(b.v, "v", "");
+            let obj = this.currentSample.insProduct.find(m => m.id == b.i)
+            if (obj) {
+              this.$set(b, "u", obj.checkUserId);
+            }
+            // this.param[b.i].testEndTime = []
+            b.i && this.param[b.i] && this.param[b.i].testEndTime.push(b);
           }
           if (b.v.ps != undefined && b.v.ps.value === "鏈�缁堝��") {
             // b.v.v = ''
@@ -2063,6 +2095,11 @@
             }
           }
           if (b.v.ps != undefined && b.v.ps.value === "缁撹") {
+            b.u = "";
+            let obj = this.currentSample.insProduct.find(m => m.id == b.i)
+            if (obj) {
+              this.$set(b, "u", obj.checkUserId);
+            }
             if (
               b.i !== undefined &&
               this.param[b.i] &&
@@ -2185,6 +2222,24 @@
         } catch (e) {
           console.log("璁惧鍚嶇О璧嬪��----", e);
         }
+        try {
+          // 璧峰鏃堕棿璧嬪��
+          let testStartTime = a.insProductResult.testStartTime ? JSON.parse(a.insProductResult.testStartTime) : []
+          for (let i = 0; i < testStartTime.length; i++) {
+            // 鏅�氳澶囧悕绉拌祴鍊�
+            this.param[a.id].testStartTime[i].v.v = testStartTime[i].v;
+          }
+        } catch (e) {
+
+        }
+        try {
+          // 缁堟鏃堕棿璧嬪��
+          let testEndTime = a.insProductResult.testEndTime ? JSON.parse(a.insProductResult.testEndTime) : []
+          for (let i = 0; i < testEndTime.length; i++) {
+            // 鏅�氳澶囧悕绉拌祴鍊�
+            this.param[a.id].testEndTime[i].v.v = testEndTime[i].v;
+          }
+        } catch (e) { }
         try {
           // 鏈�缁堝�艰祴鍊�
           this.param[a.id].resValue.v.v = this.toFixed(
@@ -2382,6 +2437,46 @@
               }
             }
             break;
+          // 璧嬪�艰捣濮嬫椂闂�
+          case "testEndTime":
+            if (value && value.length > 0) {
+              this.tableList[0].insProductResult[m] = [];
+              value.forEach((a, i) => {
+                let obj = {
+                  v: a.v.v,
+                };
+                this.tableList[0].insProductResult[m].push(obj);
+              });
+              try {
+                this.tableList[0].insProductResult[m] = JSON.stringify(
+                  this.tableList[0].insProductResult[m]
+                );
+              } catch (error) {
+                console.log(888, error);
+              }
+            }
+            // this.tableList[0].insProductResult[m] = value ? value.v.v : "";
+            break;
+          // 璧嬪�肩粓姝㈡椂闂�
+          case "testStartTime":
+            if (value && value.length > 0) {
+              this.tableList[0].insProductResult[m] = [];
+              value.forEach((a, i) => {
+                let obj = {
+                  v: a.v.v,
+                };
+                this.tableList[0].insProductResult[m].push(obj);
+              });
+              try {
+                this.tableList[0].insProductResult[m] = JSON.stringify(
+                  this.tableList[0].insProductResult[m]
+                );
+              } catch (error) {
+                console.log(888, error);
+              }
+            }
+            // this.tableList[0].insProductResult[m] = value ? value.v.v : "";
+            break;
           // 璧嬪�兼渶缁堝��
           case "resValue":
             this.tableList[0].lastValue = value ? value.v.v : "";
@@ -2574,6 +2669,13 @@
         this.$message.error("鏈緭鍏ヤ笉閫氳繃鍘熷洜");
       }
     },
+    // 鏌ョ湅宸ユ椂
+    viewManHour() {
+      this.$refs.viewManHourDia.showDialog(this.id, 99);
+    },
+    openAddVerifyDia() {
+      this.addVerifyDia = true;
+    },
     submit() {
       if (this.verifyUser === null || this.verifyUser === "") {
         this.$message.error("璇锋寚瀹氬鏍镐汉鍛�");
@@ -2691,10 +2793,6 @@
             orderId: this.orderId,
             sonLaboratory: this.sonLaboratory
           }).then((res) => {
-            if (res.code == 201) {
-              this.$message.error("淇濆瓨澶辫触");
-              return;
-            }
             this.$message.success("宸蹭繚瀛�");
           });
           // 鍚� Worker 鍙戦�佹秷鎭紝寮�濮嬪鐞嗛�昏緫
@@ -2761,8 +2859,13 @@
         console.log("changeEquip----", e);
       }
     },
+    // 璧峰鏃堕棿/缁堟鏃堕棿淇濆瓨
+    changeTestTime(val, n, type) {
+      this.$set(this.param[n.i][type][0].v, 'v', val)
+      this.saveInsContext(n.i);
+    },
     getAuthorizedPerson() {
-      selectUserCondition({ type: 0 }).then((res) => {
+      selectUserCondition({ type: 1 }).then((res) => {
         let data = [];
         res.data.forEach((a) => {
           data.push({
@@ -2827,6 +2930,8 @@
           equipValue: [],
           equipName: [],
           insResult: null,
+          testEndTime: [],
+          testStartTime: [],
         };
       });
       // 椤甸潰鏁版嵁澶勭悊
@@ -2846,7 +2951,7 @@
       this.upLoading = false;
       if (response.code == 200) {
         this.$message.success("涓婁紶鎴愬姛");
-        this.$refs.fileList.selectList();
+        this.getList();
       }
     },
     beforeUpload(file) {
@@ -2865,16 +2970,7 @@
     },
     handleDown(row) {
       downFile({ id: row.id }).then((res) => {
-        if (res.code === 200) {
-          let url = "";
-          if (res.data.type == 1) {
-            url = this.javaApi + "/img/" + res.data.fileUrl;
-            this.$download.saveAs(url, row.fileName)
-          } else {
-            url = this.javaApi + "/word/" + res.data.fileUrl;
-            this.$download.saveAs(url, row.fileName)
-          }
-        }
+        this.$download.saveAs(res.data.fileUrl, row.fileName)
       })
         .catch((error) => { });
     },
@@ -3036,7 +3132,7 @@
 }
 
 .content-h-2 {
-  justify-content: end;
+  justify-content: flex-end;
 }
 
 .content-v-0 {

--
Gitblit v1.9.3