value
2024-05-28 66e5fe718384639f45881a1eec822564418f75ef
src/components/do/b1-ins-order/fiberoptic-config.vue
@@ -39,17 +39,19 @@
              </div>
              <div class="search-item">
                <label style="width: 70px;">检测量</label>
                <el-input v-model="packageInfo.num3" placeholder="请输入" size="small" @change="upNum" :disabled="packageInfo.radio===0"></el-input>
                <el-input v-model="packageInfo.num3" placeholder="请输入" size="small" @change="upNum"
                  :disabled="packageInfo.radio===0"></el-input>
              </div>
            </div>
            <el-table ref="table0" :data="bushing" tooltip-effect="dark" style="width: 100%" height="203px"
              size="small" @selection-change="handleSelectionChange1">
            <el-table ref="table0" :data="bushing" tooltip-effect="dark" style="width: 100%" height="203px" size="small"
              @selection-change="handleSelectionChange1">
              <el-table-column type="selection" width="45">
              </el-table-column>
              <el-table-column label="管色标" show-overflow-tooltip>
                <template slot-scope="scope">
                  <el-select v-model="scope.row.color" size="mini">
                    <el-option v-for="(color,i) in colors" :key="i" :label="color.lable" :value="color.value"></el-option>
                    <el-option v-for="(color,i) in colors" :key="i" :label="color.lable"
                      :value="color.value"></el-option>
                  </el-select>
                </template>
              </el-table-column>
@@ -91,56 +93,65 @@
      <el-row :gutter="10">
        <el-col :span="12">
          <div class="grid-content">
            <h5>光纤带<el-button size="mini" type="primary" class="btns">生成光纤带</el-button></h5>
            <h5>光纤带
              <el-button size="mini" type="primary" class="btns" @click="addFibers"
                :disabled="miresModel===null||miresStandard===null">生成光纤带</el-button>
              <el-button size="mini" class="btns" @click="clearFibers" :disabled="selectBushing.length === 0">清除</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="tape.value" placeholder="请选择" size="small" style="width: 100%;" :disabled="selectBushing.length===0">
                  <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
                <el-select v-model="miresModel" placeholder="请选择" size="small" style="width: 100%;"
                  :disabled="bushing.length===0">
                  <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="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-select v-model="miresStandard" placeholder="请选择" size="small" style="width: 100%;"
                  :disabled="miresModel===null" @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="tableData" tooltip-effect="dark" style="width: 100%" height="270px"
              size="small" @selection-change="handleSelectionChange">
            <el-table ref="table2" :data="fibersList" tooltip-effect="dark" style="width: 100%" height="270px"
              size="small" @selection-change="handleSelectionChange" highlight-current-row>
              <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 prop="code" label="光纤带编号" show-overflow-tooltip align="center">
              </el-table-column>
              <el-table-column prop="name" label="光纤带规格" show-overflow-tooltip>
              <el-table-column prop="model" label="光纤带规格" show-overflow-tooltip align="center">
              </el-table-column>
              <el-table-column prop="address" label="参考标准" show-overflow-tooltip>
              <el-table-column prop="standard" label="参考标准" show-overflow-tooltip align="center">
              </el-table-column>
              <el-table-column prop="address" label="光纤检测量" show-overflow-tooltip>
              <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">光纤配色</el-button></h5>
            <h5>光纤<el-button size="mini" type="primary" class="btns" @click="addFiber"
                :disabled="mireModel===null||mireStandard===null">光纤配色</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">
                <el-select v-model="mireModel" placeholder="请选择" size="small" style="width: 100%;"
                  :disabled="bushing.length===0">
                  <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"
                @focus="selectsStandardMethodByFLSSM()" @change="(value)=>methodChange(value)">
                <el-select v-model="mireStandard" placeholder="请选择" size="small" style="width: 100%;"
                  :disabled="mireModel===null" @focus="selectsStandardMethodByFLSSM()"
                  @change="(value)=>methodChange(value)">
                  <el-option v-for="item in mireStandards" :key="item.id" :label="item.code" :value="item.id">
                  </el-option>
                </el-select>
@@ -155,7 +166,8 @@
              <el-table-column prop="color" label="光纤色标" width="120">
                <template slot-scope="scope">
                  <el-select v-model="scope.row.color" size="mini">
                    <el-option v-for="(color,i) in colors" :key="i" :label="color.lable" :value="color.value"></el-option>
                    <el-option v-for="(color,i) in colors" :key="i" :label="color.lable"
                      :value="color.value"></el-option>
                  </el-select>
                </template>
              </el-table-column>
@@ -197,67 +209,68 @@
        mireModel: null,
        mireStandard: [],
        mireStandards: null,
        miresModels: [],
        miresModel: null,
        miresStandard: [],
        miresStandards: null,
        selectBushing: [],
        productList: [],
        fiberList: []
        productList2: [],
        fiberList: [],
        fibersList: [],
        selectFibers: []
      }
    },
    mounted() {
      this.$parent.sampleIds.forEach(a=>{
      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)
            this.models += (',' + this.$parent.sampleList[i].model)
            break
          }
        }
      })
      this.models = this.models.replace(',','')
      this.models = this.models.replace(',', '')
      this.getTypeDicts1()
      this.getTypeDicts2()
      this.getStandTreeBySampleType()
      this.getStandTreeBySampleType2()
    },
    methods: {
      save() {},
      handleSelectionChange(val) {},
      handleSelectionChange1(val){
      handleSelectionChange(val) {
        this.selectFibers = val
      },
      handleSelectionChange1(val) {
        this.selectBushing = val
      },
      outConfig(){
      outConfig() {
        this.$parent.configShow = false
      },
      getTypeDicts1() {
         this.$axios.post(this.$api.enums.selectEnumByCategory, {
            category: "色标"
         }).then(res => {
        this.$axios.post(this.$api.enums.selectEnumByCategory, {
          category: "色标"
        }).then(res => {
          this.colors = res.data
         })
        })
      },
      getTypeDicts2() {
         this.$axios.post(this.$api.enums.selectEnumByCategory, {
            category: "线芯"
         }).then(res => {
          this.wires = res.data
         })
      },
      upNum(){
        if(this.packageInfo.radio === 0){
      upNum() {
        if (this.packageInfo.radio === 0) {
          this.packageInfo.num3 = this.packageInfo.num2
        }
        if(parseInt(this.packageInfo.num2) < parseInt(this.packageInfo.num3)){
        if (parseInt(this.packageInfo.num2) < parseInt(this.packageInfo.num3)) {
          this.packageInfo.num3 = this.packageInfo.num2
        }
        if(this.packageInfo.num1!==null&&this.packageInfo.num1!==''
        &&this.packageInfo.num2!==null&&this.packageInfo.num2!==''
        &&this.packageInfo.num3!=null&&this.packageInfo.num3!==''){
        if (this.packageInfo.num1 !== null && this.packageInfo.num1 !== '' &&
          this.packageInfo.num2 !== null && this.packageInfo.num2 !== '' &&
          this.packageInfo.num3 != null && this.packageInfo.num3 !== '') {
          let colors2 = []
          if(this.packageInfo.num1 / this.colors.length > 1){
          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
            if (this.packageInfo.num1 % this.colors.length > 0) num += 1
            for (var i = 0; i < num; i++) {
              colors2 = colors2.concat(this.colors)
            }
          }else{
          } else {
            colors2 = colors2.concat(this.colors)
          }
          this.bushing = []
@@ -272,14 +285,17 @@
            }
            this.bushing.push(bushing)
          }
        }else{
        } else {
          this.bushing = []
        }
      },
      getStandTreeBySampleType(){
        this.$axios.get(this.$api.standardTree.getStandTreeBySampleType).then(res=>{
      getStandTreeBySampleType() {
        this.$axios.post(this.$api.standardTree.getStandTreeBySampleType, {
          laboratory: '通信产品实验室',
          sampleType: '光纤'
        }).then(res => {
          this.mireModels = []
          res.data.forEach(a=>{
          res.data.forEach(a => {
            this.mireModels.push({
              label: a.model,
              value: a.sample + ' - ' + a.model
@@ -287,15 +303,38 @@
          })
        })
      },
      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.sample + ' - ' + a.model
            })
          })
        })
      },
      selectsStandardMethodByFLSSM() {
        this.mireStandards = []
        this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, {
          tree: '中天科技检测中心 - 通信产品实验室 - 光纤 - ' + this.mireModel
        }).then(res => {
          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
        if (val === null || val === '') return
        this.$axios.post(this.$api.standardTree.selectStandardProductList, {
          model: this.mireModel.split(' - ')[1],
          standardMethodListId: val,
@@ -316,36 +355,111 @@
          }, 200)
        })
      },
      addFiber(){
      methodChange2(val) {
        if (val === null || val === '') return
        this.$axios.post(this.$api.standardTree.selectStandardProductList, {
          model: this.miresModel.split(' - ')[1],
          standardMethodListId: val,
          factory: ''
        }, {
          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){
        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
          if (this.packageInfo.num1 % this.colors.length > 0) num += 1
          for (var i = 0; i < num; i++) {
            colors2 = colors2.concat(this.colors)
          }
        }else{
        } 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
        this.selectBushing.forEach(a=>{
          for (var i = 0; i < a.num3; i++) {
            if(this.packageInfo.ismiers){
            }else{
        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 => {
          this.fibersList.forEach(a => {
            for (var i = 0; i < parseInt(a.num); i++) {
              let fiber = {
                bushColor: a.color,
                color: colors2[i].label,
                model: model,
                standard: standard
                standard: standard,
                product: this.productList
              }
              a.fiber.push(fiber)
              this.fiberList.push(fiber)
            }
          })
        } else {
          // this.selectBushing.forEach(a => {
          this.bushing.forEach(a => {
            for (var i = 0; i < parseInt(a.num3); i++) {
              let fiber = {
                bushColor: a.color,
                color: colors2[i].label,
                model: model,
                standard: standard,
                product: this.productList
              }
              a.fiber.push(fiber)
              this.fiberList.push(fiber)
            }
          })
        }
      },
      addFibers() {
        this.fibersList = []
        let model = this.miresModel.split(' - ')[1]
        let standard = this.miresStandards.find(a => a.id == this.miresStandard).code
        this.packageInfo.ismiers = true
        this.fiberList = []
        this.bushing.forEach(a => {
        // this.selectBushing.forEach(a => {
          a.fiber = []
          for (var i = 0; i < parseInt(a.num3); i++) {
            let fibers = {
              code: null,
              color: a.color,
              model: model,
              standard: standard,
              num: a.num3,
              product: this.HaveJson(this.productList2),
              fiber: []
            }
            a.fibers.push(fibers)
            this.fibersList.push(fibers)
          }
        })
      },
      clearFibers(){
        this.packageInfo.ismiers = false
        this.fibersList = []
        this.bushing.forEach(a=>{
          a.fibers = []
        })
      },
      save(){
        console.log(this.bushing);
      }
    }
  }