licp
2024-10-14 051e5b520f0b94dd409d4fd90ea8fc350a943f9d
src/components/do/b1-inspect-order-plan/circuit-parameters2.vue
@@ -1,21 +1,21 @@
<template>
  <div class="circuit-parameters">
    <el-divider></el-divider>
    <el-row :gutter="5" style="width: calc(100% - 1px);margin-bottom: 10px;">
    <el-row :gutter="8" style="width: calc(100% - 1px);margin-bottom: 10px;">
      <el-col :span="17">
        <el-row>
          <el-col :span="23" style="display: flex;flex-wrap: wrap;">
            <table border="1" cellpadding="10" style="margin: 0 10px 10px 0;" v-for="(item,index) in insProductNew" :key="index + 'ppp'" v-show="isMore?true:(index<3?true:false)">
            <table border="1" cellpadding="10" style="margin: 4px 10px 10px 0;width: 32%;" v-for="(item,index) in insProductNew" :key="index + 'ppp'" v-show="isMore?true:(index<3?true:false)">
              <tr>
                <td style="text-align: center;background: #F0F1F5;">
                  <el-tooltip effect="dark" :content="item.inspectionItemSubclass" placement="top-start"><span style="display: inline-block;width: 95px;" class="single-line-ellipsis">{{ item.inspectionItemSubclass }}</span>
                  </el-tooltip>
                </td>
                <td>
                  <el-input size="small" placeholder="设备名称" v-model="item.equipName" style="width: 95px;" readonly></el-input>
                  <el-input size="small" placeholder="设备名称" v-model="item.equipName" readonly></el-input>
                </td>
                <td>
                  <el-select v-model="item.equipValue" placeholder="设备编码" size="small" style="width: 95px;"  :disabled="state>1" @focus="methodFocus(item)" @change="m=>handleEquip(m,item)">
                  <el-select v-model="item.equipValue" placeholder="设备编码" size="small"  :disabled="state>1" @focus="methodFocus(item)" @change="m=>handleEquip(m,item)">
                    <el-option
                      v-for="m in item.equipOptions"
                      :key="m.value"
@@ -33,12 +33,12 @@
          </el-col>
        </el-row>
      </el-col>
      <el-col :span="7">
      <el-col :span="7" v-if="!isLook">
        <div style="display: flex;align-items: center;justify-content: flex-end;" class="btns">
          <el-button type="primary" size="small" @click="addList(allBandList)" :disabled="state>1">添加频段</el-button>
          <el-button size="small" @click="deleteList(allBandList.length-1,allBandList,'删除频段')" :disabled="state>1">删除频段</el-button>
          <el-button type="primary" size="small" @click="addList(angleList)" v-if="!(state>1)&&intermodulationNum>0">添加角度</el-button>
          <el-button size="small" @click="deleteList(angleList.length-1,angleList)" v-if="!(state>1)&&intermodulationNum>0">删除角度</el-button>
          <el-button type="primary" size="small" @click="addList(allBandList,'频段')" :disabled="state>1" style="margin: 4px;">添加频段</el-button>
          <el-button size="small" @click="deleteList(allBandList.length-1,allBandList,'删除频段')" :disabled="state>1" style="margin: 4px;">删除频段</el-button>
          <el-button type="primary" size="small" @click="addList(angleList)" v-if="!(state>1)&&intermodulationNum>0" style="margin: 4px;">添加角度</el-button>
          <el-button size="small" @click="deleteList(angleList.length-1,angleList)" v-if="!(state>1)&&intermodulationNum>0" style="margin: 4px;">删除角度</el-button>
        </div>
      </el-col>
    </el-row>
@@ -72,7 +72,7 @@
        </el-select>
        <el-button type="primary" size="small" @click="addList(h.projectList,'互调')" style="margin-left: 16px;" v-if="intermodulationNum>0&&!(state>1)">添加互调</el-button>
        <el-button size="small" @click="deleteList(0,h.projectList,'互调')" v-if="intermodulationNum>0&&!(state>1)">删除互调</el-button>
        <el-button type="primary" size="small" @click="save(h,y)" :disabled="state>1" :loading="loading[y]" style="margin-left: 16px;">保 存</el-button>
        <el-button type="primary" size="small" @click="save(h,y)" :disabled="state>1" :loading="loading[y]" style="margin-left: 16px;" v-show="!isLook">保 存</el-button>
      </div>
      <el-divider></el-divider>
      <div class="circuit-parameters-item-content">
@@ -100,8 +100,8 @@
                    </td>
                    <td :rowspan="n.angleList.length+1">
                      <el-button icon="el-icon-minus" circle size="mini" type="danger"
                      @click="deleteList(n.portList.length-1,n.portList)" :disabled="state>1"></el-button>
                      <el-button icon="el-icon-plus" circle size="mini" type="primary" @click="addList(n.portList)" :disabled="state>1"></el-button>
                      @click="deleteList(n.portList.length-1,n.portList)" :disabled="state>1" style="margin: 5px;"></el-button>
                      <el-button icon="el-icon-plus" circle size="mini" type="primary" @click="addList(n.portList)" :disabled="state>1" style="margin: 5px;"></el-button>
                    </td>
                  </tr>
                  <tr>
@@ -143,7 +143,7 @@
                    </td>
                  </tr>
                  <tr>
                    <td>角度</td>
                    <td>端口</td>
                    <td v-for="(item,index) in n.portList" :key="index+'fff'">
                      <div style="display: flex;align-items: center;">
                        <el-input size="small" placeholder="端口" v-model="item.value" :disabled="state>1"></el-input>
@@ -151,8 +151,8 @@
                    </td>
                    <td :rowspan="n.angleList.length+1">
                      <el-button icon="el-icon-minus" circle size="mini" type="danger"
                      @click="deleteList(n.portList.length-1,n.portList)" :disabled="state>1"></el-button>
                      <el-button icon="el-icon-plus" circle size="mini" type="primary" @click="addList(n.portList)" :disabled="state>1"></el-button>
                      @click="deleteList(n.portList.length-1,n.portList)" :disabled="state>1" style="margin: 5px;"></el-button>
                      <el-button icon="el-icon-plus" circle size="mini" type="primary" @click="addList(n.portList)" :disabled="state>1" style="margin: 5px;"></el-button>
                    </td>
                  </tr>
                  <tr v-for="(item,index) in n.angleList" :key="index + 'eee'">
@@ -180,7 +180,7 @@
<script>
export default {
  props:['insProduct','orderId','sampleId','state'],
  props:['insProduct','orderId','sampleId','state','num','isLook','currentNum'],
  data() {
    return {
      value: "",
@@ -269,11 +269,21 @@
          }
        })
      })
    },
    currentNum(val) {
      this.initData()
    },
    insProduct:{
      deep:true,
      handler:()=>{
        this.initData()
      }
    }
  },
  mounted() {
    this.getTypeDicts()
    this.initData()
    console.log(2222,this.currentNum)
  },
  methods: {
    // 字典获取数据
@@ -287,7 +297,7 @@
    // 初始化数据
    initData(){
      // 处理项目
      this.insProductNew = JSON.parse(JSON.stringify(this.insProduct))
      this.insProductNew = JSON.parse(JSON.stringify(this.insProduct)).filter(m=>m.inspectionItem.includes('电路试验'))
      this.insProductNew.forEach(async item => {
        // 获取设备列表
        item.equipOptions = await this.getEquipOptions(item)
@@ -343,7 +353,8 @@
                  often:n.often,
                  equipName:n.equipName,
                  equipValue:n.equipValue,
                  frequency:n.frequency
                  frequency:n.frequency,
                  sonLaboratory:item.sonLaboratory
                }
                this.$set(obj,'portList', n.port?portList:[])
                this.$set(obj,'angleList', n.angle?angleList:[])
@@ -421,30 +432,7 @@
              message: '不能删除最后一个互调'
            });
          }else{
            if(list[index].frequency){
              this.$confirm(`是否确定删除 ${list[index].often} 频点数据?`, "提示", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning"
              }).then(() => {
                this.$axios.post(this.$api.insOrderPlan.deleteInsContext2, {
                  frequency:list[index].frequency,
                  productId:list[index].id,
                  often:list[index].often
                }).then(res => {
                  if (res.code === 201) {
                    this.$message.error('删除失败')
                    return
                  }
                  this.$message.success('已删除')
                  list.splice(index, 1)
                }).catch(err => {
                  console.log(err)
                })
              }).catch(() => {})
            }else{
              list.splice(index, 1)
            }
            list.splice(index, 1)
          }
        }else if(type=='删除频段'){
          this.$confirm(`是否确定删除 ${list[index].band} 频段数据?`, "提示", {
@@ -454,7 +442,8 @@
          }).then(() => {
            this.$axios.post(this.$api.insOrderPlan.deleteInsContext, {
              frequency:list[index].band,
              productIds:list[index].projectList.map(m=>m.id)
              productIds:list[index].projectList.map(m=>m.id),
              num:this.num
            }, {
            headers: {
              'Content-Type': 'application/json'
@@ -491,7 +480,38 @@
            index = i;
          }
        })
        obj.often = ''
        obj.result = ''
        let num0 = obj.value.length
        let num1 = obj.value[0].length
        delete obj.value
        obj.value = []
        for(let i = 0;i<num0;i++){
          obj.value.push([])
          for(let j = 0;j<num1;j++){
            obj.value[i].push('')
          }
        }
        list.splice(index+1, 0, obj)
      }else if(type=='频段'){
        let obj = JSON.parse(JSON.stringify(list[0]));
        obj.band = ''
        obj.projectList.forEach(item=>{
          item.often = ''
          item.result = ''
          item.frequency = ''
          let num0 = item.value.length
          let num1 = item.value[0].length
          delete item.value
          item.value = []
          for(let i = 0;i<num0;i++){
            item.value.push([])
            for(let j = 0;j<num1;j++){
              item.value[i].push('')
            }
          }
        })
        list.push(obj)
      }else{
        let obj = JSON.parse(JSON.stringify(list[0]));
        list.push(obj)
@@ -538,7 +558,7 @@
      if(!n.often){
        return
      }
      if(!n.often.includes('MHz')||!n.often.includes('MHZ')){
      if(!n.often.includes('MHz')&&!n.often.includes('MHZ')){
        n.often = n.often + 'MHz'
      }
    },
@@ -554,6 +574,11 @@
    },
    save(h,y) {
      let arr = h.projectList.map(item=>{
        if(item.portList&&item.portList.length>0){
          item.value.forEach(m=>{
            m = m.splice(item.portList.length)
          })
        }
        let obj = {
          insProductId:item.id,
          equipValue:this.insProductNew.find(m=>m.id==item.id).equipValue,