licp
2024-10-18 5a656e598c979f3bffd4a589eca2f8a2c93c984e
src/components/do/b1-inspect-order-plan/circuit-parameters1.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"
@@ -34,11 +34,11 @@
        </el-row>
      </el-col>
      <el-col :span="7">
        <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)" :disabled="state>1">添加角度</el-button>
          <el-button size="small" @click="deleteList(angleList.length-1,angleList)" :disabled="state>1">删除角度</el-button>
        <div style="display: flex;align-items: center;justify-content: flex-end;flex-wrap: wrap;" class="btns" v-if="!isLook">
          <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)" :disabled="state>1" style="margin: 4px;">添加角度</el-button>
          <el-button size="small" @click="deleteList(angleList.length-1,angleList)" :disabled="state>1" style="margin: 4px;">删除角度</el-button>
        </div>
      </el-col>
    </el-row>
@@ -70,9 +70,9 @@
            :value="item.value">
          </el-option>
        </el-select>
        <el-button type="primary" size="small" @click="addList(h.projectList,'互调')" style="margin-left: 16px;" :disabled="state>1">添加互调</el-button>
        <el-button size="small" @click="deleteList(0,h.projectList,'互调')" :disabled="state>1">删除互调</el-button>
        <el-button type="primary" size="small" @click="save(h,y)" :disabled="state>1" :loading="loading[y]">保 存</el-button>
        <el-button type="primary" size="small" @click="addList(h.projectList,'互调')" style="margin-left: 16px;" :disabled="state>1" v-show="!isLook&&intermodulationNum>0">添加互调</el-button>
        <el-button size="small" @click="deleteList(0,h.projectList,'互调')" :disabled="state>1" v-show="!isLook&&intermodulationNum>0">删除互调</el-button>
        <el-button type="primary" size="small" @click="save(h,y)" :disabled="state>1" :loading="loading[y]" 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 v-for="(item,index) in n.angleList" :key="index + 'eee'">
@@ -116,7 +116,7 @@
              </div>
            </el-col>
            <el-col :span="2">
              <div style="text-align: center;" :class="{red:n.result===0,green:n.result===1}">{{ n.result===0?'不合格':(n.result===1?'合格':'待定') }}
              <div style="text-align: center;" :class="{red:n.result===0,green:n.result===1}">{{ n.result===0?'不合格':(n.result===1?'合格':(n.result===3?'不判定':(n.result===3?'不判定':'待定'))) }}
              </div>
            </el-col>
          </el-row>
@@ -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'">
@@ -167,7 +167,7 @@
              </div>
            </el-col>
            <el-col :span="2">
              <div style="text-align: center;" :class="{red:n.result===0,green:n.result===1}">{{ n.result===0?'不合格':(n.result===1?'合格':'待定') }}
              <div style="text-align: center;" :class="{red:n.result===0,green:n.result===1}">{{ n.result===0?'不合格':(n.result===1?'合格':(n.result===3?'不判定':(n.result===3?'不判定':'待定'))) }}
              </div>
            </el-col>
          </el-row>
@@ -189,13 +189,13 @@
                    <td>频段</td>
                    <td v-for="(item,index) in n.portList" :key="index+'aaa'">
                      <div style="display: flex;align-items: center;">
                        <el-input size="small" placeholder="端口" v-model="item.value" :disabled="state>1"></el-input>
                        <el-input size="small" placeholder="频段" v-model="item.value" :disabled="state>1"></el-input>
                      </div>
                    </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'">
@@ -210,7 +210,7 @@
              </div>
            </el-col>
            <el-col :span="2">
              <div style="text-align: center;" :class="{red:n.result===0,green:n.result===1}">{{ n.result===0?'不合格':(n.result===1?'合格':'待定') }}
              <div style="text-align: center;" :class="{red:n.result===0,green:n.result===1}">{{ n.result===0?'不合格':(n.result===1?'合格':(n.result===3?'不判定':'待定')) }}
              </div>
            </el-col>
          </el-row>
@@ -248,7 +248,7 @@
              </div>
            </el-col>
            <el-col :span="2">
              <div style="text-align: center;" :class="{red:n.result===0,green:n.result===1}">{{ n.result===0?'不合格':(n.result===1?'合格':'待定') }}
              <div style="text-align: center;" :class="{red:n.result===0,green:n.result===1}">{{ n.result===0?'不合格':(n.result===1?'合格':(n.result===3?'不判定':'待定')) }}
              </div>
            </el-col>
          </el-row>
@@ -261,7 +261,7 @@
<script>
export default {
  props:['insProduct','orderId','sampleId','state','num'],
  props:['insProduct','orderId','sampleId','state','num','isLook','currentNum'],
  data() {
    return {
      value: "",
@@ -343,7 +343,8 @@
      allBandList:[],//频段
      insProductNew:[],
      isMore:false,
      loading:{}
      loading:{},
      intermodulationNum:0,//互调检验项目的数量
    };
  },
  watch: {
@@ -351,8 +352,17 @@
    angleList(val) {
      this.allBandList.forEach(item => {
        item.projectList.forEach(m => {
          if(m.angleList.length!==val.length){
            m.angleList = JSON.parse(JSON.stringify(this.angleList))
          // 添加角度
          for(let i=0;i<val.length;i++){
            if(!m.angleList[i]){
              this.$set(m.angleList,i, {value:''})
            }
          }
          // 删除角度
          for(let i=0;i<m.angleList.length;i++){
            if(!val[i]){
              m.angleList.splice(i,1)
            }
          }
          if(m.inspectionItemSubclass.includes('耦合度')){
            for(let i = 0;i<m.angleList.length;i++){
@@ -377,7 +387,17 @@
          }
        })
      })
      console.log(this.allBandList)
      // console.log(this.allBandList)
    },
    currentNum(val) {
      this.initData()
    },
    insProduct:{
      deep:true,
      handler:function(val){
        // console.log('更新页面啦')
        this.initData()
      }
    }
  },
  mounted() {
@@ -395,11 +415,15 @@
    },
    // 初始化数据
    initData(){
      this.allBandList = []
      // 处理项目
      this.insProductNew = JSON.parse(JSON.stringify(this.insProduct)).filter(m=>m.inspectionItem.includes('电路试验'))
      this.insProductNew.forEach(async item => {
        if(item.inspectionItemSubclass.includes('互调')){
            this.intermodulationNum++
          }
        // 获取设备列表
        item.equipOptions = await this.getEquipOptions(item)
        item.equipOptions = []
      })
      if(this.insProductNew[0].insProductResult2&&this.insProductNew[0].insProductResult2.length>0){
        // 已经存在值时,赋值
@@ -472,12 +496,32 @@
          })
        }
      }else{
        console.log(2222)
        // 没有值时,初始化页面
        this.insProductNew.forEach(async item => {
          // 赋值设备
          item.equipName = ''
          item.equipValue = ''
          // 赋值端口和角度
          this.portList = [
            {
              value:'1',
            },
            {
              value:'2',
            },
            {
              value:'3',
            },
            {
              value:'4',
            },
          ]
          this.angleList = [
            {
              value:''
            }
          ]
          item.portList = JSON.parse(JSON.stringify(this.portList))
          item.angleList = JSON.parse(JSON.stringify(this.angleList))
          // 赋值结论
@@ -504,6 +548,7 @@
            projectList: JSON.parse(JSON.stringify(this.insProductNew))
          }
        )
        console.log(this.allBandList)
      }
    },
    // 删除数组
@@ -658,12 +703,17 @@
      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'
      }
    },
    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,