From ea2b6775c278d8990e858a309a966b82b36f4d40 Mon Sep 17 00:00:00 2001
From: Crunchy <3114200645@qq.com>
Date: 星期六, 13 七月 2024 15:11:25 +0800
Subject: [PATCH] 设备数采配置提交

---
 src/components/do/b1-ins-order/add.vue |  191 +++++++++++++++++++++++++++++++++++------------
 1 files changed, 143 insertions(+), 48 deletions(-)

diff --git a/src/components/do/b1-ins-order/add.vue b/src/components/do/b1-ins-order/add.vue
index 146b2e8..bae9b02 100644
--- a/src/components/do/b1-ins-order/add.vue
+++ b/src/components/do/b1-ins-order/add.vue
@@ -458,6 +458,8 @@
             </div>
           </template>
         </el-table-column>
+        <el-table-column prop="inspectionItemClass" v-if="PROJECT === '瑁呭鐢电紗'" label="妫�楠岄」鍒嗙被" min-width="140" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="inspectionItemClassEn" v-if="PROJECT === '瑁呭鐢电紗'" label="妫�楠岄」鍒嗙被(EN)" min-width="140" show-overflow-tooltip></el-table-column>
         <el-table-column prop="sonLaboratory" label="瀛愬疄楠屽" min-width="130" show-overflow-tooltip :filters="filters"
           :filter-method="filterHandler"></el-table-column>
         <el-table-column prop="methodS" label="璇曢獙鏂规硶" min-width="120" show-overflow-tooltip>
@@ -788,6 +790,9 @@
               :data="opticalProject"
               tooltip-effect="dark"
               style="width: 100%"
+              @row-click="rowClickOptical"
+              @select="selectOpticalProject"
+              @select-all="selectAllOptical"
               @selection-change="handleSelectionChange">
               <el-table-column
                 type="selection"
@@ -799,7 +804,7 @@
         </div>
         <div class="temperatureList">
           <div class="temperatureListTitle">
-            <span>娓╁害鐐归泦鍚�(璇锋寜鐓ч『搴忓~鍐欙紝20鈩冨繀椤讳负棣栦綅)</span>
+            <span>娓╁害鐐归泦鍚�</span>
             <span>
               <el-button type="primary" size="mini" @click="addTemperatureData">鏂板</el-button>
               <el-button size="mini" @click="deleteTemperatureData">鍒犻櫎</el-button>
@@ -814,23 +819,24 @@
             style="width: 100%">
             <el-table-column prop="date" label="娓╁害鐐�(鈩�)" width="120px">
               <template slot-scope="scope">
-                <el-input size="small" v-model="scope.row.temperaturePoint" clearable placeholder="璇疯緭鍏�"></el-input>
+                <el-input size="small" v-model="scope.row.temperaturePoint" clearable placeholder="璇疯緭鍏�" @change="changeTemperature"></el-input>
               </template>
             </el-table-column>
             <el-table-column prop="name" label="瑕佹眰(dB/Km)">
               <template slot-scope="scope">
                 <span>x</span>
-                <el-select v-model="scope.row.askSymbol" placeholder="璇烽�夋嫨" size="small" style="width: 120px">
+                <el-select v-model="scope.row.askSymbol" placeholder="璇烽�夋嫨" size="small" style="width: 120px" @change="changeTemperature">
                   <el-option v-for="item in temperatureDataList" :key="item.value" :label="item.label" :value="item.value">
                   </el-option>
                 </el-select>
-                <el-input size="small" v-model="scope.row.askNum" clearable placeholder="璇疯緭鍏�" style="width: 120px"></el-input>
+                <el-input size="small" v-model="scope.row.askNum" clearable placeholder="璇疯緭鍏�" style="width: 120px" @change="changeTemperature"></el-input>
               </template>
             </el-table-column>
           </el-table>
         </div>
       </div>
       <span slot="footer" class="dialog-footer">
+        <el-button @click="cleanSpliceData">鍙栨秷</el-button>
         <el-button type="primary" @click="spliceData">淇濆瓨</el-button>
       </span>
     </el-dialog>
@@ -1018,9 +1024,9 @@
         temperatureDataList: [
           {label: '<', value: '<'},
           {label: '鈮�', value: '鈮�'},
-          {label: '锛�', value: '锛�'},
+          {label: '=', value: '='},
           {label: '鈮�', value: '鈮�'},
-          {label: '锛�', value: '锛�'},
+          {label: '>', value: '>'},
         ]
       }
     },
@@ -1101,22 +1107,34 @@
           this.$message.error('璇峰~鍐欏畬鏁存暟鎹�')
           return
         }
+        // 鎷兼帴瑕佹眰鍊糰sk
         const opticalProjectList = JSON.parse(JSON.stringify(this.opticalProjectList))
+        opticalProjectList.forEach(o => {
+          o.temperatureData.forEach(t => {
+            if (!t.temperaturePoint || !t.askSymbol || !t.askNum) {
+              throw this.$message.error('璇峰~鍐欏畬鏁存暟鎹�')
+            }
+          })
+          if (!o.temperatureData.some(item => item.temperaturePoint == '20')) {
+            throw this.$message.error(`${o.value + '娉㈤暱娌℃湁閰嶇疆20鈩冩俯搴︾偣'}`)
+          }
+        })
         let entrustTime = this.circulateForm.entrustTime
         let entrustNum = this.circulateForm.entrustNum
-        let temperaturePoint1 = JSON.parse(JSON.stringify(this.temperatureData))
-
-        let temperaturePoint = JSON.parse(JSON.stringify(this.temperatureData))
-        temperaturePoint.unshift({temperaturePoint: 20, askSymbol: null, askNum: null})
+        let opticalProjectList2 = JSON.parse(JSON.stringify(this.opticalProjectList))
         let askArr = []
         let opticalProjectArr = []
-        // 鎷兼帴瑕佹眰鍊糰sk
         opticalProjectList.forEach(o => {
           opticalProjectArr.push(o.value)
-          temperaturePoint.forEach(t => {
-            t.temperaturePoint = t.temperaturePoint + '鈩�'
-            const askObj = t.temperaturePoint + ',' + o.value + ',' + t.askSymbol + t.askNum
-            askArr.push(askObj)
+          o.temperatureData.unshift({temperaturePoint: 20})
+          o.temperatureData.forEach(t => {
+            if (!t.askSymbol) {
+                  const askObj = t.temperaturePoint + '鈩�(甯告俯)' + ',' + o.value + ',' + null
+                  askArr.push(askObj)
+                } else {
+                  const askObj = t.temperaturePoint + '鈩�' + ',' + o.value + ',' + t.askSymbol + t.askNum
+                  askArr.push(askObj)
+                }
           })
         })
         askArr.push(this.circulateForm.entrustNum)
@@ -1127,22 +1145,22 @@
         let temperaturePointList2 = []
         entrustTime = entrustTime + 'h'
         entrustNum = entrustNum + '娆�'
-        temperaturePoint.forEach(t => {
-          t.temperaturePoint = t.temperaturePoint + '鈩�'
-          temperaturePointList.push(t.temperaturePoint)
+        opticalProjectList2.forEach(o => {
+          o.temperatureData.forEach(t => {
+            t.temperaturePoint = t.temperaturePoint + '鈩�'
+            temperaturePointList2.push(t.temperaturePoint)
+            temperaturePointList.push(t.temperaturePoint)
+            askNum.push(t.askSymbol + t.askNum + 'dB/Km')
+          })
         })
-        temperaturePoint1.forEach(t => {
-          if (!t.temperaturePoint || !t.askSymbol || !t.askNum) {
-            throw this.$message.error('璇峰~鍐欏畬鏁存暟鎹�')
-          }
-          t.temperaturePoint = t.temperaturePoint + '鈩�'
-          askNum.push(t.askSymbol + t.askNum + 'dB/Km')
-          temperaturePointList2.push(t.temperaturePoint)
-        })
+        temperaturePointList = Array.from(new Set(temperaturePointList))
+        temperaturePointList2 = Array.from(new Set(temperaturePointList2))
+        temperaturePointList2.unshift(20 + '鈩�(甯告俯)')
         let additionArr = []
         askNum.forEach(a => {
-          additionArr.push(temperaturePointList2.join(',') + a)
+          additionArr.push(temperaturePointList.join(',') + a)
         })
+        additionArr = Array.from(new Set(additionArr))
         const tell = '娓╁害鑼冨洿:' + temperaturePointList2.join(',') + ';' + '淇濇俯鏃堕棿:' + entrustTime + ';' + '寰幆娆℃暟:'
           + entrustNum + ';' + '鍏夌氦(' + opticalProjectArr.join(',') + ')' + '闄勫姞琛板噺缁濆鍊�:' + additionArr.join(';')
         this.productList.forEach(item => {
@@ -1151,31 +1169,83 @@
             item.tell = tell
           }
         })
+        console.log('ask---', ask)
+        console.log('tell---', tell)
+        this.circulateShow = false
+      },
+      cleanSpliceData () {
+        this.circulateForm.entrustNum = null
+        this.circulateForm.entrustTime = null
+        this.circulateForm.entrustPoint = null
+        this.opticalProjectList = []
+        this.$refs.multipleTable.clearSelection()
+        this.temperatureData = []
         this.circulateShow = false
       },
       beforeCirculateShowClose () {
-        if (!this.circulateForm.entrustNum || !this.circulateForm.entrustTime || !this.circulateForm.entrustPoint || this.opticalProjectList.length === 0 || this.temperatureData.length === 0) {
-          this.$message.error('璇峰~鍐欏畬鏁存暟鎹�')
-          return
-        }
-        let temperaturePoint1 = JSON.parse(JSON.stringify(this.temperatureData))
-        temperaturePoint1.forEach(t => {
-          if (!t.temperaturePoint || !t.askSymbol || !t.askNum) {
-            throw this.$message.error('璇峰~鍐欏畬鏁存暟鎹�')
+          if (!this.circulateForm.entrustNum || !this.circulateForm.entrustTime || !this.circulateForm.entrustPoint || this.opticalProjectList.length === 0 || this.temperatureData.length === 0) {
+            this.$message.error('璇峰~鍐欏畬鏁存暟鎹�')
+            return
           }
-        })
+          // 鎷兼帴瑕佹眰鍊糰sk
+          const opticalProjectList = JSON.parse(JSON.stringify(this.opticalProjectList))
+          opticalProjectList.forEach(o => {
+            o.temperatureData.forEach(t => {
+              if (!t.temperaturePoint || !t.askSymbol || !t.askNum) {
+                throw this.$message.error('璇峰~鍐欏畬鏁存暟鎹�')
+              }
+            })
+            if (!o.temperatureData.some(item => item.temperaturePoint == '20')) {
+              throw this.$message.error(`${o.value + '娉㈤暱娌℃湁閰嶇疆20鈩冩俯搴︾偣'}`)
+            }
+          })
+          this.spliceData()
       },
       handleSelectionChange(val) {
         this.opticalProjectList = val;
       },
+      selectAllOptical (val) {
+        if (val.length > 0) {
+          if (val[val.length-1].temperatureData) {
+            this.temperatureData = this.HaveJson(val.temperatureData)
+          } else {
+            this.temperatureData = []
+          }
+        } else {
+          this.temperatureData = []
+        }
+        this.circulateForm.entrustPoint = this.temperatureData.length
+      },
+      selectOpticalProject (val) {
+        if (val.temperatureData) {
+          this.temperatureData = this.HaveJson(val.temperatureData)
+        } else {
+          this.temperatureData = []
+        }
+        this.circulateForm.entrustPoint = this.temperatureData.length
+      },
+      rowClickOptical (val) {
+        const index = this.opticalProjectList.findIndex(item => item.value === val.value)
+        if (index > -1 && val.temperatureData) {
+          this.temperatureData = this.HaveJson(val.temperatureData)
+        }
+        this.circulateForm.entrustPoint = this.temperatureData.length
+      },
+      changeTemperature () {
+        this.opticalProjectList.forEach(item => {
+          item.temperatureData = this.HaveJson(this.temperatureData)
+        })
+      },
       addTemperatureData () {
         const obj = {}
         this.temperatureData.push(obj)
+        this.circulateForm.entrustPoint = this.temperatureData.length
       },
       deleteTemperatureData () {
         if (this.temperatureData.length > 0) {
           this.temperatureData = this.temperatureData.slice(0,-1)
         }
+        this.circulateForm.entrustPoint = this.temperatureData.length
       },
       changeTemperatureData () {
         const length = this.temperatureData.length
@@ -1329,6 +1399,11 @@
           console.log('isHaveBushing===', isHaveBushing)
           if (productListSelected && select[2] === '鍏夌紗' && isHaveBushing === false) {
             this.$message.error('鍏夌紗娓╁害寰幆椤圭洰蹇呴』杩涜鍏夌氦閰嶇疆')
+
+            this.$refs.sampleTable.setCurrentRow(this.currentMethod, true)
+            this.rowClick(this.currentMethod)
+            this.sampleIds = [this.currentMethod.id]
+            this.openConfig()
             return
           }
           let sampleList = this.HaveJson(this.sampleList)
@@ -1343,7 +1418,7 @@
             }).catch(() => {})
           }else{
             let isRTS = this.totalArr.find(a => a.ask != null && this.symbolList.find(b=>a.ask.includes(b)) && a.state == 1)
-            if (isRTS) {
+            if (isRTS&&this.PROJECT=='妫�娴嬩腑蹇�') {
               this.editTable = this.handleData(sampleList,this.containsValue, 0)
               this.editTable.forEach(item => {
                 item.value = item.modelNum
@@ -1384,18 +1459,36 @@
                   })
                 }else if(type==1){
                   let arr = this.editTable.filter(b => b.sampleId == item.id)
-                  arr.forEach(f => {
-                    if(a.ask.includes(f.symbolItem)){
-                      let ask = calBack(a.ask, f.symbolItem,f.value)
-                      if (ask) {
-                        a.ask = ask
+                  for (var i=0;i<arr.length;i++){
+                    if(a.ask){
+                      if(a.ask.includes(arr[i].symbolItem)){
+                        let ask = calBack(a.ask, arr[i].symbolItem,arr[i].value)
+                        if (ask) {
+                          a.ask = ask
+                        }
+                        let tell = this.handleTell(a.tell, arr[i].symbolItem,arr[i].value)
+                        if (tell) {
+                          a.tell = tell
+                        }
                       }
-                      let tell = this.handleTell(a.tell, f.symbolItem,f.value)
-                      if (tell) {
-                        a.tell = tell
-                      }
+                    }else{
+                      this.$message.error('瑕佹眰鍊间负绌猴紝闇�瑕佸幓鏍囧噯搴撶淮鎶わ紒')
                     }
-                  })
+                  }
+                  // arr.forEach(f => {
+                  //   if(a.ask){
+                  //     if(a.ask.includes(f.symbolItem)){
+                  //       let ask = calBack(a.ask, f.symbolItem,f.value)
+                  //       if (ask) {
+                  //         a.ask = ask
+                  //       }
+                  //       let tell = this.handleTell(a.tell, f.symbolItem,f.value)
+                  //       if (tell) {
+                  //         a.tell = tell
+                  //       }
+                  //     }
+                  //   }else{}
+                  // })
                 }
               }
             })
@@ -2128,7 +2221,9 @@
       handleAll(e) {
         if (e.length > 0) {
           this.productList.map(m => {
-            m.state = 1
+            if(e.find(a=>a.id == m.id)){
+              m.state = 1
+            }
             return m
           })
         } else {

--
Gitblit v1.9.3