value
2024-06-03 2e9370979f871bf47f6dc145c49d7bf32ffa4b51
src/components/do/b1-ins-order/fiberoptic-config.vue
@@ -1,299 +1,698 @@
<template>
<div class="ins_order_config">
  <div>
    <el-row class="title">
      <el-col :span="6" style="padding-left: 20px;">光纤配置</el-col>
      <el-col :span="18" style="text-align: right;">
        <el-button size="medium" type="primary" @click="save" :loading="saveLoad">保 存</el-button>
        <el-button size="medium" @click="$parent.playOrder(0)">
          <span style="color: #3A7BFA;">取 消</span>
        </el-button>
      </el-col>
    </el-row>
  <div class="ins_order_config">
    <div>
      <el-row class="title">
        <el-col :span="6" style="padding-left: 20px;">光纤配置</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="upNum()" :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" @change="upNum" :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>
              </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>
              </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">
                    <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.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">
          <div class="grid-content">
            <h5>光纤带
              <el-button size="mini" type="primary" class="btns" @click="addFibers"
                :disabled="packageInfo.ismiers===false||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>
            </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>
            <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)"
              :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">
              </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-column prop="num" label="光纤检测量" show-overflow-tooltip align="center">
              </el-table-column>
            </el-table>
          </div>
        </el-col>
        <el-col :span="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></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>
            <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)"
              :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">
                    <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>
  </div>
  <div class="center">
    <el-row :gutter="10" style="margin-bottom: 10px;">
      <el-col :span="9">
        <div class="grid-content">
          <h4>套餐</h4>
          <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;">GYTA53</span>
            </div>
            <el-radio-group v-model="packageInfo.radio" size="small">
              <el-radio :label="0">全检</el-radio>
              <el-radio :label="1">抽检</el-radio>
            </el-radio-group>
          </div>
          <div class="search-item" style="margin-bottom: 8px;padding: 0 12px;box-sizing: border-box;">
            <label style="width: 70px;">样品编号</label>
            <el-input v-model="packageInfo.input" placeholder="请输入" size="small"></el-input>
          </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.input" placeholder="请输入" size="small"></el-input>
            </div>
            <div class="search-item" style="margin-right: 10px;">
              <label style="width: 70px;">标准量</label>
              <el-input v-model="packageInfo.input" placeholder="请输入" size="small"></el-input>
            </div>
            <div class="search-item">
              <label style="width: 70px;">检测量</label>
              <el-input v-model="packageInfo.input" placeholder="请输入" size="small"></el-input>
            </div>
          </div>
          <el-table
            ref="table0"
            :data="tableData"
            tooltip-effect="dark"
            style="width: 100%"
            height="150px"
            size="small"
            @selection-change="handleSelectionChange">
            <el-table-column
              type="selection"
              width="55">
            </el-table-column>
            <el-table-column
              label="管色标"
              show-overflow-tooltip>
              <template slot-scope="scope">{{ scope.row.date }}</template>
            </el-table-column>
            <el-table-column
              prop="name"
              label="标量"
              show-overflow-tooltip>
            </el-table-column>
            <el-table-column
              prop="address"
              label="测试量"
              show-overflow-tooltip>
            </el-table-column>
          </el-table>
        </div>
      </el-col>
      <el-col :span="15">
        <div class="grid-content">
          <h4>检测项信息</h4>
          <el-table
            ref="table1"
            :data="tableData"
            tooltip-effect="dark"
            style="width: 100%"
            height="274px"
            size="small"
            @selection-change="handleSelectionChange">
            <el-table-column
              type="selection"
              width="55">
            </el-table-column>
            <el-table-column
              label="实验室"
              show-overflow-tooltip>
              <template slot-scope="scope">{{ scope.row.date }}</template>
            </el-table-column>
            <el-table-column
              prop="name"
              label="检测项目"
              show-overflow-tooltip>
            </el-table-column>
            <el-table-column
              prop="address"
              label="试验方法"
              show-overflow-tooltip>
            </el-table-column>
            <el-table-column
              prop="address"
              label="单价"
              width="70"
              show-overflow-tooltip>
            </el-table-column>
            <el-table-column
              prop="address"
              label="单位"
              width="70"
              show-overflow-tooltip>
            </el-table-column>
            <el-table-column
              prop="address"
              label="预计时间"
              show-overflow-tooltip>
            </el-table-column>
            <el-table-column
              prop="address"
              label="检测标准"
              show-overflow-tooltip>
            </el-table-column>
            <el-table-column
              prop="address"
              label="检测要求"
              show-overflow-tooltip>
            </el-table-column>
          </el-table>
        </div>
      </el-col>
    </el-row>
    <el-row :gutter="10">
      <el-col :span="12">
        <div class="grid-content">
          <h4>光纤带</h4>
          <div class="btns">
            <el-button size="small" type="primary">生成光纤带</el-button>
            <el-button size="small" type="primary">保存光纤带项目</el-button>
          </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="width: 50%;margin-right: 16px;">
              <label style="width: 80px;">纤带类型</label>
              <el-select v-model="tape.value" placeholder="请选择" size="small" style="width: 100%;">
                <el-option
                  v-for="item in options"
                  :key="item.value"
                  :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="tape.value" placeholder="请选择" size="small" style="width: 100%;">
                <el-option
                  v-for="item in options"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
                </el-option>
              </el-select>
            </div>
          </div>
          <el-table
            ref="table2"
            :data="tableData"
            tooltip-effect="dark"
            style="width: 100%"
            height="270px"
            size="small"
            @selection-change="handleSelectionChange">
            <el-table-column
              type="selection"
              width="55">
            </el-table-column>
            <el-table-column
              label="光纤带编号"
              show-overflow-tooltip>
              <template slot-scope="scope">{{ scope.row.date }}</template>
            </el-table-column>
            <el-table-column
              prop="name"
              label="光纤带规格"
              show-overflow-tooltip>
            </el-table-column>
            <el-table-column
              prop="address"
              label="参考标准"
              show-overflow-tooltip>
            </el-table-column>
            <el-table-column
              prop="address"
              label="光纤检测量"
              show-overflow-tooltip>
            </el-table-column>
          </el-table>
        </div>
      </el-col>
      <el-col :span="12">
        <div class="grid-content">
          <h4>光纤</h4>
          <div class="btns">
            <el-button size="small" type="primary">光纤配色</el-button>
            <el-button size="small" type="primary">保存光纤项目</el-button>
          </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="width: 50%;margin-right: 16px;">
              <label style="width: 80px;">光纤类型</label>
              <el-select v-model="tape.value" placeholder="请选择" size="small" style="width: 100%;">
                <el-option
                  v-for="item in options"
                  :key="item.value"
                  :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="tape.value" placeholder="请选择" size="small" style="width: 100%;">
                <el-option
                  v-for="item in options"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
                </el-option>
              </el-select>
            </div>
          </div>
          <el-table
            ref="table3"
            :data="tableData"
            tooltip-effect="dark"
            style="width: 100%"
            height="270px"
            size="small"
            @selection-change="handleSelectionChange">
            <el-table-column
              type="selection"
              width="55">
            </el-table-column>
            <el-table-column
              label="管套色标"
              show-overflow-tooltip>
              <template slot-scope="scope">{{ scope.row.date }}</template>
            </el-table-column>
            <el-table-column
              prop="name"
              label="光纤色标"
              show-overflow-tooltip>
            </el-table-column>
            <el-table-column
              prop="address"
              label="光纤规格"
              show-overflow-tooltip>
            </el-table-column>
            <el-table-column
              prop="address"
              label="参考标准"
              show-overflow-tooltip>
            </el-table-column>
          </el-table>
        </div>
      </el-col>
    </el-row>
  </div>
</div>
</template>
<script>
export default {
  data(){
    return{
      saveLoad:false,
      packageInfo:{
        radio:1,
        input:''
  export default {
    props: {
      active: {
        type: Number,
        default: () => 0
      },
      tableData:[],
      tape:{
        value:''
    },
    data() {
      return {
        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
      }
    },
    computed: {
      isAllDisabled() {
        return this.multiFiberList.length > 0||this.currentDetectionItems||this.active!=1
      },
      options:[]
    },
    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
          }
        }
      })
      this.models = this.models.replace(',', '')
      this.packageInfo.ismiers = this.models.split(',').every(e=>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=[]
          if(a.fiber===null)a.fiber=[]
          if(this.packageInfo.ismiers){
            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)
            })
          }
        })
      }
      this.getTypeDicts1()
      this.getStandTreeBySampleType()
      this.getStandTreeBySampleType2()
    },
    methods: {
      handleSelectionChange(val) {
        this.selectFibers = val
        this.multiFiberList = val
      },
      handleSelectionChange1(val) {
        this.selectBushing = val
      },
      handleSelectionChange2(val){},
      handleSelectionChange4(val){
        this.multiFiberList = val
      },
      outConfig() {
        this.$parent.configShow = false
      },
      getTypeDicts1() {
        this.$axios.post(this.$api.enums.selectEnumByCategory, {
          category: "色标"
        }).then(res => {
          this.colors = res.data
        })
      },
      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)
          }
        } 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.sample,
              value: a.sample
            })
          })
        })
      },
      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)
            })
          }, 200)
        })
      },
      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)
            })
          }, 200)
        })
      },
      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 = []
        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 => {
            a.fiber = []
            for (var i = 0; i < parseInt(a.num); i++) {
              let fiber = {
                bushColor: a.color,
                color: colors2[i].label,
                model: model,
                standard: standard,
                productList: this.HaveJson(this.productList)
              }
              a.fiber.push(fiber)
              this.fiberList.push(fiber)
            }
          })
        } else {
          this.selectBushing.forEach(a => {
            a.fiber = []
            for (var i = 0; i < parseInt(a.testNum); i++) {
              let fiber = {
                bushColor: a.color,
                color: colors2[i].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)
          }
        })
      },
      rowClickFiber(row, column, event,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;
            }
          }
        }
        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)
      },
      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) {
          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.$nextTick(() => {
          this.$refs.productTable.doLayout()
        })
      },
      upProductSelect(selection, row) {
        row.state = row.state == 1 ? 0 : 1
        if(this.multiFiberList.length > 0){
          this.multiFiberList.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;
            });
        }
      },
      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('已保存')
      }
    }
  },
  methods:{
    save(){},
    handleSelectionChange(val) {}
  }
}
</script>
<style scoped>
@@ -304,19 +703,27 @@
    overflow-x: hidden;
  }
  .ins_order_config::-webkit-scrollbar {
    width: 0;
  }
  .title {
    height: 60px;
    line-height: 60px;
  }
  .center{
  .center {
    width: 100%;
    height: calc(100% - 60px);
  }
  .grid-content{
  .grid-content {
    background: #fff;
    border-radius: 4px;
    box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.05);
  }
  .grid-content h4{
  .grid-content h5 {
    color: #3A7BFA;
    font-weight: 400;
    line-height: 32px;
@@ -324,22 +731,31 @@
    box-sizing: border-box;
    border-bottom: 1px solid #eee;
  }
  .search-item{
  .search-item {
    display: flex;
    align-items: center;
    line-height: 36px;
  }
  .search-item label{
  .search-item label {
    width: 90px;
    font-size: 12px;
    color: #606266;
    /* text-align: right; */
  }
  .btns{
  .btns {
    margin: 8px 0 8px 10px;
  }
  >>>.el-table th.el-table__cell>.cell{
  >>>.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>