From d975fc4756806f5b51f006c19c33571b9b8c0b3b Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期五, 20 十二月 2024 09:30:19 +0800
Subject: [PATCH] 修改下单时要求值输入限制

---
 src/components/do/b1-ins-order/fiberoptic-config.vue |  643 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 601 insertions(+), 42 deletions(-)

diff --git a/src/components/do/b1-ins-order/fiberoptic-config.vue b/src/components/do/b1-ins-order/fiberoptic-config.vue
index 6ffdb00..d58d897 100644
--- a/src/components/do/b1-ins-order/fiberoptic-config.vue
+++ b/src/components/do/b1-ins-order/fiberoptic-config.vue
@@ -35,12 +35,12 @@
               </div>
               <div class="search-item" style="margin-right: 10px;">
                 <label style="width: 100px">姣忔牴绠℃娊妫�鏍囧噯閲�</label>
-                <el-input v-model="packageInfo.standNum" placeholder="璇疯緭鍏�" size="small" @blur="addStandNum" :disabled="active!=1" style="width:100px"></el-input>
+                <el-input v-model="packageInfo.standNum" placeholder="璇疯緭鍏�" size="small" @blur="addStandNum" :disabled="packageInfo.radio===0||active!=1" style="width:100px"></el-input>
               </div>
               <div class="search-item">
                 <label style="width: 100px">姣忔牴绠℃娊妫�妫�娴嬮噺</label>
                 <el-input v-model="packageInfo.testNum" placeholder="璇疯緭鍏�" size="small" @blur="addTestNum"
-                  :disabled="packageInfo.radio===0||active!=1" style="width:100px"></el-input>
+                  :disabled="packageInfo.radio===0||active!=1" style="width:70px"></el-input>
               </div>
             </div>
             <el-table ref="table0" :data="bushing" tooltip-effect="dark" style="width: 100%" height="203px" size="small"
@@ -95,8 +95,14 @@
               </el-table-column> -->
               <el-table-column prop="ask" label="妫�娴嬭姹�" show-overflow-tooltip width="200px">
                 <template slot-scope="scope">
-                  <el-input v-model="scope.row.ask" placeholder="璇疯緭鍏�" size="small" :disabled="active!=1" v-if="!isAskOnlyRead"></el-input>
+                  <el-input v-model="scope.row.ask" placeholder="璇疯緭鍏�" size="small" :disabled="active!=1" v-if="!isAskOnlyRead" @change="changeASk(scope.row,'ask')"></el-input>
                   <span v-else>{{ scope.row.ask }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column prop="tell" label="瑕佹眰鎻忚堪" show-overflow-tooltip width="150">
+                <template slot-scope="scope">
+                  <el-input v-model="scope.row.tell" placeholder="璇疯緭鍏�" size="small" :disabled="active!=1" v-if="!isAskOnlyRead" @change="changeASk(scope.row)"></el-input>
+                  <span v-else>{{ scope.row.tell }}</span>
                 </template>
               </el-table-column>
             </el-table>
@@ -104,7 +110,7 @@
         </el-col>
       </el-row>
       <el-row :gutter="10">
-        <el-col :span="12" v-if="packageInfo.ismiers">
+        <el-col :span="12" v-if="packageInfo.ismiers && inspectionItemST != 1">
           <div class="grid-content">
             <h5>鍏夌氦甯�
               <el-button size="mini" type="primary" class="btns" @click="addFibers"
@@ -152,8 +158,11 @@
               </div>
 
             </div>
-            <el-table ref="table2" :data="fibersList" tooltip-effect="dark" style="width: 100%" height="270px"
+            <!-- <el-table ref="table2" :data="fibersList" tooltip-effect="dark" style="width: 100%" height="270px"
               size="small" @selection-change="handleSelectionChange" highlight-current-row @row-click="(row, column, event)=>rowClickFiber(row, column, event,1)"
+              :header-cell-class-name="setClassName0"> -->
+              <el-table ref="table2" :data="fibersList" tooltip-effect="dark" style="width: 100%" height="270px"
+              size="small" @selection-change="handleSelectionChange" highlight-current-row
               :header-cell-class-name="setClassName0">
               <el-table-column
               type="selection"
@@ -183,7 +192,7 @@
             </el-table>
           </div>
         </el-col>
-        <el-col :span="!packageInfo.ismiers?24:12">
+        <el-col :span="!packageInfo.ismiers?24:12" v-if=" inspectionItemST != 1">
           <div class="grid-content">
             <h5>鍏夌氦
               <el-button size="mini" type="primary" class="btns" @click="addFiber"
@@ -227,9 +236,12 @@
                 </el-select>
               </div>
             </div>
-            <el-table ref="table3" :data="fiberList" tooltip-effect="dark" style="width: 100%" height="270px"
+            <!-- <el-table ref="table3" :data="fiberList" tooltip-effect="dark" style="width: 100%" height="270px"
               size="small" highlight-current-row @selection-change="handleSelectionChange4"
               @row-click="(row, column, event)=>rowClickFiber(row, column, event,0)"
+              :header-cell-class-name="setClassName0"> -->
+              <el-table ref="table3" :data="fiberList" tooltip-effect="dark" style="width: 100%" height="270px"
+              size="small" highlight-current-row @selection-change="handleSelectionChange4"
               :header-cell-class-name="setClassName0">
               <el-table-column
               type="selection"
@@ -353,6 +365,10 @@
         type: Number,
         default: () => 0
       },
+      inspectionItemST: {
+        type: Number,
+        default: () => 0
+      }
     },
     data() {
       return {
@@ -437,6 +453,7 @@
       // }
     },
     mounted() {
+      console.log('inspectionItemST',this.inspectionItemST);
       this.$parent.sampleIds.forEach(a => {
         for (var i = 0; i < this.$parent.sampleList.length; i++) {
           if (this.$parent.sampleList[i].id == a) {
@@ -506,7 +523,7 @@
         this.detectionSelect = val
         // 璧嬪�兼娴嬮」淇℃伅 鍏夌氦甯�
         if(this.detectionItems.type == 1) {
-          this.multiFiberList.forEach(item => {
+            this.multiFiberList.forEach(item => {
             this.fibersList.forEach(a => {
               if(a.ident == item.ident){
                 a.productList  =  []
@@ -514,8 +531,10 @@
               }
             })
           })
-
       }
+      console.log(this.fibersList);
+      
+
       if(this.detectionItems.type == 0) {
         // 璧嬪�兼娴嬮」淇℃伅 鍏夌氦
         this.selectFiberList.forEach(item => {
@@ -526,9 +545,9 @@
               }
             })
           })
-
           // 閫夋嫨鐨勬椂鍊欏氨灏唂iberList鐨勫�艰祴鍊肩粰瀵瑰簲鐨刦iberList
-          if(this.multiFiberList.length > 0) {
+          setTimeout(() => {
+            if(this.multiFiberList.length > 0) {
             this.multiFiberList.forEach(item => {
             this.fibersList.forEach(a => {
               if(a.ident == item.ident){
@@ -537,6 +556,7 @@
             })
           })
           }
+          },100)
         }
       },
       handleSelectionChange4(val){
@@ -544,6 +564,172 @@
         if(val != 0) {
           this.rowClickFiber(val[val.length-1],null,null,0)
         }
+      },
+
+      changeASk(row,type) {
+        if(type == 'ask') {
+          // 濡傛灉妫�娴嬭姹傚惈鏈夋璐熷彿
+          if(row.tell.indexOf('卤') != -1) {
+            let left = row.tell.substring(0,row.tell.indexOf('卤'))
+            let right = row.tell.substring(row.tell.indexOf('卤')+1)
+            // 濡傛灉鍙互杞寲涓烘暟鍊�
+           if(!isNaN(Number(left)) && !isNaN(Number(right))) {
+              if(row.ask.indexOf('-') != -1) {
+                  let left1 = row.ask.substring(0,row.ask.indexOf('-'))
+                  let right1 = row.ask.substring(row.ask.indexOf('-')+1)
+                  if(Number(left1) != (Number(left) - Number(right)) || Number(right1) != (Number(left) + Number(right))) {
+                    this.$message.error('妫�娴嬭姹備笉绗﹀悎瑕佹眰鎻忚堪')
+                    row.ask = (Number(left) - Number(right)) + '-' + (Number(left) + Number(right))
+                  }
+              }else {
+                this.$message.error('妫�娴嬭姹備笉绗﹀悎瑙勮寖')
+                row.ask = left + '-' + right
+                return
+              }
+           }
+           // 濡傛灉瑕佹眰鎻忚堪宸﹁竟涓嶈兘杞寲涓烘暟鍊�
+           else if(isNaN(Number(left)) && !isNaN(Number(right))) {
+            const regex = /[~-]/
+            const match = left.match(regex)
+            // 宸﹁竟鍚湁 - ~ 绗﹀彿
+            if(match) {
+              let newLeft = '';
+              if(left.includes('锛�')) {
+               newLeft = left.replace('锛�','(')
+              }
+              if(left.includes('锛�')) {
+                newLeft = newLeft.replace('锛�',')')
+              }
+              const regexTwo = /\((\d+(\.\d+)?)([~-])(\d+(\.\d+)?)\)/;
+              const matchTwo = newLeft.match(regexTwo);
+              let leftTwo = Number(matchTwo[1]) - Number(right)
+              let rightTwo = Number(matchTwo[4]) + Number(right)
+              console.log(matchTwo);
+              console.log(leftTwo,rightTwo);
+
+              console.log(row.ask.indexOf('-'));
+              if(row.ask.indexOf('-') != -1) {
+                  let left1 = row.ask.substring(0,row.ask.indexOf('-'))
+                  let right1 = row.ask.substring(row.ask.indexOf('-')+1)
+                  if(Number(left1) != leftTwo || Number(right1) != rightTwo) {
+                    this.$message.error('妫�娴嬭姹備笉绗﹀悎瑕佹眰鎻忚堪')
+                    row.ask = leftTwo + '-' + rightTwo
+                  }
+              }else {
+                this.$message.error('妫�娴嬭姹備笉绗﹀悎瑙勮寖')
+                row.ask = leftTwo + '-' + rightTwo
+                return
+              }
+            }
+           }
+          }
+          // 濡傛灉瑕佹眰鎻忚堪鍚湁鈮� < 鈮� > 绗﹀彿
+          const regex = /[鈮�<鈮�>]/
+          const match = row.tell.match(regex)
+          if(match) {
+            // 绗﹀彿涓嶄竴鑷�
+            if( row.ask.indexOf(match[0]) != 0) {
+                this.$message.error('妫�娴嬭姹備笉绗﹀悎瑕佹眰鎻忚堪')
+                return
+              }else {
+                // 绗﹀彿涓�鑷�
+              // 濡傛灉妫�娴嬭姹傚惈鏈夋璐熷彿 骞朵笖鍚湁&鍙� 鈮�0.69&鈮�0.76 瑕佹眰鎻忚堪
+              if(row.tell.indexOf('&') != -1) {
+                if(row.ask.indexOf('&') == -1) {
+                  this.$message.error('妫�娴嬭姹備笉绗﹀悎瑕佹眰鎻忚堪')
+                row.ask = row.tell
+                return
+                }else{
+                  let left = row.tell.substring(0,row.tell.indexOf('&'))
+                  let right = row.tell.substring(row.tell.indexOf('&')+1)
+
+                  let leftAsk = row.ask.substring(0,row.ask.indexOf('&'))
+                  let rightAsk = row.ask.substring(row.ask.indexOf('&')+1)
+                  if(leftAsk != left || rightAsk != right) {
+                    this.$message.error('妫�娴嬭姹備笉绗﹀悎瑕佹眰鎻忚堪')
+                  }
+                }
+              }else {
+                // 娌℃湁&鍙�
+              const regex = new RegExp(`${match[0]}(\\d+(\\.\\d+)?)`, 'g')
+                const matchTow = row.tell.match(regex);
+              let right =  Number(matchTow[0].split(match[0])[1])
+              let left = row.ask.substring(row.ask.indexOf(match[0])+1)
+              if(Number(left) != Number(right)) {
+                this.$message.error('妫�娴嬭姹備笉绗﹀悎瑕佹眰鎻忚堪')
+                row.ask = match[0] + right
+              }
+              }
+              
+              }
+              
+
+
+            }
+
+            
+
+
+
+
+
+            // 濡傛灉瑕佹眰鎻忚堪鍚湁鑼冨洿
+            const regexTwo = /[~-]/
+            const matchTwo = row.tell.match(regexTwo)
+            const matchAsk = row.ask.match(regexTwo)
+            if(matchTwo) {
+              let left = row.tell.substring(0,row.tell.indexOf(matchTwo[0]))
+              let right = row.tell.substring(row.tell.indexOf(matchTwo[0])+1)
+
+
+              if(!isNaN(Number(left)) && !isNaN(Number(right))) {
+                let leftAsk = row.ask.substring(0,row.ask.indexOf(matchAsk[0]))
+                let rightAsk = row.ask.substring(row.ask.indexOf(matchAsk[0])+1)
+                if(Number(leftAsk) != Number(left) || Number(rightAsk) != Number(right)) {
+                  this.$message.error('妫�娴嬭姹備笉绗﹀悎瑕佹眰鎻忚堪')
+                  row.ask = left + '-' + right
+                }
+              }
+            }
+          }
+
+        // 鍏堝嬀閫夌殑鎯呭喌涓�
+          this.detectionSelect.forEach(item => {
+            if(item.id == row.id) {
+              item.ask = row.ask
+              item.tell = row.tell
+              // 鍏夌氦 0  鍏夌氦甯� 1
+            if(item.isFibers == 0) {
+              this.selectFiberList.forEach(a => {
+                this.fiberList.forEach(b => {
+                  if(b.ident == a.ident){
+                    b.productList.forEach(item => {
+                      if(item.id == row.id) {
+                        item.ask = row.ask
+                        item.tell = row.tell
+                      }
+                    })
+                  }
+                })
+              })
+            }
+            if(item.isFibers == 1) {
+              this.multiFiberList.forEach(a => {
+                this.fibersList.forEach(b => {
+                  if(b.ident == a.ident){
+                    b.productList.forEach(item => {
+                      if(item.id == row.id) {
+                        item.ask = row.ask
+                        item.tell = row.tell
+                      }
+                    })
+                  }
+                })
+              })
+
+            }
+            }
+          })
       },
       outConfig() {
         this.$parent.configShow = false
@@ -572,6 +758,11 @@
       },
       // 濂楃鏍囧噯閲忚祴鍊�
       addStandNum() {
+        if(this.packageInfo.testNum > this.packageInfo.standNum) {
+          this.$message.error('妫�娴嬮噺涓嶈兘澶т簬鏍囧噯閲�')
+          this.packageInfo.testNum = this.packageInfo.standNum
+        }
+
         if(this.selectBushing.length > 0) {
           this.bushing.forEach(item => {
           this.selectBushing.forEach(a => {
@@ -603,24 +794,32 @@
         this.fiberList = []
         this.fibersList = []
         this.detectionItems = []
-
         // 椤甸潰鏄惁鍚湁鍏夌氦甯�
         if(this.packageInfo.ismiers) {
           // 鍏ㄦ
           if (this.packageInfo.radio == 0) {
+            if(this.packageInfo.standNum == null || this.packageInfo.standNum == '') {
+          this.$message.error('璇峰厛杈撳叆鏍囧噯閲�')
+          return
+        }
           // 鏍规嵁鏍囧噯閲忚祴鍊兼娴嬮噺
           if(parseInt(this.packageInfo.standNum) > 0 ) {
-            // 缁欏厜绾ゅ甫璧嬪��
             this.packageInfo.testNum = this.packageInfo.standNum
-            this.selectBushing = this.bushing
+            // 缁欏厜绾ゅ甫璧嬪��
+            this.bushing.forEach(item => {
+                item.testNum = this.packageInfo.testNum
+                item.standNum = this.packageInfo.standNum
+                this.$refs.table0.toggleRowSelection(item, true)
+              })
+
             this.addFibers()
             this.multiFiberList = this.fibersList
             // 榛樿鍕鹃��
             setTimeout(() => {
-              this.selectBushing.forEach(item =>{
-              let rowToSelect =  this.bushing.find(a => a.ident == item.ident)
-              this.$refs.table0.toggleRowSelection(rowToSelect, true)
-              })
+              // this.selectBushing.forEach(item =>{
+              // let rowToSelect =  this.bushing.find(a => a.ident == item.ident)
+              // this.$refs.table0.toggleRowSelection(rowToSelect, true)
+              // })
 
               this.multiFiberList.forEach(item =>{
               let rowToSelect =  this.fibersList.find(a => a.ident == item.ident)
@@ -631,15 +830,28 @@
       }
         }else {
           if(this.packageInfo.radio == 0) {
+            if(this.packageInfo.standNum == null || this.packageInfo.standNum == '') {
+          this.$message.error('璇峰厛杈撳叆鏍囧噯閲�')
+          return
+        }
             if(parseInt(this.packageInfo.standNum) > 0 ) {
-              this.packageInfo.testNum = this.packageInfo.standNum
+            this.packageInfo.testNum = this.packageInfo.standNum
+              this.bushing.forEach(item => {
+                item.testNum = this.packageInfo.testNum
+                item.standNum = this.packageInfo.standNum
+                this.$refs.table0.toggleRowSelection(item, true)
+              })
+              console.log(this.bushing);
               this.selectBushing = this.bushing
-              this.addFiber()
+              this.addFiber(1)
               // 榛樿鍕鹃��
             setTimeout(() => {
-              this.selectBushing.forEach(item =>{
-              let rowToSelect =  this.bushing.find(a => a.ident == item.ident)
-              this.$refs.table0.toggleRowSelection(rowToSelect, true)
+              // this.selectBushing.forEach(item =>{
+              // let rowToSelect =  this.bushing.find(a => a.ident == item.ident)
+              // this.$refs.table0.toggleRowSelection(rowToSelect, true)
+              // })
+              this.fiberList.forEach(item =>{
+                this.$refs.table3.toggleRowSelection(item, true)
               })
             }, 200)
             }
@@ -788,17 +1000,7 @@
             this.$message.error('璇烽�夋嫨鏁版嵁')
             return
           }
-          this.selectFiberList.forEach(item => {
-            this.fiberList.forEach(a => {
-              if(a.ident == item.ident){
-                a.model = this.mireModel.split(' - ')[1] // 鍏夌氦瑙勬牸
-                a.noSplitModel = this.mireModel // 鍏夌氦瑙勬牸
-                if(this.mireStandards != null) {
-                  a.standard = this.mireStandards.find(a => a.id == this.mireStandard).code  // 鍙傝�冩爣鍑�
-                }
-              }
-            })
-          })
+          
          if (val === null || val === '') return
          if(this.mireStandards == null ) return
         this.$axios.post(this.$api.standardTree.selectStandardProductList, {
@@ -819,6 +1021,18 @@
           this.detectionType = 0
            this.$set(this.detectionItems,'type',0)
           }
+          this.mireStandards.find(a => a.id == val).code == '濮旀墭瑕佹眰'?this.isAskOnlyRead = false:this.isAskOnlyRead = true
+          this.selectFiberList.forEach(item => {
+            this.fiberList.forEach(a => {
+              if(a.ident == item.ident){
+                a.model = this.mireModel.split(' - ')[1] // 鍏夌氦瑙勬牸
+                a.noSplitModel = this.mireModel // 鍏夌氦瑙勬牸
+                if(this.mireStandards != null) {
+                  a.standard = this.mireStandards.find(a => a.id == this.mireStandard).code  // 鍙傝�冩爣鍑�
+                }
+              }
+            })
+          })
 
         })
       },
@@ -868,6 +1082,8 @@
             this.detectionItems = res.data
             this.detectionType = 1
             this.$set(this.detectionItems,'type',1)
+            // 鍒ゆ柇鏄惁涓哄鎵樿姹�
+            this.miresStandards.find(a => a.id == val).code == '濮旀墭瑕佹眰'?this.isAskOnlyRead = false:this.isAskOnlyRead = true
           }
 
           // 缁欓�変腑鐨勫厜绾ゅ甫璧嬪��
@@ -887,7 +1103,7 @@
         }
       })
       },
-      addFiber() {
+      addFiber(isInspection) {
         // 鏈�鏂�
         let colors2 = []
         if (this.packageInfo.num1 / this.colors.length > 1) {
@@ -905,11 +1121,23 @@
           if(this.multiFiberList.length != 0){
           this.multiFiberList.forEach((a,index) => {
             a.fiber = []
-            for (var i = 0; i < parseInt(a.num); i++) {
+            console.log('****',a,index);
+
+            if(index > 0 && index < this.multiFiberList.length) {
+              if(this.multiFiberList[index].color == this.multiFiberList[index-1].color) {
+
+
+
+                console.log('****',this.multiFiberList[index-1].num);
+
+
+
+                for (var i = 0; i < parseInt(a.num); i++) {
               let fiber = {
                 ident: this.fiberList.length + 1,
                 bushColor: a.color,
-                color: colors2[(i+(parseInt(a.num)*index))>colors2.length?0:i+(parseInt(a.num)*index)*index].label,
+                // color: colors2[(i+(parseInt(a.num)*index))>colors2.length?0:i+(parseInt(a.num)*index)*index].label,
+                color: colors2[i+parseInt(this.multiFiberList[index-1].num)].label,
                 model: null,
                 noSplitModel: null,
                 standard: null,
@@ -917,6 +1145,38 @@
                 productList: []
               }
               this.fiberList.push(fiber)
+            }
+              }else {
+                for (var i = 0; i < parseInt(a.num); i++) {
+              let fiber = {
+                ident: this.fiberList.length + 1,
+                bushColor: a.color,
+                // color: colors2[(i+(parseInt(a.num)*index))>colors2.length?0:i+(parseInt(a.num)*index)*index].label,
+                color: colors2[i].label,
+                model: null,
+                noSplitModel: null,
+                standard: null,
+                fibersIdent: a.ident,
+                productList: []
+              }
+              this.fiberList.push(fiber)
+            }
+              }
+            }else{
+              for (var i = 0; i < parseInt(a.num); i++) {
+              let fiber = {
+                ident: this.fiberList.length + 1,
+                bushColor: a.color,
+                // color: colors2[(i+(parseInt(a.num)*index))>colors2.length?0:i+(parseInt(a.num)*index)*index].label,
+                color: colors2[i].label,
+                model: null,
+                noSplitModel: null,
+                standard: null,
+                fibersIdent: a.ident,
+                productList: []
+              }
+              this.fiberList.push(fiber)
+            }
             }
           })
         } else {
@@ -953,7 +1213,22 @@
         // 鏍规嵁濂楃鐨勬祴璇曢噺鐢熸垚瀵瑰簲鐨勬暟閲忕殑鍏夌氦鏁版嵁
         this.selectBushing.forEach((item,index) =>{
           if(item.testNum != null && item.testNum != ''){
-            for(let i =0; i < parseInt(item.testNum); i++){
+
+            // 鍏ㄦ
+            if(isInspection == 1) { 
+              for(let i =0; i < parseInt(item.testNum); i++){
+              let fiber = {
+                ident: this.fiberList.length + 1,
+                bushColor: item.color,
+                color: colors2[i].label,
+                model:  null,
+                standard: null,
+                productList: []
+              }
+              this.fiberList.push(fiber)
+            }
+            }else {
+              for(let i =0; i < parseInt(item.testNum); i++){
               let fiber = {
                 ident: this.fiberList.length + 1,
                 bushColor: item.color,
@@ -963,6 +1238,7 @@
                 productList: []
               }
               this.fiberList.push(fiber)
+            }
             }
           }else {
             flag = false
@@ -1181,6 +1457,21 @@
           // 灏嗚幏鍙栫殑妫�娴嬮」淇℃伅璧嬪��
           this.detectionItems = []
           if(res.data != null && res.data.length != 0){
+            res.data.forEach(a => {
+              this.$set(a,'isFibers',1)
+            })
+            // 鍒ゆ柇鏄惁涓哄鎵樿姹�
+            this.miresStandards.find(a => a.id == this.miresStandard).code == '濮旀墭瑕佹眰'?this.isAskOnlyRead = false:this.isAskOnlyRead = true
+            if(!this.isAskOnlyRead){
+              row.productList.forEach(a => {
+                res.data.forEach(b => {
+                  if(a.id == b.id){
+                    b.ask = a.ask
+                    b.tell = a.tell
+                  }
+                })
+              })
+            }
             this.detectionItems = res.data
             this.detectionType = 1
             this.$set(this.detectionItems,'type',1)
@@ -1197,7 +1488,7 @@
             }
           }
         })
-        },1000)
+        },500)
       }else if(type == 0) {
         if((row.noSplitModel == null || row.noSplitModel == '') && (row.standard == null || row.standard == '')){
             this.detectionItems = []
@@ -1224,10 +1515,24 @@
           if(res.data != null && res.data.length != 0){
            res.data.forEach(a => {
             a.state = 0
+            this.$set(a,'isFibers',0)
           })
+          // 鍒ゆ柇鏄惁涓哄鎵樿姹�
+          this.mireStandards.find(a => a.id == this.mireStandard).code == '濮旀墭瑕佹眰'?this.isAskOnlyRead = false:this.isAskOnlyRead = true
+          if(!this.isAskOnlyRead){
+            row.productList.forEach(a => {
+              res.data.forEach(b => {
+                if(a.id == b.id){
+                  b.ask = a.ask
+                  b.tell = a.tell
+                }
+              })
+            })
+          }
           this.detectionItems = res.data
           this.detectionType = 0
           this.$set(this.detectionItems,'type',0)
+          
 
           if (row.productList != null && row.productList.length > 0) {
             let product =  JSON.parse(JSON.stringify(row.productList))
@@ -1242,7 +1547,7 @@
             }
           }
         })
-        },1000);
+        },500);
       }
     },
       toggleSelection(row) {
@@ -1452,7 +1757,254 @@
         // })
         // this.$message.success('宸蹭繚瀛�')
         // this.$emit('saveFiberopticConfig')
+        if(this.inspectionItemST == 1) {
+          console.log('this.bushing',this.bushing);
+          this.$message.success('宸蹭繚瀛�')
+          this.sample.forEach(a=>{
+          a.bushing = this.bushing
+        })
+        this.$emit('saveFiberopticConfig')
+        return
+        }
 
+        let flag = true
+        let flags = true
+
+        // 鍏夌氦妫�娴嬮」淇℃伅鏍¢獙
+        this.fiberList.forEach(item=>{
+          if(item.productList.length > 0){
+            item.productList.forEach(row=>{
+              
+              // 濡傛灉妫�娴嬭姹傚惈鏈夋璐熷彿
+          if(row.tell.indexOf('卤') != -1) {
+            let left = row.tell.substring(0,row.tell.indexOf('卤'))
+            let right = row.tell.substring(row.tell.indexOf('卤')+1)
+            // 濡傛灉鍙互杞寲涓烘暟鍊�
+           if(!isNaN(Number(left)) && !isNaN(Number(right))) {
+              if(row.ask.indexOf('-') != -1) {
+                  let left1 = row.ask.substring(0,row.ask.indexOf('-'))
+                  let right1 = row.ask.substring(row.ask.indexOf('-')+1)
+                  if(Number(left1) != (Number(left) - Number(right)) || Number(right1) != (Number(left) + Number(right))) {
+                    // this.$message.error('11111')
+                    flag = false
+                  }
+              }else {
+                // this.$message.error('2222')
+                flag = false
+                return
+              }
+           }
+           // 濡傛灉瑕佹眰鎻忚堪宸﹁竟涓嶈兘杞寲涓烘暟鍊�
+           else if(isNaN(Number(left)) && !isNaN(Number(right))) {
+            const regex = /[~-]/
+            const match = left.match(regex)
+            // 宸﹁竟鍚湁 - ~ 绗﹀彿
+            if(match) {
+              let newLeft = '';
+              if(left.includes('锛�')) {
+               newLeft = left.replace('锛�','(')
+              }
+              if(left.includes('锛�')) {
+                newLeft = newLeft.replace('锛�',')')
+              }
+              const regexTwo = /\((\d+(\.\d+)?)([~-])(\d+(\.\d+)?)\)/;
+              const matchTwo = newLeft.match(regexTwo);
+              let leftTwo = Number(matchTwo[1]) - Number(right)
+              let rightTwo = Number(matchTwo[4]) + Number(right)
+              if(row.ask.indexOf('-') != -1) {
+                  let left1 = row.ask.substring(0,row.ask.indexOf('-'))
+                  let right1 = row.ask.substring(row.ask.indexOf('-')+1)
+                  if(Number(left1) != leftTwo || Number(right1) != rightTwo) {
+                    // this.$message.error('33333')
+                    flag = false
+                  }
+              }else {
+                // this.$message.error('44444')
+                flag = false
+                return
+              }
+            }
+           }
+          }
+          // 濡傛灉妫�娴嬭姹傚惈鏈夆墹 < 鈮� > 绗﹀彿
+          const regex = /[鈮�<鈮�>]/
+          const match = row.tell.match(regex)
+          if(match) {
+            // 绗﹀彿涓嶄竴鑷�
+            if( row.ask.indexOf(match[0]) != 0) {
+                // this.$message.error('555555')
+                flag = false
+                return
+              }else {
+                // 绗﹀彿涓�鑷�
+
+                // 濡傛灉妫�娴嬭姹傚惈鏈夋璐熷彿 骞朵笖鍚湁&鍙� 鈮�0.69&鈮�0.76 瑕佹眰鎻忚堪
+              if(row.tell.indexOf('&') != -1) {
+                console.log(11111);
+                if(row.ask.indexOf('&') == -1) {
+                  this.$message.error('妫�娴嬭姹備笉绗﹀悎瑕佹眰鎻忚堪')
+                row.ask = row.tell
+                return
+                }else{
+                  let left = row.tell.substring(0,row.tell.indexOf('&'))
+                  let right = row.tell.substring(row.tell.indexOf('&')+1)
+
+                  let leftAsk = row.ask.substring(0,row.ask.indexOf('&'))
+                  let rightAsk = row.ask.substring(row.ask.indexOf('&')+1)
+                  console.log('&',left,right,leftAsk,rightAsk);
+                  if(leftAsk != left || rightAsk != right) {
+                    flag = false
+                  }
+                }
+              }else{
+                const regex = new RegExp(`${match[0]}(\\d+(\\.\\d+)?)`, 'g')
+                const matchTow = row.tell.match(regex);
+                console.log('matchTow',matchTow);
+              let right =  Number(matchTow[0].split(match[0])[1])
+              let left = row.ask.substring(row.ask.indexOf(match[0])+1)
+              if(Number(left) != Number(right)) {
+                // this.$message.error('666666')
+                flag = false
+              }
+              }
+              }
+            }
+            // 濡傛灉瑕佹眰鎻忚堪鍚湁鑼冨洿
+            const regexTwo = /[~-]/
+            const matchTwo = row.tell.match(regexTwo)
+            const matchAsk = row.ask.match(regexTwo)
+            if(matchTwo) {
+              let left = row.tell.substring(0,row.tell.indexOf(matchTwo[0]))
+              let right = row.tell.substring(row.tell.indexOf(matchTwo[0])+1)
+              if(!isNaN(Number(left)) && !isNaN(Number(right))) {
+                let leftAsk = row.ask.substring(0,row.ask.indexOf(matchAsk[0]))
+                let rightAsk = row.ask.substring(row.ask.indexOf(matchAsk[0])+1)
+                if(Number(leftAsk) != Number(left) || Number(rightAsk) != Number(right)) {
+                  // this.$message.error('777777')
+                  flag = false
+                }
+              }
+            }
+            })
+          }
+        })
+
+        // 鍏夌氦甯︽娴嬮」淇℃伅鏍¢獙
+        this.fibersList.forEach(item=>{
+          if(item.productList.length > 0){
+            item.productList.forEach(row=>{
+              
+              // 濡傛灉妫�娴嬭姹傚惈鏈夋璐熷彿
+          if(row.tell.indexOf('卤') != -1) {
+            let left = row.tell.substring(0,row.tell.indexOf('卤'))
+            let right = row.tell.substring(row.tell.indexOf('卤')+1)
+            // 濡傛灉鍙互杞寲涓烘暟鍊�
+           if(!isNaN(Number(left)) && !isNaN(Number(right))) {
+              if(row.ask.indexOf('-') != -1) {
+                  let left1 = row.ask.substring(0,row.ask.indexOf('-'))
+                  let right1 = row.ask.substring(row.ask.indexOf('-')+1)
+                  if(Number(left1) != (Number(left) - Number(right)) || Number(right1) != (Number(left) + Number(right))) {
+                    // this.$message.error('11111')
+                    flags = false
+                  }
+              }else {
+                // this.$message.error('2222')
+                flags = false
+                return
+              }
+           }
+           // 濡傛灉瑕佹眰鎻忚堪宸﹁竟涓嶈兘杞寲涓烘暟鍊�
+           else if(isNaN(Number(left)) && !isNaN(Number(right))) {
+            const regex = /[~-]/
+            const match = left.match(regex)
+            // 宸﹁竟鍚湁 - ~ 绗﹀彿
+            if(match) {
+              let newLeft = '';
+              if(left.includes('锛�')) {
+               newLeft = left.replace('锛�','(')
+              }
+              if(left.includes('锛�')) {
+                newLeft = newLeft.replace('锛�',')')
+              }
+              const regexTwo = /\((\d+(\.\d+)?)([~-])(\d+(\.\d+)?)\)/;
+              const matchTwo = newLeft.match(regexTwo);
+              let leftTwo = Number(matchTwo[1]) - Number(right)
+              let rightTwo = Number(matchTwo[4]) + Number(right)
+              if(row.ask.indexOf('-') != -1) {
+                  let left1 = row.ask.substring(0,row.ask.indexOf('-'))
+                  let right1 = row.ask.substring(row.ask.indexOf('-')+1)
+                  if(Number(left1) != leftTwo || Number(right1) != rightTwo) {
+                    // this.$message.error('33333')
+                    flags = false
+                  }
+              }else {
+                // this.$message.error('44444')
+                flags = false
+                return
+              }
+            }
+           }
+          }
+          // 濡傛灉妫�娴嬭姹傚惈鏈夆墹 < 鈮� > 绗﹀彿
+          const regex = /[鈮�<鈮�>]/
+          const match = row.tell.match(regex)
+          if(match) {
+            // 绗﹀彿涓嶄竴鑷�
+            if( row.ask.indexOf(match[0]) != 0) {
+                // this.$message.error('555555')
+                flags = false
+                return
+              }else {
+                // 绗﹀彿涓�鑷�
+                if(row.tell.indexOf('&') != -1) {
+                console.log(11111);
+                if(row.ask.indexOf('&') == -1) {
+                  this.$message.error('妫�娴嬭姹備笉绗﹀悎瑕佹眰鎻忚堪')
+                row.ask = row.tell
+                return
+                }else{
+                  let left = row.tell.substring(0,row.tell.indexOf('&'))
+                  let right = row.tell.substring(row.tell.indexOf('&')+1)
+
+                  let leftAsk = row.ask.substring(0,row.ask.indexOf('&'))
+                  let rightAsk = row.ask.substring(row.ask.indexOf('&')+1)
+                  console.log('&',left,right,leftAsk,rightAsk);
+                  if(leftAsk != left || rightAsk != right) {
+                    flags = false
+                  }
+                }
+              }else {
+                const regex = new RegExp(`${match[0]}(\\d+(\\.\\d+)?)`, 'g')
+                const matchTow = row.tell.match(regex);
+              let right =  Number(matchTow[0].split(match[0])[1])
+              let left = row.ask.substring(row.ask.indexOf(match[0])+1)
+              if(Number(left) != Number(right)) {
+                // this.$message.error('666666')
+                flags = false
+              }
+              }
+                
+              }
+            }
+            // 濡傛灉瑕佹眰鎻忚堪鍚湁鑼冨洿
+            const regexTwo = /[~-]/
+            const matchTwo = row.tell.match(regexTwo)
+            const matchAsk = row.ask.match(regexTwo)
+            if(matchTwo) {
+              let left = row.tell.substring(0,row.tell.indexOf(matchTwo[0]))
+              let right = row.tell.substring(row.tell.indexOf(matchTwo[0])+1)
+              if(!isNaN(Number(left)) && !isNaN(Number(right))) {
+                let leftAsk = row.ask.substring(0,row.ask.indexOf(matchAsk[0]))
+                let rightAsk = row.ask.substring(row.ask.indexOf(matchAsk[0])+1)
+                if(Number(leftAsk) != Number(left) || Number(rightAsk) != Number(right)) {
+                  // this.$message.error('777777')
+                  flags = false
+                }
+              }
+            }
+            })
+          }
+        })
         if(this.bushing.length === 0){
           this.$message.error('缂哄皯濂楃鏃犳硶淇濆瓨')
           return
@@ -1471,11 +2023,18 @@
             item.fiber = this.fiberList // 鍏夌氦
           }
         })
-        this.sample.forEach(a=>{
+        
+        if(flag && flags) {
+          this.$message.success('宸蹭繚瀛�')
+          this.sample.forEach(a=>{
           a.bushing = this.bushing
         })
-        this.$message.success('宸蹭繚瀛�')
         this.$emit('saveFiberopticConfig')
+        }else if(!flag) {
+          this.$message.error('鍏夌氦淇濆瓨鐨勬娴嬮」涓惈鏈変笉绗﹀悎瑕佹眰鐨勬暟鎹�')
+        }else if(!flags) {
+          this.$message.error('鍏夌氦甯︿繚瀛樼殑妫�娴嬮」涓惈鏈変笉绗﹀悎瑕佹眰鐨勬暟鎹�')
+        }
       },
       beforeClose(done){
         if (this.bsm1) {

--
Gitblit v1.9.3