From cbef8fa558dad5e994827bf1bd05e3abf8940d80 Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期一, 29 四月 2024 13:43:28 +0800
Subject: [PATCH] 任务检验模板切换完成80%'

---
 src/components/do/b1-inspect-order-plan/Inspection.vue |  260 ++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 203 insertions(+), 57 deletions(-)

diff --git a/src/components/do/b1-inspect-order-plan/Inspection.vue b/src/components/do/b1-inspect-order-plan/Inspection.vue
index 6946ec5..3f82a71 100644
--- a/src/components/do/b1-inspect-order-plan/Inspection.vue
+++ b/src/components/do/b1-inspect-order-plan/Inspection.vue
@@ -114,11 +114,11 @@
   }
 </style>
 <style>
-  .el-form-item__label {
+  .inspection .el-form-item__label {
     color: #000;
   }
 
-  .el-drawer__header::before {
+  .inspection .el-drawer__header::before {
     content: "";
     display: inline-block;
     width: 4px;
@@ -129,8 +129,20 @@
     margin-right: 8.5px;
   }
 
-  .el-drawer__header {
+  .inspection .el-drawer__header {
     color: #303133;
+  }
+
+  .inspection .el-input-group__append{
+    padding: 0 10px;
+    color: #3A7BFA;
+    background-color: #fff;
+  }
+
+  .inspection .center-box .el-input__inner{
+    font-size: 12px;
+    padding: 0 6px;
+    text-align: center;
   }
 </style>
 <template>
@@ -177,6 +189,12 @@
       </el-form>
     </div>
     <div class="center">
+      <div class="search">
+        <el-radio-group v-model="currentTable" size="small">
+          <el-radio-button :label="item.templateId" v-for="(item,index) in tableLists"
+            :key="index" size="small">{{ item.templateName }}</el-radio-button>
+        </el-radio-group>
+      </div>
       <div class="center-box">
         <table border="1" class="tables" cellpadding="10" v-for="(item,index) in tableList" :key="index"
           :style="`width: ${tableWidth}px;`">
@@ -187,10 +205,12 @@
                 :rowspan="n.v.mc&&n.v.mc.rs?n.v.mc.rs:1"
                 :style="`background:${n.v.bg};color:${n.v.fc};font-size:${n.v.fs}px;width:${item.style.columnlen[n.c]}px !important;height:${item.style.rowlen[n.r]}px;font-wight:${n.v.bl?'bold':''};`">
                 <div class="content" :class="`content-h-${n.v.ht} content-v-${n.v.vt}`">
-                  <template v-if="n.v.ps!=undefined && n.v.ps.value==='妫�楠屽��'">
+                  <template v-if="n.v.ps!=undefined && n.v.ps.value==='妫�楠屽��' && state==1">
                     <el-input v-if="getInspectionValueType(n.i) == 1" class="table_input" v-model="n.v.v"
-                      :disabled="getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '')||state>1"
-                      @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`)" />
+                      :disabled="getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '')"
+                      @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`)">
+                      <el-button slot="append" type="primary" icon="el-icon-edit" size="mini" v-if="getInspectionItemType(n.i) == 1" @click="getSystemValue(n)"></el-button>
+                    </el-input>
                     <el-input v-else-if="getInspectionValueType(n.i) == 2" class="table_input" type="textarea"
                       :autosize="{ minRows: 1}" v-model="n.v.v" :disabled="state>1" />
                     <el-select v-else-if="getInspectionValueType(n.i) == 5" class="table_input" v-model="n.v.v"
@@ -200,19 +220,15 @@
                     </el-select>
                     <span :style="`font-family:${n.v.ff} !important;`"
                       v-else-if="getInspectionValueType(n.i) == 4">/</span>
-                    <el-button type="primary" icon="el-icon-edit" size="mini" circle
-                      v-if="getInspectionItemType(n.i) == 1" style="border: 0;margin-left: 2px;"
-                      @click="getSystemValue(n)" :disabled="(n.u != userId && n.u != undefined && n.u != '')||state>1">
-                    </el-button>
                   </template>
                   <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='缁撹'">
                     <span v-if="n.v.v===1" :style="`font-family:${n.v.ff} !important;color: green;`">鍚堟牸</span>
                     <span v-else-if="n.v.v===0" :style="`font-family:${n.v.ff} !important;color: red;`">涓嶅悎鏍�</span>
                     <span v-else :style="`font-family:${n.v.ff} !important;`">寰呭畾</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==='璁惧缂栫爜' && state==1">
                     <el-select v-model="n.v.v" placeholder="璁惧" @visible-change="e=>getEquipOptions(e,n.i)"
-                      :disabled="state>1">
+                       remote @change="(val)=>changeEquip(val, n)">
                       <el-option v-for="item in equipOptions" :key="item.value" :label="item.value" :value="item.value">
                       </el-option>
                     </el-select>
@@ -257,12 +273,12 @@
       <ValueTable class="value-table" ref="insOrderPlan" :url="$api.insOrderPlan.selectInsOrderPlanList"
         :componentData="componentData" :key="upIndex" />
     </el-drawer>
-    <el-dialog title="妫�楠屽鏍�" :visible.sync="reviewDia" width="400px">
-      <div class="body" style="display: flex;" v-if="reviewDia">
-        <div class="search_label" style="width: 120px;"><span class="required-span">* </span>涓嶉�氳繃鍘熷洜锛�</div>
-        <div class="search_input">
+    <el-dialog title="妫�楠屽鏍�" :visible.sync="reviewDia" width="500px">
+      <div class="body" style="display: flex;padding: 10px;" v-if="reviewDia">
+        <div class="search_label" style="width: 150px;"><span class="required-span">* </span>涓嶉�氳繃鐨勭悊鐢憋細</div>
+        <div class="search_input" style="width: 100%;">
           <el-input size="small" clearable v-model="noReason" type="textarea"
-            :autosize="{ minRows: 3, maxRows: 5}"></el-input>
+            :autosize="{ minRows: 4}"></el-input>
         </div>
       </div>
       <span slot="footer" class="dialog-footer">
@@ -337,7 +353,9 @@
         reviewLoading: false,
         reviewDia: false,
         noReason: '',
-        tableWidth: 1000
+        tableWidth: 1000,
+        currentTable:null,
+        tableLists:[]
       }
     },
     created() {
@@ -371,15 +389,28 @@
               comValue: [],
               resValue: null,
               equipValue: [],
+              equipName: [],
               insResult: null
             }
           })
           if (this.currentSample.index == undefined) this.currentSample['index'] = 1
           this.loading = false
-          this.handleTableData()
+          // this.handleTableData()
+          this.getTableLists();
           this.componentData.currentId = val;
           this.currentKey = 1;
         })
+      },
+      currentTable(val1,val0){
+        if(val0!=null&&val1!=val0){
+          this.tableLists.forEach((m,i)=>{
+            if(m.templateId==val1){
+              this.tableList = null;
+              this.tableList = [(this.tableLists[i])];
+              this.handleTableData()
+            }
+          })
+        }
       }
     },
     methods: {
@@ -392,10 +423,12 @@
             comValue: [],
             resValue: null,
             equipValue: [],
+            equipName: [],
             insResult: null
           }
         })
-        this.handleTableData()
+        // this.handleTableData()
+        this.getTableLists();
         this.sampleVisible = false;
         this.currentKey = row.index
       },
@@ -454,10 +487,9 @@
       }) {
         row.index = rowIndex + 1;
       },
-      handleTableData() {
-        this.excelMethodList = []
+      getTableLists(){
         const mySet1 = new Set();
-        this.tableList = JSON.parse(JSON.stringify(this.currentSample.insProduct)).filter(m => {
+        this.tableLists = this.currentSample.insProduct.filter(m => {
           let num0 = mySet1.size;
           if (m.templateId != null) {
             mySet1.add(JSON.stringify({
@@ -469,7 +501,16 @@
           if (num1 > num0) {
             return m
           }
-        })
+        });
+        if(this.tableLists&&this.tableLists.length>0){
+          this.tableList = null;
+          this.tableList = [this.tableLists[0]]
+          this.currentTable = this.tableLists[0].templateId;
+          this.handleTableData()
+        }
+      },
+      handleTableData() {
+        this.excelMethodList = []
         this.tableList.forEach(a => {
           let mcList = []
           a.template.forEach(b => {
@@ -483,8 +524,12 @@
               for (var i = 0; i < b.v.mc.cs; i++) {
                 for (var i2 = 0; i2 < b.v.mc.rs; i2++) {
                   if (a.template[c].c === b.c + i && a.template[c].r === b.r + i2) {
-                    a.template[c].v.v = this.HaveJson(b).v.v
-                    a.template[c].v.ps = this.HaveJson(b).v.ps
+                    let bb = this.HaveJson(b)
+                    a.template[c].v.v = bb.v.v
+                    a.template[c].v.ps = bb.v.ps
+                    a.template[c].v.fc = bb.v.fc
+                    a.template[c].v.fs = bb.v.fs
+                    a.template[c].v.ht = bb.v.ht
                     a.template[c].mc = count
                     break
                   }
@@ -522,8 +567,7 @@
               if (str != '') {
                 for (let i in this.currentSample.insProduct) {
                   if (this.currentSample.insProduct[i].templateId === a.templateId && this.currentSample
-                    .insProduct[i].inspectionItem + (this.currentSample.insProduct[i].inspectionItemSubclass ===
-                    null ? '' : this.currentSample.insProduct[i].inspectionItemSubclass) === str) {
+                    .insProduct[i].inspectionItem + this.currentSample.insProduct[i].inspectionItemSubclass === str) {
                       ids.push({
                         r: b.r,
                         id: this.currentSample.insProduct[i].id,
@@ -554,7 +598,7 @@
                   a.template[b].v.v = id.product.unit
                 }
                 if (a.template[b].v.ps != undefined && a.template[b].v.ps.value === '璇曢獙鏂规硶') {
-                  a.template[b].v.v = id.product.method
+                  a.template[b].v.v = id.product.methodS
                 }
               }
             }
@@ -599,7 +643,7 @@
             if (b.v.ps != undefined && b.v.ps.value === '妫�楠屽��') {
               b.v.v = ''
               b.u = ''
-              this.param[b.i].insValue.push(b)
+              b.i&&this.param[b.i].insValue.push(b)
             }
             if (b.v.ps != undefined && b.v.ps.value === '璁$畻鍊�') {
               b.v.v = ''
@@ -608,6 +652,10 @@
             if (b.v.ps != undefined && b.v.ps.value === '璁惧缂栫爜') {
               b.v.v = ''
               this.param[b.i].equipValue.push(b)
+            }
+            if (b.v.ps != undefined && b.v.ps.value === '璁惧鍚嶇О') {
+              b.v.v = ''
+              this.param[b.i].equipName.push(b)
             }
             if (b.v.ps != undefined && b.v.ps.value === '鏈�缁堝��') {
               b.v.v = ''
@@ -633,7 +681,6 @@
               this.excelMethodList.push(b)
             }
           })
-          console.log(this.param);
           set = Array.sort(set)
           set.forEach(b => {
             let arr = []
@@ -665,7 +712,16 @@
             }
           } catch (e) {}
           try {
-            this.param[a.id].equipValue.v.v = a.insProductResult.equipValue
+            let equipValue = JSON.parse(a.insProductResult.equipValue)
+            for (var i = 0; i < equipValue.length; i++) {
+              this.param[a.id].equipValue[i].v.v = equipValue[i].v
+            }
+          } catch (e) {}
+          try {
+            let equipName = JSON.parse(a.insProductResult.equipName)
+            for (var i = 0; i < equipName.length; i++) {
+              this.param[a.id].equipName[i].v.v = equipName[i].v
+            }
           } catch (e) {}
           try {
             this.param[a.id].resValue.v.v = a.lastValue
@@ -673,6 +729,7 @@
           } catch (e) {}
         })
         this.handleExcelMethod()
+        console.log(55555555555,this.currentSample.insProduct,this.tableList,this.param)
       },
       changeInput(m, code) {
         let str = code.split('-')
@@ -710,10 +767,9 @@
                 }
               })
             })
-            // console.log('褰撳墠鐨勬柟娉�',item.methodName,item.r,item.c,this.excelMethodList)
-            if (item.methodName == '鑷畾涔夋柟娉�' && item.v.ps && item.v.ps.value == '缁撹') {
-              if (this.tableList.find(m => m.id == item.i)) {
-                let ask = this.tableList.find(m => m.id == item.i).ask.split('&');
+            if (item.methodName == '鑷畾涔夋柟娉�' && item.v.ps!=undefined && item.v.ps.value == '缁撹') {
+              if (this.currentSample.insProduct.find(m => m.id == item.i)) {
+                let ask = this.currentSample.insProduct.find(m => m.id == item.i).ask.split('&');
                 let res = Object.values(comValue)[0]
                 let comp = ask.map((m, i) => {
                   if (m.includes('=')) {
@@ -737,17 +793,7 @@
                 } else {
                   item.v.v = 0
                 }
-                this.$axios.post(this.$api.insOrderPlan.saveInsContext, this.param, {
-                  headers: {
-                    'Content-Type': 'application/json'
-                  }
-                }).then(res => {
-                  if (res.code == 201) {
-                    this.$message.error('淇濆瓨澶辫触')
-                    return
-                  }
-                  this.$message.success('宸蹭繚瀛�')
-                })
+                this.saveInsContext()
               }
             } else {
               let comResult = 0;
@@ -785,23 +831,98 @@
                   valueList.forEach(b => {
                     str = str.replace(b.name, b.value)
                   })
-                  comResult = eval(str)
+                  if(item.v.f.includes('/')>-1){
+                    if(Object.getOwnPropertyNames(comValue).length==valueList.length){
+                      comResult = eval(str)
+                    }else{
+                      comResult = ''
+                    }
+                  }else{
+                    comResult = eval(str)
+                  }
                   break;
               }
               list.forEach(a => {
-                if (a[0].r == item.r) {
+                if (a[0].r == item.r && comResult != '') {
                   for (var b in a) {
                     if (a[b].c == item.c) {
-                      a[b].v.v = parseFloat(comResult.toFixed(2))
+                      a[b].v.v = parseFloat(comResult.toFixed(3))
                       break
                     }
                   }
                 }
               })
-              this.changeInput(comResult, `${code.split('-')[0]}-${item.r}-${item.c}-${pId}`) //鏀瑰彉鏈�缁堝��
+              this.changeInput(comResult, `${id}-${item.r}-${item.c}-${pId}`) //鏀瑰彉鏈�缁堝��
             }
           }
         })
+        this.getCurrentInsProduct(pId)
+      },
+      getCurrentInsProduct(pId){
+        if(!this.tableList[0].insProductResult){
+          this.tableList[0].insProductResult = {}
+        }
+        for (let m in this.param[pId]){
+          let value = this.param[pId][m]
+          switch (m){
+            case 'comValue':
+              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);
+                })
+              }
+              this.tableList[0].insProductResult[m] = JSON.stringify(this.tableList[0].insProductResult[m])
+              break;
+            case 'insValue':
+              if(value&&value.length>0){
+                this.tableList[0].insProductResult[m]=[];
+                value.forEach((a,i)=>{
+                  let obj = {
+                    v:a.v.v,
+                    u:a.u,
+                  }
+                  this.tableList[0].insProductResult[m].push(obj);
+                })
+              }
+              this.tableList[0].insProductResult[m] = JSON.stringify(this.tableList[0].insProductResult[m])
+              break;
+            case 'equipValue':
+              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);
+                })
+              }
+              this.tableList[0].insProductResult[m] = JSON.stringify(this.tableList[0].insProductResult[m])
+              break;
+            case 'equipName':
+              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);
+                })
+              }
+              this.tableList[0].insProductResult[m] = JSON.stringify(this.tableList[0].insProductResult[m])
+              break;
+            case 'resValue':
+              console.log(this.param)
+              this.tableList[0].lastValue = value.v.v
+              break;
+            case 'insResult':
+              this.tableList[0].insResult = value.v.v
+              break;
+          }
+        }
       },
       handleExcelMethod() {
         if (this.excelMethodList.length > 0) {
@@ -819,9 +940,9 @@
               let start = mode.split(':')[0]
               let end = mode.split(':')[1]
               c0 = this.comparisonList.find(j => j.label == start.split('')[0]).value
-              r0 = start.split('')[1] - 1
+              r0 = start.replace(/[a-zA-Z]/g, "") - 1
               c1 = this.comparisonList.find(j => j.label == end.split('')[0]).value
-              r1 = end.split('')[1] - 1
+              r1 = end.replace(/[a-zA-Z]/g, "") - 1
               for (let i = Number(r0); i <= Number(r1); i++) {
                 for (let u = Number(c0); u <= Number(c1); u++) {
                   valueList.push({
@@ -830,13 +951,12 @@
                   })
                 }
               }
-              item.valueList = valueList;
             } else {
               valueList = []
               let regex = /[=\+\-\*\%\(\)\/\s]/g
               let mode = item.v.f.replace(regex, ' ').split(' ');
               mode.filter(m => m && !Number(m)).forEach(m => {
-                let r = m.split('')[1] - 1
+                let r =  m.replace(/[a-zA-Z]/g, "") - 1
                 let c = this.comparisonList.find(j => j.label == m.split('')[0]).value
                 valueList.push({
                   c,
@@ -888,9 +1008,11 @@
       },
       getEquipOptions(e, id) {
         if (e) {
-          let category = this.currentSample.insProduct.find(m => m.id == id).deviceGroup
+          this.equipOptions = []
+          let product = this.currentSample.insProduct.find(m => m.id == id)
           this.$axios.post(this.$api.deviceScope.selectDeviceByCategory, {
-            category
+            inspectionItem: product.inspectionItem,
+            inspectionItemSubclass: product.inspectionItemSubclass
           }).then(res => {
             if (res.code === 200 && res.data) {
               this.equipOptions = res.data.map(m => {
@@ -971,6 +1093,30 @@
           console.error(error)
           this.submitLoading = false;
         })
+      },
+      saveInsContext(){
+        this.$axios.post(this.$api.insOrderPlan.saveInsContext, this.param, {
+          headers: {
+            'Content-Type': 'application/json'
+          }
+        }).then(res => {
+          if (res.code == 201) {
+            this.$message.error('淇濆瓨澶辫触')
+            return
+          }
+          this.$message.success('宸蹭繚瀛�')
+        })
+      },
+      changeEquip(val,n){
+        for(let i in this.equipOptions){
+          if(this.equipOptions[i].value === val){
+            for(let i1 in this.param[n.i].equipName){
+              if(this.param[n.i].equipName[i1].i === n.i && this.param[n.i].equipName[i1].r === n.r){
+                this.param[n.i].equipName[i1].v.v = this.equipOptions[i].label
+              }
+            }
+          }
+        }
       }
     }
   }

--
Gitblit v1.9.3