zss
2024-08-08 07ea6a242b16b7ad61602915698a9852cc894246
Merge remote-tracking branch 'origin/master'

# Conflicts:
# src/components/do/b1-ins-order/add.vue
# src/components/do/b1-inspect-order-plan/Inspection.vue
# src/components/view/b1-inspect-order-plan.vue
已修改6个文件
已删除1个文件
已添加1个文件
2615 ■■■■■ 文件已修改
.nvmdrc 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/do/b1-ins-order/add.vue 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/do/b1-ins-order/fiberoptic-config-two.vue 1585 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/do/b1-ins-order/fiberoptic-config.vue 869 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/do/b1-inspect-order-plan/Inspection.vue 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/b1-inspect-order-plan.vue 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/b1-inspection-order.vue 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/enter.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.nvmdrc
ÎļþÒÑɾ³ý
src/components/do/b1-ins-order/add.vue
@@ -906,6 +906,7 @@
<script>
import ValueTable from '../../tool/value-table.vue'
import fiberOpticConfig from './fiberoptic-config.vue'
import fiberOpticConfigTwo from './fiberoptic-config-two.vue'
import equipConfig from './equip-config.vue'
import cableConfig from './cable-config.vue'
import Vue from 'vue'
@@ -915,10 +916,15 @@
    components: {
      ValueTable,
      fiberOpticConfig,
      fiberOpticConfigTwo,
      equipConfig,
      cableConfig
    },
    props: {
      examine: {
        type: Number,
        default: () => 0
      },
      active: {
        type: Number,
        default: () => 0
@@ -1585,24 +1591,18 @@
              }
              return true
          })
          /* //校验检验项的要求值和要求描述
          const isTrue = this.checkRequiredValueAndRemark(filterProductList)
          if(!isTrue){
            this.$message.error('检验项的要求值与要求描述不匹配, è¯·æ£€æŸ¥')
            return
          } */
           //校验检验项的要求值和要求描述,仅委托要求
          if(this.isAskOnlyRead){
          //校验检验项的要求值和要求描述,仅委托要求
          if(this.active==1&&this.isAskOnlyRead){
            const isTrue = this.checkRequiredValueAndRemark(filterProductList)
              if(!isTrue){
                this.$message.error('检验项的要求值与要求描述不匹配, è¯·æ£€æŸ¥')
                return
              }
            if(!isTrue){
              this.$message.error('检验项的要求值与要求描述不匹配, è¯·æ£€æŸ¥')
              return
            }
          }
          console.log('isHaveBushing===', this.totalArr)
          // inspectionItem
          let spcialItem = this.totalArr.find(a => a.state == 1 && a.inspectionItem.includes('松套管'))
          let spcialItem = null//this.totalArr.find(a => a.state == 1 && a.inspectionItem.includes('松套管'))
          // console.log('isHaveBushing===', isHaveBushing)
          if (productListSelected && select[2] === '光缆' && isHaveBushing === false) {
            this.$message.error('光缆温度循环项目必须进行光纤配置')
@@ -1643,56 +1643,12 @@
          }
        }
      },
      /* checkRequiredValueAndRemark(data){
        let isTrue = true
        try{
          data.forEach(ele=>{
            if(['≤','≥','>','<','='].includes(ele.ask[0])){
              const askVal = ele.ask.substring(1,ele.ask.length)
              if(isNaN(askVal) || ele.tell.indexOf(askVal)<0){
                isTrue = false
              }
            }
            if(ele.ask.indexOf('-')>0 && ele.ask.length>1){
              let tell = ele.tell
              if(ele.tell.indexOf('~')>0){
                tell = ele.tell.replace('~','-')
              }
              const splits = ele.ask.split('-')
              if(splits.length==2 && !isNaN(splits[0]) && !isNaN(splits[1])){
                let min = Math.min(...splits)
                let max = Math.max(...splits)
                if(ele.tell.indexOf('±')<0&&tell.indexOf(ele.ask)<0){
                  isTrue = false
                }else if(ele.tell.indexOf('±')>0&&ele.tell!=ele.ask){
                  let splitNums = ele.tell.split('±')
                  if(splitNums.length<2){
                    isTrue = false
                  }else{
                    let minTell = Number(splitNums[0])-Number(splitNums[1])
                    let maxTell = Number(splitNums[0])+Number(splitNums[1])
                    if(minTell!=min || maxTell!=max){
                      isTrue = false
                    }
                  }
                }
              }else{
                isTrue = false
              }
            }
          })
        }catch(error){
          console.log(error);
          isTrue = false
        }
        return isTrue
      }, */
      /**
  Â  Â  Â * æ ¡éªŒå§”托要求的检验项的要求描述和要求值
  Â  Â  Â *
  Â  Â  Â */
       * æ ¡éªŒå§”托要求的检验项的要求描述和要求值
       *
       */
      checkRequiredValueAndRemark(data){
          let isTrue = true
        let isTrue = true
        try{
          data.forEach(ele=>{
            //判断(≤,≥,>,<,=)这几种情况
@@ -1705,7 +1661,7 @@
            }
            //判断范围(10-25),要求值必须是-
            if(ele.ask.indexOf('-')>0 && ele.ask.length>1){
            //要求描述的~和要求值的-,等效
              //要求描述的~和要求值的-,等效
              let tell = ele.tell
              if(ele.tell.indexOf('~')>0){
                tell = ele.tell.replace('~','-')
@@ -1713,12 +1669,31 @@
              const splits = ele.ask.split('-')
              //满足格式要求,并且两个都是数字
              if(splits.length==2 && !isNaN(splits[0]) && !isNaN(splits[1])){
              let min = Math.min(...splits)
              let max = Math.max(...splits)
              //判断±的情况
                if(ele.tell.indexOf('±')<0&&tell.indexOf(ele.ask)<0){
                /**
                 * åˆ¤æ–­æƒ…况
                 * 1.要求描述与要求描述相同
                 * 2.要求描述包含要求值
                 * 3.要求描述为3N-10N这种情况
                 * 4.要求描述为10±5这种情况
                 * 5.
                 */
                 let min = Math.min(...splits)
                 let max = Math.max(...splits)
                 if(min==max){
                  isTrue = false
                }else if(ele.tell.indexOf('±')>0&&ele.tell!=ele.ask){
                 }
                //要求描述中不包含±以及区间的数字,则返回false
                if((tell.indexOf('±')<0&&tell.indexOf('-')<0)){
                  isTrue = false
                }else if(ele.tell.indexOf('-')==0){
                  isTrue = false
                }else if(tell.indexOf('-')>0){
                  const splitTells = tell.split('-')
                  if(splitTells[0].indexOf(min)<0 || splitTells[1].indexOf(max)<0){
                    isTrue = false
                  }
                }else if(tell.indexOf('±')>0&&tell!=ele.ask){
                  //校验要求描述为10±5这种写法的情况
                  let splitNums = ele.tell.split('±')
                  if(splitNums.length<2){
                    isTrue = false
@@ -1741,7 +1716,6 @@
        }
        return isTrue
      },
      save0(){
        if(this.editTable.every(m=>m.value)){
          let sampleList = this.handleData(this.HaveJson(this.sampleList),this.handleAsk,1)
src/components/do/b1-ins-order/fiberoptic-config-two.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,1585 @@
<template>
  <div class="ins_order_config">
    <div>
      <el-row class="title">
        <el-col :span="6" style="padding-left: 20px;text-align: left;">光纤配置</el-col>
        <el-col :span="18" style="text-align: right;">
          <!-- <el-button size="medium" type="primary" @click="save" :loading="saveLoad" v-if="active==1">保 å­˜</el-button> -->
          <el-button size="medium" @click="outConfig">
            <span style="color: #3A7BFA;">返 å›ž</span>
          </el-button>
        </el-col>
      </el-row>
    </div>
    <div class="center">
      <el-row :gutter="10" style="margin-bottom: 10px;">
        <el-col :span="9">
          <div class="grid-content">
            <h5>套管</h5>
            <div
              style="display: flex;align-items: center;justify-content: space-between;padding: 0 12px;box-sizing: border-box;">
              <div class="search-item">
                <label style="width: 70px;">样品型号</label>
                <span style="font-size: 14px;">{{models}}</span>
              </div>
              <el-radio-group v-model="packageInfo.radio" size="small" @change="isInspection()" :disabled="active!=1">
                <el-radio :label="0">全检</el-radio>
                <el-radio :label="1">抽检</el-radio>
              </el-radio-group>
            </div>
            <div
              style="display: flex;align-items: center;justify-content: space-between;margin-bottom: 8px;padding: 0 12px;box-sizing: border-box;">
              <div class="search-item" style="margin-right: 10px;">
                <label>套管数目</label>
                <el-input v-model="packageInfo.num1" placeholder="请输入" size="small" @blur="addBushing" :disabled="active!=1"></el-input>
              </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>
              </div>
              <div class="search-item">
                <label style="width: 100px">每根管抽检检测量</label>
                <el-input v-model="packageInfo.testNum" placeholder="请输入" size="small" @blur="addTestNum"
                style="width:100px"
                  :disabled="packageInfo.radio===0||active!=1"></el-input>
              </div>
            </div>
            <el-table ref="table0" :data="bushing" tooltip-effect="dark" style="width: 100%" height="203px" size="small"
              @selection-change="handleSelectionChange1"
              :header-cell-class-name="setClassName0">
              <!-- <el-table-column
              type="selection"
              width="45"
              :selectable="()=>(active==1)">
              </el-table-column> -->
              <el-table-column label="管色标" show-overflow-tooltip>
                <template slot-scope="scope">
                  <el-select v-model="scope.row.color" size="mini" :disabled="active!=1" allow-create filterable >
                    <el-option v-for="(color,i) in colors" :key="i" :label="color.lable"
                      :value="color.value"></el-option>
                  </el-select>
                </template>
              </el-table-column>
              <el-table-column prop="standNum" label="标量" show-overflow-tooltip align="center">
              </el-table-column>
              <el-table-column prop="testNum" label="测试量" show-overflow-tooltip align="center">
              </el-table-column>
            </el-table>
          </div>
        </el-col>
        <el-col :span="15">
          <div class="grid-content">
            <h5>检测项信息</h5>
            <el-table ref="productTable" :data="detectionItems" tooltip-effect="dark" style="width: 100%"
            :row-class-name="tableRowClassName"
            :header-cell-class-name="setClassName"
            height="283px"
              size="small" @selection-change="handleSelectionChange2"
              @select-all="handleAll"
              @select="upProductSelect"
              >
              <!-- <el-table-column type="selection" width="55"
              :selectable="()=>((currentDetectionItems||this.selectFiberList.length > 0 || this.multiFiberList.length > 0)&&active==1)">
              </el-table-column> -->
              <el-table-column label="实验室" show-overflow-tooltip prop="sonLaboratory" ></el-table-column>
              <el-table-column prop="inspectionItem" label="检验项" show-overflow-tooltip>
              </el-table-column>
              <el-table-column prop="inspectionItemSubclass" label="检验项子项" show-overflow-tooltip width="100px">
              </el-table-column>
              <el-table-column prop="methodS" label="试验方法" min-width="90" show-overflow-tooltip>
              </el-table-column>
              <el-table-column prop="price" label="单价" width="70" show-overflow-tooltip>
              </el-table-column>
              <el-table-column prop="unit" label="单位" width="70" show-overflow-tooltip>
              </el-table-column>
              <!-- <el-table-column prop="manDay" label="预计时间" width="90" show-overflow-tooltip>
              </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>
                  <span v-else>{{ scope.row.ask }}</span>
                </template>
              </el-table-column>
            </el-table>
          </div>
        </el-col>
      </el-row>
      <el-row :gutter="10">
        <el-col :span="12" v-if="packageInfo.ismiers">
          <div class="grid-content">
            <h5>光纤带
              <el-button size="mini" type="primary" class="btns" @click="addFibers"
                 v-if="active==1">生成光纤带</el-button>
              <!-- <el-button size="mini" class="btns" @click="clearFibers" :disabled="selectBushing.length === 0" v-if="active==1">清除</el-button> -->
            </h5>
            <div
              style="display: flex;align-items: center;justify-content: space-between;margin:4px 0 6px 0;padding: 0 12px;box-sizing: border-box;">
              <!-- <div class="search-item" style="width: 50%;margin-right: 16px;">
                <label style="width: 80px;">纤带类型</label>
                <el-select v-model="miresModel" placeholder="请选择" size="small" style="width: 100%;"
                  :disabled="selectBushing.length===0||active!=1"
                  >
                  <el-option v-for="(item,a) in miresModels" :key="a" :label="item.label" :value="item.value">
                  </el-option>
                </el-select>
              </div> -->
              <!-- <div class="search-item" style="width: 50%;">
                <label style="width: 80px;">参考标准</label>
                <el-select v-model="miresStandard" placeholder="请选择" size="small" style="width: 100%;"
                  :disabled="miresModel===null||active!=1" @focus="selectsStandardMethodByFLSSM2()"
                  @change="(value)=>methodChange2(value)">
                  <el-option v-for="item in miresStandards" :key="item.id" :label="item.code" :value="item.id">
                  </el-option>
                </el-select>
              </div> -->
              <div class="search-item" style="width: 50%;margin-right: 16px;">
                <label style="width: 80px;">纤带类型</label>
                <el-select v-model="miresModel" placeholder="请选择" size="small" style="width: 100%;"
                  :disabled="selectBushing.length===0||active!=1"
                  >
                  <el-option v-for="(item,a) in miresModels" :key="a" :label="item.label" :value="item.value">
                  </el-option>
                </el-select>
              </div>
              <div class="search-item" style="width: 50%;">
                <label style="width: 80px;">参考标准</label>
                <el-select v-model="miresStandard" placeholder="请选择" size="small" style="width: 100%;"
                :disabled="miresModel===null||active!=1"
                 @focus="selectsStandardMethodByFLSSM2()"
                  @change="(value)=>methodChange2(value)">
                  <el-option v-for="item in miresStandards" :key="item.id" :label="item.code" :value="item.id">
                  </el-option>
                </el-select>
              </div>
            </div>
            <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-column
              type="selection"
              width="55"
              :selectable="()=>(active==1)">
              </el-table-column> -->
              <el-table-column prop="code" label="光纤带编号" show-overflow-tooltip align="center">
                <template slot-scope="scope">
                  <el-input v-model="scope.row.code" placeholder="请输入" size="mini" ></el-input>
                </template>
              </el-table-column>
              <el-table-column prop="model" label="光纤带规格" show-overflow-tooltip align="center">
                <template slot-scope="scope">
                  <el-input v-model="scope.row.model" placeholder="请输入" size="mini" ></el-input>
                </template>
              </el-table-column>
              <el-table-column prop="standard" label="参考标准" show-overflow-tooltip align="center">
                <template slot-scope="scope">
                  <el-input v-model="scope.row.standard" placeholder="请输入" size="mini" ></el-input>
                </template>
              </el-table-column>
              <el-table-column prop="num" label="光纤检测量" show-overflow-tooltip align="center">
                <template slot-scope="scope">
                  <el-input v-model="scope.row.num" placeholder="请输入" size="mini" ></el-input>
                </template>
              </el-table-column>
            </el-table>
          </div>
        </el-col>
        <el-col :span="!packageInfo.ismiers?24:12">
          <div class="grid-content">
            <h5>光纤
              <el-button size="mini" type="primary" class="btns" @click="addFiber"
                 v-if="active==1">光纤配色</el-button>
              </h5>
            <div
              style="display: flex;align-items: center;justify-content: space-between;margin: 4px 0 6px 0;padding: 0 12px;box-sizing: border-box;">
              <!-- <div class="search-item" style="width: 50%;margin-right: 16px;">
                <label style="width: 80px;">光纤类型</label>
                <el-select v-model="mireModel" placeholder="请选择" size="small" style="width: 100%;"
                  :disabled="selectBushing.length===0||active!=1">
                  <el-option v-for="(item,a) in mireModels" :key="a" :label="item.label" :value="item.value">
                  </el-option>
                </el-select>
              </div>
              <div class="search-item" style="width: 50%;">
                <label style="width: 80px;">参考标准</label>
                <el-select v-model="mireStandard" placeholder="请选择" size="small" style="width: 100%;"
                  :disabled="mireModel===null||active!=1" @focus="selectsStandardMethodByFLSSM()"
                  @change="(value)=>methodChange(value)" :loading="mireStandardLoading">
                  <el-option v-for="item in mireStandards" :key="item.id" :label="item.code" :value="item.id">
                  </el-option>
                </el-select>
              </div> -->
              <div class="search-item" style="width: 50%;margin-right: 16px;">
                <label style="width: 80px;">光纤类型</label>
                <el-select v-model="mireModel" placeholder="请选择" size="small" style="width: 100%;"
               >
                  <el-option v-for="(item,a) in mireModels" :key="a" :label="item.label" :value="item.value">
                  </el-option>
                </el-select>
              </div>
              <div class="search-item" style="width: 50%;">
                <label style="width: 80px;">参考标准</label>
                <el-select v-model="mireStandard" placeholder="请选择" size="small" style="width: 100%;"
                :disabled="mireModel===null||active!=1"
                 @focus="selectsStandardMethodByFLSSM()"
                  @change="(value)=>methodChange(value)" :loading="mireStandardLoading">
                  <el-option v-for="item in mireStandards" :key="item.id" :label="item.code" :value="item.id">
                  </el-option>
                </el-select>
              </div>
            </div>
            <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-column
              type="selection"
              width="55"
              :selectable="()=>(active==1)">
              </el-table-column> -->
              <el-table-column prop="bushColor" label="管套色标" width="90" align="center">
              </el-table-column>
              <el-table-column prop="color" label="光纤色标" width="120">
                <template slot-scope="scope">
                  <el-select v-model="scope.row.color" size="mini" :disabled="active!=1" allow-create filterable >
                    <el-option v-for="(color,i) in colors" :key="i" :label="color.lable"
                      :value="color.value"></el-option>
                  </el-select>
                </template>
              </el-table-column>
              <el-table-column prop="model" label="光纤规格" show-overflow-tooltip align="center">
              </el-table-column>
              <el-table-column prop="standard" label="参考标准" show-overflow-tooltip align="center">
              </el-table-column>
            </el-table>
          </div>
        </el-col>
      </el-row>
    </div>
    <el-dialog title="检测到特殊项,请作出以下选择" :visible.sync="bsm1Dia" width="500px" :show-close="false" :before-close="beforeClose">
      <div class="body" style="max-height: 60vh;">
        <el-row v-if="bsm1">
          <el-col class="search_thing" :span="22">
            <div class="search_label"><span class="required-span">* </span>护套密度:</div>
            <div class="search_input">
              <el-radio-group v-model="bsm1Val" @input="upBsm1">
                <el-radio v-for="(a, ai) in JSON.parse(bsmRow.section)" :key="ai" :label="a"></el-radio>
              </el-radio-group>
            </div>
          </el-col>
          <el-col class="search_thing" :span="22">
            <div class="search_label">要求值:</div>
            <div class="search_input" v-show="bsm1Val!==null&&bsm1Val!==''">
              <el-radio-group v-model="bsm1Val" @input="upBsm1">
                <el-radio v-for="(a, ai) in JSON.parse(bsmRow.section)" :key="ai"
                  :label="a">{{JSON.parse(bsmRow.ask)[ai]}}</el-radio>
              </el-radio-group>
            </div>
          </el-col>
          <el-col class="search_thing" :span="22">
            <div class="search_label">单价:</div>
            <div class="search_input" v-show="bsm1Val!==null&&bsm1Val!==''">
              <el-radio-group v-model="bsm1Val" @input="upBsm1">
                <el-radio v-for="(a, ai) in JSON.parse(bsmRow.section)" :key="ai"
                  :label="a">{{JSON.parse(bsmRow.price)[ai]}}</el-radio>
              </el-radio-group>
            </div>
          </el-col>
        </el-row>
        <el-row v-if="bsm2">
          <el-col class="search_thing" :span="22">
            <div class="search_label" style="width: 220px;"><span class="required-span">* </span>样品熔接配对数量:</div>
            <div class="search_input">
              <el-input-number size="medium" v-model="bsm2Val" :min="1" :max="bsm2Val3.length" :precision="0" style="width: 70%;"
                :controls="false" @change="bsm2Up"></el-input-number>
              <span>MAX:{{bsm2Val3.length}}</span>
            </div>
          </el-col>
          <el-col style="margin-top: 6px;">
            <el-col v-for="(a,ai) in bsm2Val2" :key="ai">
              <el-col :span="10">
                <el-select v-model="a[0]" placeholder="请选择" size="small" style="width: 100%;">
                  <el-option
                    v-for="(item,index) in sampleList"
                    :key="index"
                    :label="index+1"
                    :value="index+1">
                  </el-option>
                </el-select>
              </el-col>
              <!-- <el-col :span="10" class="pairing">{{a[0]}}</el-col> -->
              <el-col :span="4" class="pairing" style="border: 0;color: rgba(0, 0, 0, 0.2);">——</el-col>
              <el-col :span="10">
                <el-select v-model="a[1]" placeholder="请选择" size="small" style="width: 100%;">
                  <el-option
                    v-for="(item,index) in sampleList"
                    :key="index"
                    :label="index+1"
                    :value="index+1">
                  </el-option>
                </el-select>
              </el-col>
              <!-- <el-col :span="10" class="pairing">{{a[1]}}</el-col> -->
            </el-col>
          </el-col>
        </el-row>
        <!-- <el-row v-if="bsm3">
          <el-col class="search_thing" :span="22" style="display: flex;align-items: center;">
            <div class="search_label"><span class="required-span">* </span>RTS:</div>
            <div class="search_input">
              <el-input size="small" placeholder="请输入" clearable v-model="bsm3Val"></el-input>
            </div>
          </el-col>
        </el-row> -->
      </div>
    </el-dialog>
    <el-dialog title="RTS填写" :visible.sync="bsm3Dia" width="500px" :show-close="false" :before-close="beforeClose0">
      <el-row>
        <el-col class="search_thing" :span="22" style="display: flex;align-items: center;">
          <div class="search_label"><span class="required-span">* </span>RTS:</div>
          <div class="search_input">
            <el-input size="small" placeholder="请输入" clearable v-model="bsm3Val"></el-input>
          </div>
        </el-col>
      </el-row>
    </el-dialog>
  </div>
</template>
<script>
import { set } from 'vue'
  export default {
    props: {
      active: {
        type: Number,
        default: () => 0
      },
    },
    data() {
      return {
        detectionType: null,
        detectionSelect: [],
        selectFiberList: [],
        type:1,
        saveLoad: false,
        packageInfo: {
          radio: 1,
          num1: null,
          standNum: null,
          testNum: null,
          ismiers: false
        },
        tableData: [],
        tape: {
          value: ''
        },
        options: [],
        sample: [],
        models: '',
        colors: [],
        wires: [],
        bushing: [],
        mireModels: [],
        mireModel: null,
        mireStandard: [],
        mireStandards: null,
        miresModels: [],
        miresModel: null,
        miresStandard: [],
        miresStandards: null,
        selectBushing: [],
        productList: [],
        productList2: [],
        fiberList: [],
        fibersList: [],
        selectFibers: [],
        detectionItems: [],
        currentDetectionItems:null,
        mireStandardLoading:false,
        multiFiberList:[],
        isAskOnlyRead:true,
        bsm1Dia: false,
        bsmRow: null,
        bsm1: false,
        bsm1Val: null,
        bsm2: false,
        bsm2Val: null,
        bsm2Dia: false,
        bsm2Val2: [],
        bsm2Val3: [],
        sampleIds:[],
        bsm3Val: null,
        bsmRow3: null,
        bsm3Dia: false,
      }
    },
    computed: {
      isAllDisabled() {
        return this.multiFiberList.length > 0||this.currentDetectionItems||this.active!=1
      },
    },
    watch: {
      // mireModel(val1,val0) {
      //   if(val1!=val0){
      //     this.mireStandards = []
      //     this.fiberList = []
      //     this.multiFiberList = []
      //     this.detectionItems = []
      //     this.currentDetectionItems = null;
      //   }
      // },
      // mireStandard(val1,val0) {
      //   if(val1!=val0){
      //     this.fiberList = []
      //     this.multiFiberList = []
      //     this.detectionItems = []
      //     this.currentDetectionItems = null;
      //   }
      // }
    },
    mounted() {
      this.$parent.sampleIds.forEach(a => {
        for (var i = 0; i < this.$parent.sampleList.length; i++) {
          if (this.$parent.sampleList[i].id == a) {
            this.sample.push(this.$parent.sampleList[i])
            this.models += (',' + this.$parent.sampleList[i].model)
            break
          }
        }
      })
      console.log(111, this.sample);
      this.models = this.models.replace(',', '')
      this.packageInfo.ismiers = this.models.split(',').every(e=>(e.indexOf('d')>-1||e.indexOf('D')>-1))
      if(this.sample[0].bushing === undefined || this.sample[0].bushing === null){
        this.bushing = []
      }else{
        this.bushing = this.HaveJson(this.sample[0].bushing)
        this.packageInfo.num1 = this.sample[0].bushing.length
        this.packageInfo.standNum = this.sample[0].bushing[0].standNum
        this.packageInfo.testNum = this.sample[0].bushing[0].testNum
        this.bushing.forEach(a=>{
          if(a.fibers==null || a.fibers.length ==0)a.fibers=[]
          if(a.fiber==null || a.fiber.length == 0)a.fiber=[]
          // åˆ¤æ–­æ˜¯å¦å«æœ‰å…‰çº¤å¸¦
          if(this.packageInfo.ismiers){
            this.fibersList = [] // æ–°å¢ž
            this.fiberList = []  // æ–°å¢ž
            if(a.fibers.length>0){
              a.fibers.forEach(b=>{
              // å…‰çº¤å¸¦
              this.fibersList.push(b)
              // å…‰çº¤
              // b.fiber.forEach(c=>{
              //   this.fiberList.push(c)
              // })
            })
            } else {
              a.fiber.forEach(b=>{
              this.fiberList.push(b)
            })
            }
          }else{
            this.fiberList = []
            a.fiber.forEach(b=>{
              this.fiberList.push(b)
            })
          }
        })
      }
      this.getTypeDicts1()
      this.getStandTreeBySampleType()
      this.getStandTreeBySampleType2()
      this.selectsStandardMethodByFLSSM2()
    },
    methods: {
      handleSelectionChange(val) {
        // this.selectFibers = val
        this.multiFiberList = val
      },
      handleSelectionChange1(val) {
        this.selectBushing = val
      },
      handleSelectionChange2(val){
        this.detectionSelect = val
        // èµ‹å€¼æ£€æµ‹é¡¹ä¿¡æ¯ å…‰çº¤å¸¦
        if(this.detectionItems.type == 1) {
          this.multiFiberList.forEach(item => {
            this.fibersList.forEach(a => {
              if(a.ident == item.ident){
                a.productList  =  []
                this.fibersList.find(a => a.ident == item.ident).productList = this.detectionSelect
              }
            })
          })
      }
      if(this.detectionItems.type == 0) {
        // èµ‹å€¼æ£€æµ‹é¡¹ä¿¡æ¯ å…‰çº¤
        console.log('000',this.selectFiberList);
        this.selectFiberList.forEach(item => {
            this.fiberList.forEach(a => {
              if(a.ident == item.ident){
                a.productList  =  []
                this.fiberList.find(a => a.ident == item.ident).productList = this.detectionSelect
              }
            })
          })
        }
      },
      handleSelectionChange4(val){
        this.selectFiberList = val
      },
      outConfig() {
        this.$parent.configShow = false
      },
      getTypeDicts1() {
        this.$axios.post(this.$api.enums.selectEnumByCategory, {
          category: "色标"
        }).then(res => {
          this.colors = res.data
        })
      },
      // å¥—管数目生成表格数据
      addBushing() {
        this.bushing = []
        for(let i = 0; i < this.packageInfo.num1; i++){
          let bushing = {
            ident: this.bushing.length + 1,
            color: this.colors[i].label,
            standNum: null,
            testNum: null,
            fibers: [],
            fiber: []
          }
          this.bushing.push(bushing)
        }
      },
      // å¥—管标准量赋值
      addStandNum() {
        if(this.selectBushing.length > 0) {
          this.bushing.forEach(item => {
          this.selectBushing.forEach(a => {
            if(item.ident == a.ident) {
              item.standNum = this.packageInfo.standNum
            }
          })
        })
        }
      },
      // å¥—管检测量赋值
      addTestNum() {
        if(this.selectBushing.length > 0) {
          this.bushing.forEach(item => {
          this.selectBushing.forEach(a => {
            if(item.ident == a.ident) {
              item.testNum = this.packageInfo.testNum
            }
          })
        })
        }
      },
      isInspection() {
        this.fiberList = []
        this.fibersList = []
        this.detectionItems = []
        // é¡µé¢æ˜¯å¦å«æœ‰å…‰çº¤å¸¦
        if(this.packageInfo.ismiers) {
          // å…¨æ£€
          if (this.packageInfo.radio == 0) {
          // æ ¹æ®æ ‡å‡†é‡èµ‹å€¼æ£€æµ‹é‡
          if(parseInt(this.packageInfo.standNum) > 0 ) {
            // ç»™å…‰çº¤å¸¦èµ‹å€¼
            this.packageInfo.testNum = this.packageInfo.standNum
            this.selectBushing = this.bushing
            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.multiFiberList.forEach(item =>{
              let rowToSelect =  this.fibersList.find(a => a.ident == item.ident)
              this.$refs.table2.toggleRowSelection(rowToSelect, true)
              })
            }, 200)
        }
      }
        }else {
          if(this.packageInfo.radio == 0) {
            if(parseInt(this.packageInfo.standNum) > 0 ) {
              this.packageInfo.testNum = this.packageInfo.standNum
              this.selectBushing = this.bushing
              this.addFiber()
              // é»˜è®¤å‹¾é€‰
            setTimeout(() => {
              this.selectBushing.forEach(item =>{
              let rowToSelect =  this.bushing.find(a => a.ident == item.ident)
              this.$refs.table0.toggleRowSelection(rowToSelect, true)
              })
            }, 200)
            }
          }
        }
      },
      upNum() {
        this.fiberList = []
        this.fibersList = []
        this.detectionItems = []
        if (this.packageInfo.radio === 0) {
          this.packageInfo.testNum = this.packageInfo.standNum
        }
        if (parseInt(this.packageInfo.standNum) < parseInt(this.packageInfo.testNum)) {
          this.packageInfo.testNum = this.packageInfo.standNum
        }
        if (this.packageInfo.num1 !== null && this.packageInfo.num1 !== '' &&
          this.packageInfo.standNum !== null && this.packageInfo.standNum !== '' &&
          this.packageInfo.testNum != null && this.packageInfo.testNum !== '') {
          let colors2 = []
          if (this.packageInfo.num1 / this.colors.length > 1) {
            let num = this.packageInfo.num1 / this.colors.length
            if (this.packageInfo.num1 % this.colors.length > 0) num += 1
            for (var i = 0; i < num; i++) {
              colors2 = colors2.concat(this.colors)
            }
          } else {
            colors2 = colors2.concat(this.colors)
          }
          this.bushing = []
          for (var i = 0; i < this.packageInfo.num1; i++) {
            let bushing = {
              color: colors2[i].label,
              standNum: this.packageInfo.standNum,
              testNum: this.packageInfo.testNum,
              fibers: [],
              fiber: []
            }
            this.bushing.push(bushing)
          }
          // ç»™å…‰çº¤å¸¦èµ‹å€¼
          if(this.selectBushing.length===0){
            this.selectBushing = this.bushing
        }
        // this.miresModels çº¤å¸¦ç±»åž‹
        // this.miresStandards å‚考标准
        this.fibersList = []
        this.packageInfo.ismiers = true
        this.fiberList = []
        this.selectBushing.forEach(a => {
          a.fiber = []
          a.fibers = []
              for(let j = 0; j < parseInt(a.testNum); j++){
                let fibers = {
                  id: this.fibersList.length + 1,
                  code: null,
                  color: a.color,
                  model: null,
                  standard: null,
                  num: a.testNum,
                  productList: this.HaveJson(this.productList2),
                  fiber: []
                }
                a.fibers.push(fibers)
                this.fibersList.push(fibers)
              }
        })
      } else {
          this.bushing = []
        }
      },
      getStandTreeBySampleType() {
        this.$axios.post(this.$api.standardTree.getStandTreeBySampleType, {
          laboratory: '通信产品实验室',
          sampleType: '光纤'
        }).then(res => {
          this.mireModels = []
          res.data.forEach(a => {
            this.mireModels.push({
              label: a.model,
              value: a.sample + ' - ' + a.model
            })
          })
        })
      },
      getStandTreeBySampleType2() {
        this.$axios.post(this.$api.standardTree.getStandTreeBySampleType, {
          laboratory: '通信产品实验室',
          sampleType: '光纤带'
        }).then(res => {
          this.miresModels = []
          res.data.forEach(a => {
            this.miresModels.push({
              label: a.model,
              value: a.model
            })
          })
        })
      },
      selectsStandardMethodByFLSSM() {
        this.mireStandards = []
        this.mireStandardLoading = true
        this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, {
          tree: '中天科技检测中心 - é€šä¿¡äº§å“å®žéªŒå®¤ - å…‰çº¤ - ' + this.mireModel
        }).then(res => {
          this.mireStandardLoading = false
          this.mireStandards = res.data.standardMethodList
        })
      },
      selectsStandardMethodByFLSSM2() {
        this.miresStandards = []
        this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, {
          tree: '中天科技检测中心 - é€šä¿¡äº§å“å®žéªŒå®¤ - å…‰çº¤å¸¦ - ' + this.miresModel
        }).then(res => {
          this.miresStandards = res.data.standardMethodList
        })
      },
      methodChange(val) {
        // if (val === null || val === '') return
        // this.$axios.post(this.$api.standardTree.selectStandardProductList, {
        //   model: this.mireModel.split(' - ')[1],
        //   standardMethodListId: val,
        //   factory: ''
        // }, {
        //   headers: {
        //     'Content-Type': 'application/json'
        //   }
        // }).then(res => {
        //   res.data.forEach(a => {
        //     a.state = 0
        //   })
        //   this.productList = res.data
        //   setTimeout(() => {
        //     this.productList.forEach(a => {
        //       if (a.state == 1) this.toggleSelection(a)
        //     })
        //     this.addFiber()
        //   }, 200)
        // })
          // å°†ä¸‹æ‹‰æ¡†å€¼èµ‹å€¼ç»™å…‰çº¤  ç›‘听去除
          if(this.selectFiberList.length == 0) {
            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, {
          model: this.mireModel.split(' - ')[1],
          standardMethodListId: val,
          factory: ''
        }, {
          headers: {
            'Content-Type': 'application/json'
          }
        }).then(res => {
          this.detectionItems = []
          if(res.data != null && res.data.length != 0){
           res.data.forEach(a => {
            a.state = 0
          })
          this.detectionItems = res.data
          this.detectionType = 0
           this.$set(this.detectionItems,'type',0)
          }
        })
      },
      methodChange2(val) {
        // if (val === null || val === '') return
        // this.$axios.post(this.$api.standardTree.selectStandardProductList, {
        //   model: '',
        //   standardMethodListId: val,
        //   factory: '中天科技检测中心 - é€šä¿¡äº§å“å®žéªŒå®¤ - å…‰çº¤å¸¦ - ' + this.miresModel + ' - ',
        // }, {
        //   headers: {
        //     'Content-Type': 'application/json'
        //   }
        // }).then(res => {
        //   res.data.forEach(a => {
        //     a.state = 0
        //   })
        //   this.productList2 = res.data
        //   setTimeout(() => {
        //     this.productList2.forEach(a => {
        //       if (a.state == 1) this.toggleSelection(a)
        //     })
        //     this.addFibers()
        //   }, 200)
        // })
        if(this.multiFiberList.length == 0) {
          this.$message.error('请选择需要更改的数据')
          return
        }
        if (val === null || val === '') return
        this.$axios.post(this.$api.standardTree.selectStandardProductList, {
          model: '',
          standardMethodListId: val,
          factory: '中天科技检测中心 - é€šä¿¡äº§å“å®žéªŒå®¤ - å…‰çº¤å¸¦ - ' + this.miresModel + ' - ',
        }, {
          headers: {
            'Content-Type': 'application/json'
          }
        }).then(res => {
          // å°†èŽ·å–çš„æ£€æµ‹é¡¹ä¿¡æ¯èµ‹å€¼
          this.detectionItems = []
          if(res.data != null && res.data.length != 0){
            res.data.forEach(a => {
              a.state = 0
            })
            this.detectionItems = res.data
            this.detectionType = 1
            this.$set(this.detectionItems,'type',1)
          }
          // ç»™é€‰ä¸­çš„光纤带赋值
        for(let i= 0; i < this.fibersList.length; i++){
            this.multiFiberList.forEach(item => {
              if(this.fibersList[i].ident == item.ident){
                this.fibersList[i].model = this.miresModel // çº¤å¸¦è§„æ ¼
                this.fibersList[i].num = this.miresModel.replace('芯','') // å…‰çº¤æ£€æµ‹é‡
                this.fibersList[i].productList = this.detectionItems // æ£€æµ‹é¡¹
                this.miresStandards.forEach(a => {
                  if(a.id == this.miresStandard) {
                    this.fibersList[i].standard = a.code // å‚考标准
                  }
                })
              }
            })
        }
      })
      },
      addFiber() {
        // æœ€æ–°
        let colors2 = []
        if (this.packageInfo.num1 / this.colors.length > 1) {
          let num = this.packageInfo.num1 / this.colors.length
          if (this.packageInfo.num1 % this.colors.length > 0) num += 1
          for (var i = 0; i < num; i++) {
            colors2 = colors2.concat(this.colors)
          }
        } else {
          colors2 = colors2.concat(this.colors)
        }
        this.fiberList = []
        // é€‰æ‹©äº†å…‰çº¤å¸¦
        if (this.packageInfo.ismiers) {
          if(this.multiFiberList.length != 0){
          this.multiFiberList.forEach((a,index) => {
            a.fiber = []
            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,
                model: null,
                noSplitModel: null,
                standard: null,
                fibersIdent: a.ident,
                productList: []
              }
              this.fiberList.push(fiber)
            }
          })
        } else {
          this.selectBushing.forEach((a,index) => {
            a.fiber = []
            for (var i = 0; i < parseInt(a.testNum); i++) {
              let fiber = {
                ident: this.fiberList.length + 1,
                bushColor: a.color,
                color: colors2[(i+(parseInt(a.testNum))*index)>colors2.length?0:i+(parseInt(a.testNum))*index].label,
                model: null,
                noSplitModel: null,
                standard: null,
                productList: []
              }
              this.fiberList.push(fiber)
            }
          })
        }
      }else {
        this.fiberList = []
        let flag = true
        // æŒ‰ç…§é¡ºåºç”Ÿæˆå…‰çº¤è‰²æ ‡
        let colors2 = []
        if (this.packageInfo.num1 / this.colors.length > 1) {
          let num = this.packageInfo.num1 / this.colors.length
          if (this.packageInfo.num1 % this.colors.length > 0) num += 1
          for (var i = 0; i < num; i++) {
            colors2 = colors2.concat(this.colors)
          }
        } else {
          colors2 = colors2.concat(this.colors)
        }
        // æ ¹æ®å¥—管的测试量生成对应的数量的光纤数据
        this.selectBushing.forEach((item,index) =>{
          if(item.testNum != null && item.testNum != ''){
            for(let i =0; i < parseInt(item.testNum); i++){
              let fiber = {
                ident: this.fiberList.length + 1,
                bushColor: item.color,
                color: colors2[(i+(parseInt(item.testNum)*index))>colors2.length?0:i+(parseInt(item.testNum)*index)*index].label,
                model:  null,
                standard: null,
                productList: []
              }
              this.fiberList.push(fiber)
            }
          }else {
            flag = false
          }
        })
        if(!flag){
          this.$message.error('请填写光纤检测量')
          return
        }
      }
        // äºŒä»£
        // // æ˜¯å¦é€‰æ‹©å¥—管
        // if(this.selectBushing.length == 0) {
        //   this.$message.error('未选择套管')
        //   return
        // }
        // this.fiberList = []
        // let flag = true
        // // æŒ‰ç…§é¡ºåºç”Ÿæˆå…‰çº¤è‰²æ ‡
        // let colors2 = []
        // if (this.packageInfo.num1 / this.colors.length > 1) {
        //   let num = this.packageInfo.num1 / this.colors.length
        //   if (this.packageInfo.num1 % this.colors.length > 0) num += 1
        //   for (var i = 0; i < num; i++) {
        //     colors2 = colors2.concat(this.colors)
        //   }
        // } else {
        //   colors2 = colors2.concat(this.colors)
        // }
        // // æ ¹æ®å¥—管的测试量生成对应的数量的光纤数据
        // this.selectBushing.forEach((item,index) =>{
        //   if(item.testNum != null && item.testNum != ''){
        //     for(let i =0; i < parseInt(item.testNum); i++){
        //       let fiber = {
        //         ident: this.fiberList.length + 1,
        //         bushColor: item.color,
        //         color: colors2[(i+(parseInt(item.testNum)*index))>colors2.length?0:i+(parseInt(item.testNum)*index)*index].label,
        //         model:  null,
        //         standard: null,
        //         productList: []
        //       }
        //       this.fiberList.push(fiber)
        //     }
        //   }else {
        //     flag = false
        //   }
        // })
        // if(!flag){
        //   this.$message.error('请填写光纤检测量')
        //   return
        // }
        // æœ€åˆ
        // let colors2 = []
        // if (this.packageInfo.num1 / this.colors.length > 1) {
        //   let num = this.packageInfo.num1 / this.colors.length
        //   if (this.packageInfo.num1 % this.colors.length > 0) num += 1
        //   for (var i = 0; i < num; i++) {
        //     colors2 = colors2.concat(this.colors)
        //   }
        // } else {
        //   colors2 = colors2.concat(this.colors)
        // }
        // this.fiberList = []
        // let model = this.mireModel.split(' - ')[1]
        // let standard = this.mireStandards.find(a => a.id == this.mireStandard).code
        // if (this.packageInfo.ismiers) {
        //   if(this.selectFibers.length === 0){
        //     this.$message.error('未选择光纤带')
        //     return
        //   }
        //   this.selectFibers.forEach((a,index) => {
        //     a.fiber = []
        //     for (var i = 0; i < parseInt(a.num); i++) {
        //       let fiber = {
        //         bushColor: a.color,
        //         color: colors2[(i+(parseInt(a.num)*index))>colors2.length?0:i+(parseInt(a.num)*index)*index].label,
        //         model: model,
        //         standard: standard,
        //         productList: this.HaveJson(this.productList)
        //       }
        //       a.fiber.push(fiber)
        //       this.fiberList.push(fiber)
        //     }
        //   })
        // } else {
        //   this.selectBushing.forEach((a,index) => {
        //     a.fiber = []
        //     for (var i = 0; i < parseInt(a.testNum); i++) {
        //       let fiber = {
        //         bushColor: a.color,
        //         color: colors2[(i+(parseInt(a.testNum))*index)>colors2.length?0:i+(parseInt(a.testNum))*index].label,
        //         model: model,
        //         standard: standard,
        //         productList: this.HaveJson(this.productList)
        //       }
        //       a.fiber.push(fiber)
        //       this.fiberList.push(fiber)
        //     }
        //   })
        // }
      },
      addFibers() {
        // if(this.selectBushing.length===0){
        //   this.$message.error('未选择套管')
        //   return
        // }
        // this.fibersList = []
        // let standard = this.miresStandards.find(a => a.id == this.miresStandard).code
        // this.packageInfo.ismiers = true
        // this.fiberList = []
        // this.selectBushing.forEach(a => {
        //   a.fiber = []
        //   a.fibers = []
        //   for (var i = 0; i < parseInt(a.testNum); i++) {
        //     let fibers = {
        //       code: null,
        //       color: a.color,
        //       model: this.miresModel,
        //       standard: standard,
        //       num: a.testNum,
        //       productList: this.HaveJson(this.productList2),
        //       fiber: []
        //     }
        //     a.fibers.push(fibers)
        //     this.fibersList.push(fibers)
        //   }
        // })
        if(this.selectBushing.length == 0) {
          this.$message.error('未选择套管')
          return
        }
        // å¥—管的测试量  *  é€‰æ‹©çš„光纤带数量
        this.fibersList = []
        this.selectBushing.forEach(item => {
          for(let i = 0; i < parseInt(this.packageInfo.testNum); i++){
          let fibers = {
            ident: this.fibersList.length + 1,
            color: item.color,
            code: null,
            model: null,
            standard: null,
            num: null,
            fiber: [],
            productList: []
          }
          this.fibersList.push(fibers)
        }
        })
      },
      rowClickFiber(row, column, event,type){
        console.log('row',row);
        if(type == 1) {
          this.fiberList = row.fiber
          if(row.productList != null && row.productList.length > 0) {
            this.detectionItems = []
            this.detectionItems = row.productList
          }
          if(row.fiber != null && row.fiber.length > 0) {
            this.fiberList = []
            this.fiberList = row.fiber
          }
        }else if (type == 0){
          this.detectionItems = []
          this.detectionItems = row.productList
        }
      //   if(type == 1) {
      //     if((row.model == null || row.model == '') && (row.standard == null || row.standard == '')){
      //       this.detectionItems = []
      //       return
      //     }
      //     if(row.model != null && row.model != ''){
      //     this.miresModel = row.model
      //     this.selectsStandardMethodByFLSSM2()
      //   }
      //   setTimeout(() => {
      //     if(row.standard !=null && row.standard != ''){
      //     this.miresStandard = this.miresStandards.find(a => a.code == row.standard).id
      //   }
      //     this.$axios.post(this.$api.standardTree.selectStandardProductList, {
      //     model: '',
      //     standardMethodListId: this.miresStandard,
      //     factory: '中天科技检测中心 - é€šä¿¡äº§å“å®žéªŒå®¤ - å…‰çº¤å¸¦ - ' + this.miresModel + ' - ',
      //   }, {
      //     headers: {
      //       'Content-Type': 'application/json'
      //     }
      //   }).then(res => {
      //     // å°†èŽ·å–çš„æ£€æµ‹é¡¹ä¿¡æ¯èµ‹å€¼
      //     this.detectionItems = []
      //     if(res.data != null && res.data.length != 0){
      //       this.detectionItems = res.data
      //       this.detectionType = 1
      //       this.$set(this.detectionItems,'type',1)
      //       if (row.productList != null && row.productList.length > 0) {
      //         let product =  JSON.parse(JSON.stringify(row.productList))
      //         setTimeout(() => {
      //           product.forEach(p => {
      //           let rowToSelect = this.detectionItems.find(item => item.id === p.id);
      //           if (rowToSelect) {
      //             this.toggleSelection(rowToSelect);
      //           }
      //         });
      //       },200)
      //       }
      //     }
      //   })
      //   },1000)
      // }else if(type == 0) {
      //   if((row.noSplitModel == null || row.noSplitModel == '') && (row.standard == null || row.standard == '')){
      //       this.detectionItems = []
      //       return
      //     }
      //   if(row.model != null && row.model != ''){
      //     this.mireModel = row.noSplitModel
      //     this.selectsStandardMethodByFLSSM()
      //   }
      //   setTimeout(() => {
      //     if(row.standard !=null && row.standard != ''){
      //     this.mireStandard = this.mireStandards.find(a => a.code == row.standard).id
      //   }
      //   this.$axios.post(this.$api.standardTree.selectStandardProductList, {
      //     model: this.mireModel.split(' - ')[1],
      //     standardMethodListId: this.mireStandard,
      //     factory: ''
      //   }, {
      //     headers: {
      //       'Content-Type': 'application/json'
      //     }
      //   }).then(res => {
      //     this.detectionItems = []
      //     if(res.data != null && res.data.length != 0){
      //      res.data.forEach(a => {
      //       a.state = 0
      //     })
      //     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))
      //       setTimeout(() => {
      //         product.forEach(p => {
      //           let rowToSelect = this.detectionItems.find(item => item.id === p.id);
      //           if (rowToSelect) {
      //             this.toggleSelection(rowToSelect);
      //           }
      //         });
      //       },200)
      //       }
      //     }
      //   })
      //   },1000);
      // }
    },
      toggleSelection(row) {
        this.$refs.productTable.toggleRowSelection(row, true);
      },
      tableRowClassName({
        row,
        rowIndex
      }) {
        if (row.state === 0) {
          return 'warning-row';
        }
        return '';
      },
      handleAll(e) {
        if (e.length > 0) {
          console.log(this.detectionItems);
          this.detectionItems.map(m => {
            m.state = 1
            return m
          })
        } else {
          this.detectionItems.map(m => {
            m.state = 0
            return m
          })
        }
        if (e.length > 0) {
          if(this.multiFiberList.length > 0){
            this.multiFiberList.map(item => {
              item.productList.map(m=>{
                m.state = 1;
                return m;
              })
              return item
            })
          }else{
          this.currentDetectionItems.productList.map(m=>{
              m.state = 1;
              return m;
            })
          }
        } else {
          if(this.multiFiberList.length > 0){
            this.multiFiberList.map(item => {
              item.productList.map(m=>{
                m.state = 0;
                return m;
              })
              return item
            })
          }else{
            this.currentDetectionItems.productList.map(m=>{
              m.state = 0;
              return m;
            });
          }
        }
        this.bsmRow3 = []
        this.detectionItems.forEach(p => {
          if(this.type==1){
            if (p.bsm === '1' && p.section !== '' && p.section !== null && p.state === 1) {
              if (p.section.indexOf('[') > -1) {
                this.bsmRow = this.HaveJson(p)
              }
              this.bsm1 = true
              this.bsm1Dia = true
            } else if (p.bsm === '1' && p.section !== '' && p.section !== null && p.state === 0) {
              this.bsm1 = false
            }
            if (p.bsm === '1' && p.inspectionItem === '光纤接头损耗' && this.sampleList.length > 1 && p.state === 1) {
              this.bsm2 = true
              this.bsm1Dia = true
              if(this.bsm2Val2.length === 0){
                this.bsm2Val = (this.sampleList.length - 1) * this.sampleList.length / 2
                this.computationalPairing(this.sampleList.length)
                this.bsm2Val2 = this.HaveJson(this.bsm2Val3)
              }
            } else if (p.bsm === '1' && p.inspectionItem === '光纤接头损耗' && p.state === 1) {
              this.bsm2 = false
            }
          }
          // if (p.ask.includes('RTS')&&p.state === 1) {
          //   p.rts = ''
          //   this.bsm3Val = ''
          //   this.bsm3Dia = true
          //   this.bsmRow3.push(p)
          // }
        })
        if (e.length > 0) {
          this.sampleList.map(item => {
            if (this.sampleIds.indexOf(item.id) > -1) {
              item.insProduct.map(m => {
                m.state = 1
                return m;
              })
            }
            return item
          })
        } else {
          this.sampleList.map(item => {
            if (this.sampleIds.indexOf(item.id) > -1) {
              item.insProduct.map(m => {
                m.state = 0
                return m;
              })
            }
            return item
          })
        }
        this.$nextTick(() => {
          this.$refs.productTable.doLayout()
        })
      },
      upProductSelect(selection, row) {
        row.state = row.state == 1 ? 0 : 1
        if(this.selectFiberList.length > 0){
          this.selectFiberList.map(item => {
            item.productList.map(m=>{
              if(m.id == row.id){
                m.state = row.state;
              }
              return m
            })
            return item
          })
        }else{
          this.currentDetectionItems.productList.map(m=>{
            if(m.id == row.id){
                m.state = row.state;
              }
              return m;
            });
        }
        if(this.type==1){
          if (row.bsm === '1' && row.section !== '' && row.section !== null && row.state === 1) {
            if (row.section.indexOf('[') > -1) {
              this.bsmRow = this.HaveJson(row)
            }
            this.bsm1 = true
            this.bsm1Dia = true
          } else if (row.bsm === '1' && row.section !== '' && row.section !== null && row.state === 0) {
            this.bsm1 = false
          }
          if (row.bsm === '1' && row.inspectionItem === '光纤接头损耗' && this.sampleList.length > 1 && row.state === 1) {
          this.bsm2 = true
          this.bsm1Dia = true
            if(this.bsm2Val2.length === 0){
              this.bsm2Val = (this.sampleList.length - 1) * this.sampleList.length / 2
              this.computationalPairing(this.sampleList.length)
              this.bsm2Val2 = this.HaveJson(this.bsm2Val3)
            }
          } else if (row.bsm === '1' && row.inspectionItem === '光纤接头损耗' && row.state === 1) {
            this.bsm2 = false
          }
        }else{
          this.bsm1Dia = false
        }
        // if (row.ask.includes('RTS')&&row.state === 1) {
        //   this.bsmRow3 = null;
        //   row.rts = ''
        //   this.bsm3Val = ''
        //   this.bsm3Dia = true
        //   this.bsmRow3 = row
        // }else{
        //   this.bsm3Dia = false
        // }
      },
      computationalPairing(n){
        const nums = [];
        for (let i = 1; i <= n; i++) {
          nums.push(i);
        }
        this.bsm2Val3 = this.HaveJson(this.permute(nums))
      },
      setClassName({ column }) {
        if (column.type == 'selection' && !this.isAllDisabled) {
          return 'all-disabled'
        }
      },
      setClassName0({ column }){
        if (column.type == 'selection' && this.active!=1) {
          return 'all-disabled'
        }
      },
      clearFibers(){
        this.packageInfo.ismiers = false
        this.fibersList = []
        this.bushing.forEach(a=>{
          a.fibers = []
        })
      },
      save(){
        // if(this.bushing.length === 0){
        //   this.$message.error('缺少配置无法保存')
        //   return
        // }
        // for(let a in this.bushing){
        //   if(this.bushing[a].fibers.length===0&&this.bushing[a].fiber.length===0){
        //     this.$message.error(this.bushing[a].color+'管色标套管缺少配置无法保存')
        //     return
        //   }
        // }
        // this.sample.forEach(a=>{
        //   a.bushing = this.bushing
        // })
        // this.$message.success('已保存')
        // this.$emit('saveFiberopticConfig')
        if(this.bushing.length === 0){
          this.$message.error('缺少套管无法保存')
          return
        }
        this.bushing.forEach(item=>{
          // å¦‚果光纤带有值
          if(this.fibersList.length != 0) {
              this.fibersList.forEach(a=>{
                a.fiber = this.fiberList.filter(b=>b.fibersIdent == a.ident)
              })
              item.fibers = this.fibersList // å…‰çº¤å¸¦
              item.fiber = [] // å…‰çº¤
          }else {
            // å¦‚果光纤带没有值
            item.fibers = [] // å…‰çº¤å¸¦
            item.fiber = this.fiberList // å…‰çº¤
          }
        })
        this.sample.forEach(a=>{
          a.bushing = this.bushing
        })
        this.$message.success('已保存')
        this.$emit('saveFiberopticConfig')
      },
      beforeClose(done){
        if (this.bsm1) {
          if (this.bsm1Val === null || this.bsm1Val === '') {
            this.$message.error('特殊项目必须处理')
            return
          }
        }
        if (this.bsm2) {
          if (this.bsm2Val2.length === 0) {
            this.$message.error('特殊项目必须处理')
            return
          }
          let set = new Set()
          for (let i=0;i<this.bsm2Val2.length;i++){
            let num0 = set.size
            set.add(JSON.stringify(this.bsm2Val2[i]))
            let num1 = set.size
            if(num1==num0){
              this.$message.error('关联项目不能重复')
              return
            }
            set.add(JSON.stringify(this.bsm2Val2[i].reverse()))
            let num2 = set.size
            if(num1==num2){
              this.$message.error('关联项目不能重复')
              return
            }
          }
        }
        done()
      },
      beforeClose0(done){
        if(!this.bsm3Val){
          this.$message.error('RST必须填写')
          return
        }else{
          if(Array.isArray(this.bsmRow3)){
            this.bsmRow3.forEach(item=>{
              item.rts = this.bsm3Val
            })
          }else{
            this.bsmRow3.rts = this.bsm3Val
          }
        }
        done()
      },
      upBsm1(val) {
        let sections = JSON.parse(this.bsmRow.section);
        let asks = JSON.parse(this.bsmRow.ask);
        let tells = JSON.parse(this.bsmRow.tell);
        let manHours = JSON.parse(this.bsmRow.manHour);
        let prices = JSON.parse(this.bsmRow.price);
        for (var a in sections) {
          if (val === sections[a]) {
            this.productList.forEach(p => {
              if (p.id === this.bsmRow.id) {
                p.section = sections[a]
                p.ask = asks[a]
                p.tell = tells[a]
                p.manHour = manHours[a]
                p.price = prices[a]
              }
            })
            break
          }
        }
      },
      bsm2Up(val){
        let list = []
        for(let a=1;a < this.bsm2Val3.length + 1;a++){
          list.push(a)
        }
        let set = new Set()
        let size1 = set.length
        while(set.size < val){
          set.add(Math.ceil(Math.random() * this.bsm2Val3.length))
        }
        this.bsm2Val2 = []
        for(let a of set){
          this.bsm2Val2.push(this.HaveJson(this.bsm2Val3[a-1]))
        }
      }
    }
  }
</script>
<style scoped>
  .ins_order_config {
    width: 100%;
    height: 100%;
    overflow-y: auto;
    overflow-x: hidden;
  }
  .ins_order_config::-webkit-scrollbar {
    width: 0;
  }
  .title {
    height: 60px;
    line-height: 60px;
  }
  .center {
    width: 100%;
    height: calc(100% - 60px);
  }
  .grid-content {
    background: #fff;
    border-radius: 4px;
    box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.05);
  }
  .grid-content h5 {
    color: #3A7BFA;
    font-weight: 400;
    line-height: 32px;
    padding-left: 16px;
    box-sizing: border-box;
    border-bottom: 1px solid #eee;
  }
  .search-item {
    display: flex;
    align-items: center;
    line-height: 36px;
  }
  .search-item label {
    width: 90px;
    font-size: 12px;
    color: #606266;
    /* text-align: right; */
  }
  .btns {
    margin: 8px 0 8px 10px;
  }
  >>>.el-table th.el-table__cell>.cell {
    padding-top: 2px !important;
    padding-bottom: 2px !important;
  }
  >>>.all-disabled .el-checkbox__input .el-checkbox__inner {
    background-color: #edf2fc;
    border-color: #dcdfe6;
    cursor: not-allowed;
  }
</style>
src/components/do/b1-ins-order/fiberoptic-config.vue
@@ -22,7 +22,7 @@
                <label style="width: 70px;">样品型号</label>
                <span style="font-size: 14px;">{{models}}</span>
              </div>
              <el-radio-group v-model="packageInfo.radio" size="small" @change="upNum()" :disabled="active!=1">
              <el-radio-group v-model="packageInfo.radio" size="small" @change="isInspection()" :disabled="active!=1">
                <el-radio :label="0">全检</el-radio>
                <el-radio :label="1">抽检</el-radio>
              </el-radio-group>
@@ -31,16 +31,16 @@
              style="display: flex;align-items: center;justify-content: space-between;margin-bottom: 8px;padding: 0 12px;box-sizing: border-box;">
              <div class="search-item" style="margin-right: 10px;">
                <label>套管数目</label>
                <el-input v-model="packageInfo.num1" placeholder="请输入" size="small" @change="upNum" :disabled="active!=1"></el-input>
                <el-input v-model="packageInfo.num1" placeholder="请输入" size="small" @blur="addBushing" :disabled="active!=1" ></el-input>
              </div>
              <div class="search-item" style="margin-right: 10px;">
                <label style="width: 70px;">标准量</label>
                <el-input v-model="packageInfo.standNum" placeholder="请输入" size="small" @change="upNum" :disabled="active!=1"></el-input>
                <label style="width: 100px">每根管抽检标准量</label>
                <el-input v-model="packageInfo.standNum" placeholder="请输入" size="small" @blur="addStandNum" :disabled="active!=1" style="width:100px"></el-input>
              </div>
              <div class="search-item">
                <label style="width: 70px;">检测量</label>
                <el-input v-model="packageInfo.testNum" placeholder="请输入" size="small" @change="upNum"
                  :disabled="packageInfo.radio===0||active!=1"></el-input>
                <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>
              </div>
            </div>
            <el-table ref="table0" :data="bushing" tooltip-effect="dark" style="width: 100%" height="203px" size="small"
@@ -78,7 +78,7 @@
              @select="upProductSelect"
              >
              <el-table-column type="selection" width="55"
              :selectable="()=>((currentDetectionItems||this.multiFiberList.length > 0)&&active==1)">
              :selectable="()=>((currentDetectionItems||this.selectFiberList.length > 0 || this.multiFiberList.length > 0)&&active==1)">
              </el-table-column>
              <el-table-column label="实验室" show-overflow-tooltip prop="sonLaboratory" ></el-table-column>
              <el-table-column prop="inspectionItem" label="检验项" show-overflow-tooltip>
@@ -107,21 +107,22 @@
        <el-col :span="12" v-if="packageInfo.ismiers">
          <div class="grid-content">
            <h5>光纤带
              <!-- <el-button size="mini" type="primary" class="btns" @click="addFibers"
                :disabled="miresModel===null||miresStandard===null" v-if="active==1">生成光纤带</el-button> -->
              <el-button size="mini" class="btns" @click="clearFibers" :disabled="selectBushing.length === 0" v-if="active==1">清除</el-button>
              <el-button size="mini" type="primary" class="btns" @click="addFibers"
                 v-if="active==1">生成光纤带</el-button>
              <!-- <el-button size="mini" class="btns" @click="clearFibers" :disabled="selectBushing.length === 0" v-if="active==1">清除</el-button> -->
            </h5>
            <div
              style="display: flex;align-items: center;justify-content: space-between;margin:4px 0 6px 0;padding: 0 12px;box-sizing: border-box;">
              <div class="search-item" style="width: 50%;margin-right: 16px;">
              <!-- <div class="search-item" style="width: 50%;margin-right: 16px;">
                <label style="width: 80px;">纤带类型</label>
                <el-select v-model="miresModel" placeholder="请选择" size="small" style="width: 100%;"
                  :disabled="selectBushing.length===0||active!=1">
                  :disabled="selectBushing.length===0||active!=1"
                  >
                  <el-option v-for="(item,a) in miresModels" :key="a" :label="item.label" :value="item.value">
                  </el-option>
                </el-select>
              </div>
              <div class="search-item" style="width: 50%;">
              </div> -->
              <!-- <div class="search-item" style="width: 50%;">
                <label style="width: 80px;">参考标准</label>
                <el-select v-model="miresStandard" placeholder="请选择" size="small" style="width: 100%;"
                  :disabled="miresModel===null||active!=1" @focus="selectsStandardMethodByFLSSM2()"
@@ -129,10 +130,30 @@
                  <el-option v-for="item in miresStandards" :key="item.id" :label="item.code" :value="item.id">
                  </el-option>
                </el-select>
              </div> -->
              <div class="search-item" style="width: 50%;margin-right: 16px;">
                <label style="width: 80px;">纤带类型</label>
                <el-select v-model="miresModel" placeholder="请选择" size="small" style="width: 100%;"
                  >
                  <el-option v-for="(item,a) in miresModels" :key="a" :label="item.label" :value="item.value">
                  </el-option>
                </el-select>
              </div>
              <div class="search-item" style="width: 50%;">
                <label style="width: 80px;">参考标准</label>
                <el-select v-model="miresStandard" placeholder="请选择" size="small" style="width: 100%;"
                :disabled="miresModel===null||active!=1"
                 @focus="selectsStandardMethodByFLSSM2()"
                  @change="(value)=>methodChange2(value)">
                  <el-option v-for="item in miresStandards" :key="item.id" :label="item.code" :value="item.id">
                  </el-option>
                </el-select>
              </div>
            </div>
            <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,0)"
              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-column
              type="selection"
@@ -140,12 +161,24 @@
              :selectable="()=>(active==1)">
              </el-table-column>
              <el-table-column prop="code" label="光纤带编号" show-overflow-tooltip align="center">
                <template slot-scope="scope">
                  <el-input v-model="scope.row.code" placeholder="请输入" size="mini" ></el-input>
                </template>
              </el-table-column>
              <el-table-column prop="model" label="光纤带规格" show-overflow-tooltip align="center">
                <template slot-scope="scope">
                  <el-input v-model="scope.row.model" placeholder="请输入" size="mini" ></el-input>
                </template>
              </el-table-column>
              <el-table-column prop="standard" label="参考标准" show-overflow-tooltip align="center">
                <template slot-scope="scope">
                  <el-input v-model="scope.row.standard" placeholder="请输入" size="mini" ></el-input>
                </template>
              </el-table-column>
              <el-table-column prop="num" label="光纤检测量" show-overflow-tooltip align="center">
                <template slot-scope="scope">
                  <el-input v-model="scope.row.num" placeholder="请输入" size="mini" ></el-input>
                </template>
              </el-table-column>
            </el-table>
          </div>
@@ -153,12 +186,12 @@
        <el-col :span="!packageInfo.ismiers?24:12">
          <div class="grid-content">
            <h5>光纤
              <!-- <el-button size="mini" type="primary" class="btns" @click="addFiber"
                :disabled="mireModel===null||mireStandard===null" v-if="active==1">光纤配色</el-button> -->
              <el-button size="mini" type="primary" class="btns" @click="addFiber"
                 v-if="active==1">光纤配色</el-button>
              </h5>
            <div
              style="display: flex;align-items: center;justify-content: space-between;margin: 4px 0 6px 0;padding: 0 12px;box-sizing: border-box;">
              <div class="search-item" style="width: 50%;margin-right: 16px;">
              <!-- <div class="search-item" style="width: 50%;margin-right: 16px;">
                <label style="width: 80px;">光纤类型</label>
                <el-select v-model="mireModel" placeholder="请选择" size="small" style="width: 100%;"
                  :disabled="selectBushing.length===0||active!=1">
@@ -174,11 +207,29 @@
                  <el-option v-for="item in mireStandards" :key="item.id" :label="item.code" :value="item.id">
                  </el-option>
                </el-select>
              </div> -->
              <div class="search-item" style="width: 50%;margin-right: 16px;">
                <label style="width: 80px;">光纤类型</label>
                <el-select v-model="mireModel" placeholder="请选择" size="small" style="width: 100%;"
               >
                  <el-option v-for="(item,a) in mireModels" :key="a" :label="item.label" :value="item.value">
                  </el-option>
                </el-select>
              </div>
              <div class="search-item" style="width: 50%;">
                <label style="width: 80px;">参考标准</label>
                <el-select v-model="mireStandard" placeholder="请选择" size="small" style="width: 100%;"
                :disabled="mireModel===null||active!=1"
                 @focus="selectsStandardMethodByFLSSM()"
                  @change="(value)=>methodChange(value)" :loading="mireStandardLoading">
                  <el-option v-for="item in mireStandards" :key="item.id" :label="item.code" :value="item.id">
                  </el-option>
                </el-select>
              </div>
            </div>
            <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,1)"
              @row-click="(row, column, event)=>rowClickFiber(row, column, event,0)"
              :header-cell-class-name="setClassName0">
              <el-table-column
              type="selection"
@@ -295,6 +346,7 @@
</template>
<script>
import { set } from 'vue'
  export default {
    props: {
      active: {
@@ -304,6 +356,9 @@
    },
    data() {
      return {
        detectionType: null,
        detectionSelect: [],
        selectFiberList: [],
        type:1,
        saveLoad: false,
        packageInfo: {
@@ -337,7 +392,7 @@
        fiberList: [],
        fibersList: [],
        selectFibers: [],
        detectionItems:[],
        detectionItems: [],
        currentDetectionItems:null,
        mireStandardLoading:false,
        multiFiberList:[],
@@ -363,23 +418,23 @@
      },
    },
    watch: {
      mireModel(val1,val0) {
        if(val1!=val0){
          this.mireStandards = []
          this.fiberList = []
          this.multiFiberList = []
          this.detectionItems = []
          this.currentDetectionItems = null;
        }
      },
      mireStandard(val1,val0) {
        if(val1!=val0){
          this.fiberList = []
          this.multiFiberList = []
          this.detectionItems = []
          this.currentDetectionItems = null;
        }
      }
      // mireModel(val1,val0) {
      //   if(val1!=val0){
      //     this.mireStandards = []
      //     this.fiberList = []
      //     this.multiFiberList = []
      //     this.detectionItems = []
      //     this.currentDetectionItems = null;
      //   }
      // },
      // mireStandard(val1,val0) {
      //   if(val1!=val0){
      //     this.fiberList = []
      //     this.multiFiberList = []
      //     this.detectionItems = []
      //     this.currentDetectionItems = null;
      //   }
      // }
    },
    mounted() {
      this.$parent.sampleIds.forEach(a => {
@@ -391,6 +446,7 @@
          }
        }
      })
      console.log(111, this.sample);
      this.models = this.models.replace(',', '')
      this.packageInfo.ismiers = this.models.split(',').every(e=>(e.indexOf('d')>-1||e.indexOf('D')>-1))
      if(this.sample[0].bushing === undefined || this.sample[0].bushing === null){
@@ -401,37 +457,96 @@
        this.packageInfo.standNum = this.sample[0].bushing[0].standNum
        this.packageInfo.testNum = this.sample[0].bushing[0].testNum
        this.bushing.forEach(a=>{
          if(a.fibers===null)a.fibers=[]
          if(a.fiber===null)a.fiber=[]
          if(a.fibers==null || a.fibers.length ==0)a.fibers=[]
          if(a.fiber==null || a.fiber.length == 0)a.fiber=[]
          // åˆ¤æ–­æ˜¯å¦å«æœ‰å…‰çº¤å¸¦
          if(this.packageInfo.ismiers){
            a.fibers.forEach(b=>{
            this.fibersList = [] // æ–°å¢ž
            this.fiberList = []  // æ–°å¢ž
            if(a.fibers.length>0){
              a.fibers.forEach(b=>{
              // å…‰çº¤å¸¦
              this.fibersList.push(b)
              b.fiber.forEach(c=>{
                this.fiberList.push(c)
              })
              // å…‰çº¤
              // this.fiberList = []
              // this.fiberList = b.fiber
            })
            } else {
              a.fiber.forEach(b=>{
              this.fiberList.push(b)
            })
            }
          }else{
            this.fiberList = []
            a.fiber.forEach(b=>{
              this.fiberList.push(b)
            })
          }
        })
      }
      this.getTypeDicts1()
      this.getStandTreeBySampleType()
      this.getStandTreeBySampleType2()
      this.selectsStandardMethodByFLSSM2()
    },
    methods: {
      handleSelectionChange(val) {
        this.selectFibers = val
        // this.selectFibers = val
        this.multiFiberList = val
        if(val.length > 0) {
          this.rowClickFiber(val[val.length-1],null,null,1)
        }
      },
      handleSelectionChange1(val) {
        this.selectBushing = val
      },
      handleSelectionChange2(val){},
      handleSelectionChange2(val){
        this.detectionSelect = val
        // èµ‹å€¼æ£€æµ‹é¡¹ä¿¡æ¯ å…‰çº¤å¸¦
        if(this.detectionItems.type == 1) {
          this.multiFiberList.forEach(item => {
            this.fibersList.forEach(a => {
              if(a.ident == item.ident){
                a.productList  =  []
                this.fibersList.find(a => a.ident == item.ident).productList = this.detectionSelect
              }
            })
          })
      }
      if(this.detectionItems.type == 0) {
        // èµ‹å€¼æ£€æµ‹é¡¹ä¿¡æ¯ å…‰çº¤
        this.selectFiberList.forEach(item => {
            this.fiberList.forEach(a => {
              if(a.ident == item.ident){
                a.productList  =  []
                this.fiberList.find(a => a.ident == item.ident).productList = this.detectionSelect
              }
            })
          })
          if(this.multiFiberList.length == 1) {
            this.multiFiberList.forEach(item => {
            this.fibersList.forEach(a => {
              if(a.ident == item.ident){
                a.fiber = this.fiberList
              }
            })
          })
          }else if(this.multiFiberList.length > 1) {
            this.fibersList.forEach(item => {
              item.fiber = this.fiberList
            })
          }
        }
      },
      handleSelectionChange4(val){
        this.multiFiberList = val
        this.selectFiberList = val
        if(val != 0) {
          this.rowClickFiber(val[val.length-1],null,null,0)
        }
      },
      outConfig() {
        this.$parent.configShow = false
@@ -442,6 +557,100 @@
        }).then(res => {
          this.colors = res.data
        })
      },
      // å¥—管数目生成表格数据
      addBushing() {
        this.bushing = []
        for(let i = 0; i < this.packageInfo.num1; i++){
          let bushing = {
            ident: this.bushing.length + 1,
            color: this.colors[i].label,
            standNum: null,
            testNum: null,
            fibers: [],
            fiber: []
          }
          this.bushing.push(bushing)
        }
      },
      // å¥—管标准量赋值
      addStandNum() {
        if(this.selectBushing.length > 0) {
          this.bushing.forEach(item => {
          this.selectBushing.forEach(a => {
            if(item.ident == a.ident) {
              item.standNum = this.packageInfo.standNum
            }
          })
        })
        }
      },
      // å¥—管检测量赋值
      addTestNum() {
        if(parseInt(this.packageInfo.testNum) > parseInt(this.packageInfo.standNum)) {
          this.packageInfo.testNum = this.packageInfo.standNum
          this.$message.error('检测量不能大于标准量')
        }
        if(this.selectBushing.length > 0) {
          this.bushing.forEach(item => {
          this.selectBushing.forEach(a => {
            if(item.ident == a.ident) {
              item.testNum = this.packageInfo.testNum
            }
          })
        })
        }
      },
      isInspection() {
        this.fiberList = []
        this.fibersList = []
        this.detectionItems = []
        // é¡µé¢æ˜¯å¦å«æœ‰å…‰çº¤å¸¦
        if(this.packageInfo.ismiers) {
          // å…¨æ£€
          if (this.packageInfo.radio == 0) {
          // æ ¹æ®æ ‡å‡†é‡èµ‹å€¼æ£€æµ‹é‡
          if(parseInt(this.packageInfo.standNum) > 0 ) {
            // ç»™å…‰çº¤å¸¦èµ‹å€¼
            this.packageInfo.testNum = this.packageInfo.standNum
            this.selectBushing = this.bushing
            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.multiFiberList.forEach(item =>{
              let rowToSelect =  this.fibersList.find(a => a.ident == item.ident)
              this.$refs.table2.toggleRowSelection(rowToSelect, true)
              })
            }, 200)
        }
      }
        }else {
          if(this.packageInfo.radio == 0) {
            if(parseInt(this.packageInfo.standNum) > 0 ) {
              this.packageInfo.testNum = this.packageInfo.standNum
              this.selectBushing = this.bushing
              this.addFiber()
              // é»˜è®¤å‹¾é€‰
            setTimeout(() => {
              this.selectBushing.forEach(item =>{
              let rowToSelect =  this.bushing.find(a => a.ident == item.ident)
              this.$refs.table0.toggleRowSelection(rowToSelect, true)
              })
            }, 200)
            }
          }
        }
      },
      upNum() {
        this.fiberList = []
@@ -477,7 +686,34 @@
            }
            this.bushing.push(bushing)
          }
        } else {
          // ç»™å…‰çº¤å¸¦èµ‹å€¼
          if(this.selectBushing.length===0){
            this.selectBushing = this.bushing
        }
        // this.miresModels çº¤å¸¦ç±»åž‹
        // this.miresStandards å‚考标准
        this.fibersList = []
        this.packageInfo.ismiers = true
        this.fiberList = []
        this.selectBushing.forEach(a => {
          a.fiber = []
          a.fibers = []
              for(let j = 0; j < parseInt(a.testNum); j++){
                let fibers = {
                  id: this.fibersList.length + 1,
                  code: null,
                  color: a.color,
                  model: null,
                  standard: null,
                  num: a.testNum,
                  productList: this.HaveJson(this.productList2),
                  fiber: []
                }
                a.fibers.push(fibers)
                this.fibersList.push(fibers)
              }
        })
      } else {
          this.bushing = []
        }
      },
@@ -528,7 +764,46 @@
        })
      },
      methodChange(val) {
        if (val === null || val === '') return
        // if (val === null || val === '') return
        // this.$axios.post(this.$api.standardTree.selectStandardProductList, {
        //   model: this.mireModel.split(' - ')[1],
        //   standardMethodListId: val,
        //   factory: ''
        // }, {
        //   headers: {
        //     'Content-Type': 'application/json'
        //   }
        // }).then(res => {
        //   res.data.forEach(a => {
        //     a.state = 0
        //   })
        //   this.productList = res.data
        //   setTimeout(() => {
        //     this.productList.forEach(a => {
        //       if (a.state == 1) this.toggleSelection(a)
        //     })
        //     this.addFiber()
        //   }, 200)
        // })
          // å°†ä¸‹æ‹‰æ¡†å€¼èµ‹å€¼ç»™å…‰çº¤  ç›‘听去除
          if(this.selectFiberList.length == 0) {
            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, {
          model: this.mireModel.split(' - ')[1],
          standardMethodListId: val,
@@ -538,19 +813,45 @@
            'Content-Type': 'application/json'
          }
        }).then(res => {
          res.data.forEach(a => {
          this.detectionItems = []
          if(res.data != null && res.data.length != 0){
           res.data.forEach(a => {
            a.state = 0
          })
          this.productList = res.data
          setTimeout(() => {
            this.productList.forEach(a => {
              if (a.state == 1) this.toggleSelection(a)
            })
            this.addFiber()
          }, 200)
          this.detectionItems = res.data
          this.detectionType = 0
           this.$set(this.detectionItems,'type',0)
          }
        })
      },
      methodChange2(val) {
        // if (val === null || val === '') return
        // this.$axios.post(this.$api.standardTree.selectStandardProductList, {
        //   model: '',
        //   standardMethodListId: val,
        //   factory: '中天科技检测中心 - é€šä¿¡äº§å“å®žéªŒå®¤ - å…‰çº¤å¸¦ - ' + this.miresModel + ' - ',
        // }, {
        //   headers: {
        //     'Content-Type': 'application/json'
        //   }
        // }).then(res => {
        //   res.data.forEach(a => {
        //     a.state = 0
        //   })
        //   this.productList2 = res.data
        //   setTimeout(() => {
        //     this.productList2.forEach(a => {
        //       if (a.state == 1) this.toggleSelection(a)
        //     })
        //     this.addFibers()
        //   }, 200)
        // })
        if(this.multiFiberList.length == 0) {
          this.$message.error('请选择需要更改的数据')
          return
        }
        if (val === null || val === '') return
        this.$axios.post(this.$api.standardTree.selectStandardProductList, {
          model: '',
@@ -561,19 +862,36 @@
            'Content-Type': 'application/json'
          }
        }).then(res => {
          res.data.forEach(a => {
            a.state = 0
          })
          this.productList2 = res.data
          setTimeout(() => {
            this.productList2.forEach(a => {
              if (a.state == 1) this.toggleSelection(a)
          // å°†èŽ·å–çš„æ£€æµ‹é¡¹ä¿¡æ¯èµ‹å€¼
          this.detectionItems = []
          if(res.data != null && res.data.length != 0){
            res.data.forEach(a => {
              a.state = 0
            })
            this.addFibers()
          }, 200)
        })
            this.detectionItems = res.data
            this.detectionType = 1
            this.$set(this.detectionItems,'type',1)
          }
          // ç»™é€‰ä¸­çš„光纤带赋值
        for(let i= 0; i < this.fibersList.length; i++){
            this.multiFiberList.forEach(item => {
              if(this.fibersList[i].ident == item.ident){
                this.fibersList[i].model = this.miresModel // çº¤å¸¦è§„æ ¼
                this.fibersList[i].num = this.miresModel.replace('芯','') // å…‰çº¤æ£€æµ‹é‡
                this.fibersList[i].productList = this.detectionItems // æ£€æµ‹é¡¹
                this.miresStandards.forEach(a => {
                  if(a.id == this.miresStandard) {
                    this.fibersList[i].standard = a.code // å‚考标准
                  }
                })
              }
            })
        }
      })
      },
      addFiber() {
        // æœ€æ–°
        let colors2 = []
        if (this.packageInfo.num1 / this.colors.length > 1) {
          let num = this.packageInfo.num1 / this.colors.length
@@ -585,25 +903,23 @@
          colors2 = colors2.concat(this.colors)
        }
        this.fiberList = []
        let model = this.mireModel.split(' - ')[1]
        let standard = this.mireStandards.find(a => a.id == this.mireStandard).code
        // é€‰æ‹©äº†å…‰çº¤å¸¦
        if (this.packageInfo.ismiers) {
          if(this.selectFibers.length === 0){
            this.$message.error('未选择光纤带')
            return
          }
          this.selectFibers.forEach((a,index) => {
          if(this.multiFiberList.length != 0){
          this.multiFiberList.forEach((a,index) => {
            a.fiber = []
            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,
                model: model,
                standard: standard,
                productList: this.HaveJson(this.productList)
                model: null,
                noSplitModel: null,
                standard: null,
                fibersIdent: a.ident,
                productList: []
              }
              a.fiber.push(fiber)
              this.fiberList.push(fiber)
              this.fiberList.push(fiber)
            }
          })
        } else {
@@ -611,85 +927,327 @@
            a.fiber = []
            for (var i = 0; i < parseInt(a.testNum); i++) {
              let fiber = {
                ident: this.fiberList.length + 1,
                bushColor: a.color,
                color: colors2[(i+(parseInt(a.testNum))*index)>colors2.length?0:i+(parseInt(a.testNum))*index].label,
                model: model,
                standard: standard,
                productList: this.HaveJson(this.productList)
                model: null,
                noSplitModel: null,
                standard: null,
                productList: []
              }
              a.fiber.push(fiber)
              this.fiberList.push(fiber)
            }
          })
        }
      }else {
        this.fiberList = []
        let flag = true
        // æŒ‰ç…§é¡ºåºç”Ÿæˆå…‰çº¤è‰²æ ‡
        let colors2 = []
        if (this.packageInfo.num1 / this.colors.length > 1) {
          let num = this.packageInfo.num1 / this.colors.length
          if (this.packageInfo.num1 % this.colors.length > 0) num += 1
          for (var i = 0; i < num; i++) {
            colors2 = colors2.concat(this.colors)
          }
        } else {
          colors2 = colors2.concat(this.colors)
        }
        // æ ¹æ®å¥—管的测试量生成对应的数量的光纤数据
        this.selectBushing.forEach((item,index) =>{
          if(item.testNum != null && item.testNum != ''){
            for(let i =0; i < parseInt(item.testNum); i++){
              let fiber = {
                ident: this.fiberList.length + 1,
                bushColor: item.color,
                color: colors2[(i+(parseInt(item.testNum)*index))>colors2.length?0:i+(parseInt(item.testNum)*index)*index].label,
                model:  null,
                standard: null,
                productList: []
              }
              this.fiberList.push(fiber)
            }
          }else {
            flag = false
          }
        })
        if(!flag){
          this.$message.error('请填写光纤检测量')
          return
        }
      }
        // äºŒä»£
        // // æ˜¯å¦é€‰æ‹©å¥—管
        // if(this.selectBushing.length == 0) {
        //   this.$message.error('未选择套管')
        //   return
        // }
        // this.fiberList = []
        // let flag = true
        // // æŒ‰ç…§é¡ºåºç”Ÿæˆå…‰çº¤è‰²æ ‡
        // let colors2 = []
        // if (this.packageInfo.num1 / this.colors.length > 1) {
        //   let num = this.packageInfo.num1 / this.colors.length
        //   if (this.packageInfo.num1 % this.colors.length > 0) num += 1
        //   for (var i = 0; i < num; i++) {
        //     colors2 = colors2.concat(this.colors)
        //   }
        // } else {
        //   colors2 = colors2.concat(this.colors)
        // }
        // // æ ¹æ®å¥—管的测试量生成对应的数量的光纤数据
        // this.selectBushing.forEach((item,index) =>{
        //   if(item.testNum != null && item.testNum != ''){
        //     for(let i =0; i < parseInt(item.testNum); i++){
        //       let fiber = {
        //         ident: this.fiberList.length + 1,
        //         bushColor: item.color,
        //         color: colors2[(i+(parseInt(item.testNum)*index))>colors2.length?0:i+(parseInt(item.testNum)*index)*index].label,
        //         model:  null,
        //         standard: null,
        //         productList: []
        //       }
        //       this.fiberList.push(fiber)
        //     }
        //   }else {
        //     flag = false
        //   }
        // })
        // if(!flag){
        //   this.$message.error('请填写光纤检测量')
        //   return
        // }
        // æœ€åˆ
        // let colors2 = []
        // if (this.packageInfo.num1 / this.colors.length > 1) {
        //   let num = this.packageInfo.num1 / this.colors.length
        //   if (this.packageInfo.num1 % this.colors.length > 0) num += 1
        //   for (var i = 0; i < num; i++) {
        //     colors2 = colors2.concat(this.colors)
        //   }
        // } else {
        //   colors2 = colors2.concat(this.colors)
        // }
        // this.fiberList = []
        // let model = this.mireModel.split(' - ')[1]
        // let standard = this.mireStandards.find(a => a.id == this.mireStandard).code
        // if (this.packageInfo.ismiers) {
        //   if(this.selectFibers.length === 0){
        //     this.$message.error('未选择光纤带')
        //     return
        //   }
        //   this.selectFibers.forEach((a,index) => {
        //     a.fiber = []
        //     for (var i = 0; i < parseInt(a.num); i++) {
        //       let fiber = {
        //         bushColor: a.color,
        //         color: colors2[(i+(parseInt(a.num)*index))>colors2.length?0:i+(parseInt(a.num)*index)*index].label,
        //         model: model,
        //         standard: standard,
        //         productList: this.HaveJson(this.productList)
        //       }
        //       a.fiber.push(fiber)
        //       this.fiberList.push(fiber)
        //     }
        //   })
        // } else {
        //   this.selectBushing.forEach((a,index) => {
        //     a.fiber = []
        //     for (var i = 0; i < parseInt(a.testNum); i++) {
        //       let fiber = {
        //         bushColor: a.color,
        //         color: colors2[(i+(parseInt(a.testNum))*index)>colors2.length?0:i+(parseInt(a.testNum))*index].label,
        //         model: model,
        //         standard: standard,
        //         productList: this.HaveJson(this.productList)
        //       }
        //       a.fiber.push(fiber)
        //       this.fiberList.push(fiber)
        //     }
        //   })
        // }
      },
      addFibers() {
        if(this.selectBushing.length===0){
        // if(this.selectBushing.length===0){
        //   this.$message.error('未选择套管')
        //   return
        // }
        // this.fibersList = []
        // let standard = this.miresStandards.find(a => a.id == this.miresStandard).code
        // this.packageInfo.ismiers = true
        // this.fiberList = []
        // this.selectBushing.forEach(a => {
        //   a.fiber = []
        //   a.fibers = []
        //   for (var i = 0; i < parseInt(a.testNum); i++) {
        //     let fibers = {
        //       code: null,
        //       color: a.color,
        //       model: this.miresModel,
        //       standard: standard,
        //       num: a.testNum,
        //       productList: this.HaveJson(this.productList2),
        //       fiber: []
        //     }
        //     a.fibers.push(fibers)
        //     this.fibersList.push(fibers)
        //   }
        // })
        if(this.selectBushing.length == 0) {
          this.$message.error('未选择套管')
          return
        }
        // å¥—管的测试量  *  é€‰æ‹©çš„光纤带数量
        this.fibersList = []
        let standard = this.miresStandards.find(a => a.id == this.miresStandard).code
        this.packageInfo.ismiers = true
        this.fiberList = []
        this.selectBushing.forEach(a => {
          a.fiber = []
          a.fibers = []
          for (var i = 0; i < parseInt(a.testNum); i++) {
            let fibers = {
              code: null,
              color: a.color,
              model: this.miresModel,
              standard: standard,
              num: a.testNum,
              productList: this.HaveJson(this.productList2),
              fiber: []
            }
            a.fibers.push(fibers)
            this.fibersList.push(fibers)
        this.selectBushing.forEach(item => {
          for(let i = 0; i < parseInt(this.packageInfo.testNum); i++){
          let fibers = {
            ident: this.fibersList.length + 1,
            color: item.color,
            code: null,
            model: null,
            standard: null,
            num: null,
            fiber: [],
            productList: []
          }
          this.fibersList.push(fibers)
        }
        })
      },
      rowClickFiber(row, column, event,type){
        this.type = type
        if(this.active===1){
          if(type==0){
            let standard = null;
            try{
              standard = this.miresStandards.find(a => a.id == this.miresStandards)
            }catch(e){}
            if(standard&&standard.code=='委托要求'){
              this.isAskOnlyRead = false;
            }else{
              this.isAskOnlyRead = true;
            }
          }else{
            let standard = null;
            try{
              standard = this.mireStandards.find(a => a.id == this.mireStandard)
            }catch(e){}
            if(standard&&standard.code=='委托要求'){
              this.isAskOnlyRead = false;
            }else{
              this.isAskOnlyRead = true;
            }
        console.log('row',row);
        // this.type = type
        // if(this.active===1){
        //   if(type==0){
        //     let standard = null;
        //     try{
        //       standard = this.miresStandards.find(a => a.id == this.miresStandards)
        //     }catch(e){}
        //     if(standard&&standard.code=='委托要求'){
        //       this.isAskOnlyRead = false;
        //     }else{
        //       this.isAskOnlyRead = true;
        //     }
        //   }else{
        //     let standard = null;
        //     try{
        //       standard = this.mireStandards.find(a => a.id == this.mireStandard)
        //     }catch(e){}
        //     if(standard&&standard.code=='委托要求'){
        //       this.isAskOnlyRead = false;
        //     }else{
        //       this.isAskOnlyRead = true;
        //     }
        //   }
        // }
        // if(this.type==1){
        //   if (this.active !== 1) {
        //     this.sampleIds = []
        //     this.sampleIds.push(row.id)
        //   }
        // }
        // this.currentDetectionItems = row
        // this.detectionItems = row.productList
        // if(this.detectionItems === null) return
        // setTimeout(() => {
        //   this.detectionItems.forEach(a => {
        //     if (a.state == 1) this.toggleSelection(a)
        //   })
        // }, 200)
        if(type == 1) {
          this.fiberList = row.fiber
          if((row.model == null || row.model == '') && (row.standard == null || row.standard == '')){
            this.detectionItems = []
            return
          }
          if(row.model != null && row.model != ''){
          this.miresModel = row.model
          this.selectsStandardMethodByFLSSM2()
        }
        if(this.type==1){
          if (this.active !== 1) {
            this.sampleIds = []
            this.sampleIds.push(row.id)
          }
        }
        this.currentDetectionItems = row
        this.detectionItems = row.productList
        if(this.detectionItems === null) return
        setTimeout(() => {
          this.detectionItems.forEach(a => {
            if (a.state == 1) this.toggleSelection(a)
          if(row.standard !=null && row.standard != ''){
          this.miresStandard = this.miresStandards.find(a => a.code == row.standard).id
        }
          this.$axios.post(this.$api.standardTree.selectStandardProductList, {
          model: '',
          standardMethodListId: this.miresStandard,
          factory: '中天科技检测中心 - é€šä¿¡äº§å“å®žéªŒå®¤ - å…‰çº¤å¸¦ - ' + this.miresModel + ' - ',
        }, {
          headers: {
            'Content-Type': 'application/json'
          }
        }).then(res => {
          // å°†èŽ·å–çš„æ£€æµ‹é¡¹ä¿¡æ¯èµ‹å€¼
          this.detectionItems = []
          if(res.data != null && res.data.length != 0){
            this.detectionItems = res.data
            this.detectionType = 1
            this.$set(this.detectionItems,'type',1)
            if (row.productList != null && row.productList.length > 0) {
              let product =  JSON.parse(JSON.stringify(row.productList))
              setTimeout(() => {
                product.forEach(p => {
                let rowToSelect = this.detectionItems.find(item => item.id === p.id);
                if (rowToSelect) {
                  this.toggleSelection(rowToSelect);
                }
              });
            },200)
            }
          }
        })
        },1000)
      }else if(type == 0) {
        if((row.noSplitModel == null || row.noSplitModel == '') && (row.standard == null || row.standard == '')){
            this.detectionItems = []
            return
          }
        if(row.model != null && row.model != ''){
          this.mireModel = row.noSplitModel
          this.selectsStandardMethodByFLSSM()
        }
        setTimeout(() => {
          if(row.standard !=null && row.standard != ''){
          this.mireStandard = this.mireStandards.find(a => a.code == row.standard).id
        }
        this.$axios.post(this.$api.standardTree.selectStandardProductList, {
          model: this.mireModel.split(' - ')[1],
          standardMethodListId: this.mireStandard,
          factory: ''
        }, {
          headers: {
            'Content-Type': 'application/json'
          }
        }).then(res => {
          this.detectionItems = []
          if(res.data != null && res.data.length != 0){
           res.data.forEach(a => {
            a.state = 0
          })
        }, 200)
      },
          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))
            setTimeout(() => {
              product.forEach(p => {
                let rowToSelect = this.detectionItems.find(item => item.id === p.id);
                if (rowToSelect) {
                  this.toggleSelection(rowToSelect);
                }
              });
            },200)
            }
          }
        })
        },1000);
      }
    },
      toggleSelection(row) {
        this.$refs.productTable.toggleRowSelection(row, true);
      },
@@ -704,6 +1262,7 @@
      },
      handleAll(e) {
        if (e.length > 0) {
          console.log(this.detectionItems);
          this.detectionItems.map(m => {
            m.state = 1
            return m
@@ -804,8 +1363,8 @@
      },
      upProductSelect(selection, row) {
        row.state = row.state == 1 ? 0 : 1
        if(this.multiFiberList.length > 0){
          this.multiFiberList.map(item => {
        if(this.selectFiberList.length > 0){
          this.selectFiberList.map(item => {
            item.productList.map(m=>{
              if(m.id == row.id){
                m.state = row.state;
@@ -881,16 +1440,40 @@
        })
      },
      save(){
        if(this.bushing.length === 0){
          this.$message.error('缺少配置无法保存')
          return
        }
        // if(this.bushing.length === 0){
        //   this.$message.error('缺少配置无法保存')
        //   return
        // }
        // for(let a in this.bushing){
        //   if(this.bushing[a].fibers.length===0&&this.bushing[a].fiber.length===0){
        //     this.$message.error(this.bushing[a].color+'管色标套管缺少配置无法保存')
        //     return
        //   }
        // }
        // this.sample.forEach(a=>{
        //   a.bushing = this.bushing
        // })
        // this.$message.success('已保存')
        // this.$emit('saveFiberopticConfig')
        if(this.bushing.length === 0){
          this.$message.error('缺少套管无法保存')
          return
        }
        this.bushing.forEach(item=>{
          // å¦‚果光纤带有值
          if(this.fibersList.length != 0) {
              // this.fibersList.forEach(a=>{
              //   a.fiber = this.fiberList
              // })
              item.fibers = this.fibersList // å…‰çº¤å¸¦
              item.fiber = [] // å…‰çº¤
          }else {
            // å¦‚果光纤带没有值
            item.fibers = [] // å…‰çº¤å¸¦
            item.fiber = this.fiberList // å…‰çº¤
          }
        })
        this.sample.forEach(a=>{
          a.bushing = this.bushing
        })
src/components/do/b1-inspect-order-plan/Inspection.vue
@@ -418,7 +418,7 @@
                      <i class="el-icon-caret-left table_caret" style="width: 16px;" @click="caretSample(-1)" v-if="!currentFiberOpticTape&&!currentFiberOptic"></i>
                      <div :style="`font-family:${n.v.ff} !important;overflow: hidden;white-space: nowrap;width: calc(100% - 32px);`">{{currentSample.sampleCode}}</div>
                      <i class="el-icon-caret-right table_caret" style="width: 16px;"
                      v-if="!currentFiberOpticTape&&!currentFiberOptic"@click="caretSample(1)"></i>
                      v-if="!currentFiberOpticTape&&!currentFiberOptic" @click="caretSample(1)"></i>
                    </div>
                  </template>
                  <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='样品型号'">
@@ -1150,16 +1150,16 @@
        })
      },
      currentTable(val1, val0) {
        if (val0 != null && val1 != val0) {
          if(this.tableLists.find(m=>m.templateId==val1)&&(this.tableLists.find(m=>m.templateId==val1).templateName=='成品缆检验原始记录')){
            if(this.casing.length>0){
              this.handleChange(this.casing[0].id,3)
            }
            return
        if(val0 !=null && val1 != val0){
        if(this.tableLists.find(m=>m.templateId==val1)&&(this.tableLists.find(m=>m.templateId==val1).templateName=='成品缆检验原始记录')){
          if(this.casing.length>0){
            this.handleChange(this.casing[0].id,3)
          }
          if(this.changeType&&this.changeType>0){
            return
          }
          return
        }
        if(this.changeType && this.changeType>0){
          return
        }
          this.tableLists.forEach(async (m, i) => {
            if (m.templateId == val1) {
              let list = await this.getCurrentProduct(this.currentSample.id,0)
@@ -1203,6 +1203,7 @@
              }
            }
          })
          this.handleCasing()
        }
      },
      equipForm:{
@@ -2115,7 +2116,7 @@
        })
      },
      async handleChange(m,type){
        this.changeType = type
        this.changeType = type;
        if(m){
          let list = await this.getCurrentProduct(m,type)
          if(list.length>0){
src/components/view/b1-inspect-order-plan.vue
@@ -303,14 +303,14 @@
                        font: '数据查看',
                        type: 'text',
                        method: 'handleDataLook',
            /* disabFun: (row, index) => {
              const user = JSON.parse(localStorage.getItem('user'))
              let currentUserName = ''
              if(user){
                currentUserName = user.name
              }
                            return row.userName!=currentUserName && row.checkName!=currentUserName
                        } */
            //disabFun: (row, index) => {
              //const user = JSON.parse(localStorage.getItem('user'))
             // let currentUserName = ''
             // if(user){
              //  currentUserName = user.name
              //}
                            //return row.userName.indexOf(currentUserName)<0 && row.checkName.indexOf(currentUserName)<0
                        //}
                    },{
                            id: '',
                            font: '检验',
@@ -452,7 +452,6 @@
                }
            },
            changeCheckBox(val) {
                console.log(111,val)
                this.componentData.entity.userId = val?0:null
                this.refreshTable()
            },
@@ -469,7 +468,7 @@
                    this.sampleUserForm = {
                        entrustCode: row.entrustCode,
                        insSampleId: row.id,
                        sonLaboratory: this.componentData.entity.sonLaboratory,
            sonLaboratory: row.sonLaboratory,
                    }
                    this.claimVisible = true
                }
src/components/view/b1-inspection-order.vue
@@ -340,7 +340,7 @@
            </el-dialog>
        </div>
        <div style="width: 100%;height: 100%;" v-if="active >0">
            <Add :active="active" :currentId="currentId" v-if="active<4" />
            <Add :active="active" :currentId="currentId" v-if="active<4" :examine = "examine" />
        </div>
    <el-dialog title="标签打印" :visible.sync="printDialogVisible" width="40%" top="5vh">
      <div style="width:100%;height: 400px;overflow-y: auto;" v-loading="loadPint">
@@ -461,6 +461,7 @@
        data() {
            return {
        deleteTilte:'撤销',
        examine: null,
        deleteList:[],
        loadPint:false,
        checkAll: false,
@@ -952,6 +953,7 @@
                // this.verifyDialogVisible = true;
                this.active = 3;
                this.currentId = row.id
        this.examine = 1
            },
            // æ’¤é”€
            handlEquash(row) {
@@ -1112,6 +1114,7 @@
            // ä¸‹å•
            playOrder(num) {
                this.active = num
        this.examine = 0
        this.refreshTable('page')
            },
            handleTab(m, i) {
src/view/enter.vue
@@ -183,7 +183,8 @@
                            localStorage.setItem('user', JSON.stringify({
                              account: this.ruleForm.account,
                              password: this.ruleForm.pwd,
                              name: res.data.name
                              name: res.data.name,
                userId: res.data.userId
                            }))
              sessionStorage.setItem('token', res.data.token)
              sessionStorage.setItem('reToken', res.data.reToken)