licp
2024-12-20 d975fc4756806f5b51f006c19c33571b9b8c0b3b
src/components/do/b1-ins-order/fiberoptic-config.vue
@@ -110,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"
@@ -192,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"
@@ -365,6 +365,10 @@
        type: Number,
        default: () => 0
      },
      inspectionItemST: {
        type: Number,
        default: () => 0
      }
    },
    data() {
      return {
@@ -449,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) {
@@ -618,18 +623,35 @@
            }
           }
          }
          // 如果检测要求含有≤ < ≥ > 符号
          // 如果要求描述含有≤ < ≥ > 符号
          const regex = /[≤<≥>]/
          const match = row.tell.match(regex)
          if(match) {
            // 符号不一致
            if( row.ask.indexOf(match[0]) != 0) {
                this.$message.error('检测要求不符合要求描述')
                row.ask = match[0]
                return
              }else {
                // 符号一致
                const regex = new RegExp(`${match[0]}(\\d+(\\.\\d+)?)`, 'g')
              // 如果检测要求含有正负号 并且含有&号 ≥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)
@@ -638,7 +660,19 @@
                row.ask = match[0] + right
              }
              }
              }
            }
            // 如果要求描述含有范围
            const regexTwo = /[~-]/
            const matchTwo = row.tell.match(regexTwo)
@@ -809,14 +843,13 @@
              })
              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.fiberList.forEach(item =>{
                this.$refs.table3.toggleRowSelection(item, true)
              })
@@ -1070,7 +1103,7 @@
        }
      })
      },
      addFiber() {
      addFiber(isInspection) {
        // 最新
        let colors2 = []
        if (this.packageInfo.num1 / this.colors.length > 1) {
@@ -1088,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,
@@ -1100,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 {
@@ -1136,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,
@@ -1146,6 +1238,7 @@
                productList: []
              }
              this.fiberList.push(fiber)
            }
            }
          }else {
            flag = false
@@ -1664,8 +1757,15 @@
        // })
        // 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
@@ -1737,13 +1837,35 @@
                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
              }
              }
              }
            }
@@ -1834,6 +1956,24 @@
                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])
@@ -1842,6 +1982,8 @@
                // this.$message.error('666666')
                flags = false
              }
              }
              }
            }
            // 如果要求描述含有范围
@@ -1863,10 +2005,6 @@
            })
          }
        })
        if(this.bushing.length === 0){
          this.$message.error('缺少套管无法保存')
          return
@@ -1885,11 +2023,12 @@
            item.fiber = this.fiberList // 光纤
          }
        })
        this.sample.forEach(a=>{
          a.bushing = this.bushing
        })
        if(flag && flags) {
          this.$message.success('已保存')
          this.sample.forEach(a=>{
          a.bushing = this.bushing
        })
        this.$emit('saveFiberopticConfig')
        }else if(!flag) {
          this.$message.error('光纤保存的检测项中含有不符合要求的数据')