licp
2024-12-31 5c8aaba66c16b1a143fdec27e29ad36eaefd1e3a
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,10 @@
        </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 type="success" 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;" type="danger">删除角度</el-button>
        </div>
      </el-col>
    </el-row>
@@ -70,9 +69,10 @@
            :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 size="small" @click="deleteList(y,allBandList,'删除频段')" :disabled="state>1" style="margin-left: 16px;" type="danger">删除频段</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">
@@ -86,7 +86,7 @@
              <div style="text-align: center;">{{ n.unit }}</div>
            </el-col>
            <el-col :span="2">
              <div style="text-align: center;" v-html="n.tell"></div>
              <div style="text-align: center;" v-html="n.ask"></div>
            </el-col>
            <el-col :span="16">
              <div class="content" style="text-align: center;width: 100%;overflow-x: auto;">
@@ -98,15 +98,10 @@
                        <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>
                    </td>
                  </tr>
                  <tr v-for="(item,index) in n.angleList" :key="index + 'eee'">
                    <td>
                      <el-input size="small" placeholder="角度" v-model="item.value" @blur="handleAngle(item.value,index)" :disabled="state>1"></el-input>
                      <el-input size="small" placeholder="角度" v-model="item.value" @blur="handleAngle(item.value,index,h.band)" :disabled="state>1"></el-input>
                    </td>
                    <td v-for="(m,i) in n.portList" :key="i+'ggg'">
                      <el-input size="small" placeholder="最差值" v-model="n.value[index][i]" v-if="n.value[index]" :disabled="state>1"></el-input>
@@ -115,8 +110,11 @@
                </table>
              </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?'合格':'待定') }}
            <el-col :span="1">
              <el-input-number v-model="n.portNum" :min="1" :max="100" label="数量" size="small" @change="m=>changePort(m,n.portList)" :disabled="state>1"></el-input-number>
            </el-col>
            <el-col :span="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>
@@ -129,35 +127,44 @@
              <div style="text-align: center;">{{ n.unit }}</div>
            </el-col>
            <el-col :span="2">
              <div style="text-align: center;" v-html="n.tell"></div>
              <div style="text-align: center;" v-html="n.ask"></div>
            </el-col>
            <el-col :span="16">
              <div class="content" style="text-align: center;width: 100%;overflow-x: auto;">
                <table border="1" cellpadding="10" class="thermal-table">
                  <tr>
                    <td>频点</td>
                    <td>频段</td>
                    <td :colspan="n.portList.length+1">
                      <div style="display: flex;align-items: center;">
                        <el-input size="small" placeholder="频点" v-model="n.often" :disabled="state>1" @blur="handlePort(n)"></el-input>
                        <!-- <el-input size="small" placeholder="频段" v-model="n.often" :disabled="state>1" @blur="handlePort(n)"></el-input> -->
                        <el-select v-model="n.often" placeholder="请选择" size="small" style="width: 200px;" :disabled="state>1">
                          <el-option
                            v-for="item in bandList0"
                            :key="item.value"
                            :label="item.label"
                            :value="item.value">
                          </el-option>
                        </el-select>
                        <el-button type="danger" icon="el-icon-delete" circle size="small" @click="deleteList(j,h.projectList,'互调')" :disabled="state>1" v-show="!isLook&&intermodulationNum>0" style="margin-left: 20px;"></el-button>
                      </div>
                    </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>
                      </div>
                    </td>
                    <td :rowspan="n.angleList.length+1">
                    <!-- <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>
                    </td>
                      @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'">
                    <td>
                      <el-input size="small" placeholder="角度" v-model="item.value" :disabled="state>1" @blur="handleAngle(item.value,index)"></el-input>
                      <el-input size="small" placeholder="角度" v-model="item.value" :disabled="state>1" @blur="handleAngle(item.value,index,h.band)"></el-input>
                    </td>
                    <td v-for="(m,i) in n.portList" :key="i+'ggg'">
                      <el-input size="small" placeholder="最差值" v-model="n.value[index][i]" v-if="n.value[index]" :disabled="state>1"></el-input>
@@ -166,8 +173,11 @@
                </table>
              </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?'合格':'待定') }}
            <el-col :span="1">
              <el-input-number v-model="n.portNum" :min="1" :max="100" label="数量" size="small" @change="m=>changePort(m,n.portList)" :disabled="state>1"></el-input-number>
            </el-col>
            <el-col :span="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>
@@ -180,7 +190,7 @@
              <div style="text-align: center;">{{ n.unit }}</div>
            </el-col>
            <el-col :span="2">
              <div style="text-align: center;" v-html="n.tell"></div>
              <div style="text-align: center;" v-html="n.ask"></div>
            </el-col>
            <el-col :span="16">
              <div class="content" style="text-align: center;width: 100%;overflow-x: auto;">
@@ -189,18 +199,18 @@
                    <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">
                    <!-- <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>
                    </td>
                      @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'">
                    <td>
                      <el-input size="small" placeholder="角度" v-model="item.value" :disabled="state>1" @blur="handleAngle(item.value,index)"></el-input>
                      <el-input size="small" placeholder="角度" v-model="item.value" :disabled="state>1" @blur="handleAngle(item.value,index,h.band)"></el-input>
                    </td>
                    <td v-for="(m,i) in n.portList" :key="i+'ggg'">
                      <el-input size="small" placeholder="最差值" v-model="n.value[index][i]" v-if="n.value[index]" :disabled="state>1"></el-input>
@@ -209,8 +219,11 @@
                </table>
              </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?'合格':'待定') }}
            <el-col :span="1">
              <el-input-number v-model="n.portNum" :min="1" :max="100" label="数量" size="small" @change="m=>changePort(m,n.portList)" :disabled="state>1"></el-input-number>
            </el-col>
            <el-col :span="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>
@@ -223,9 +236,9 @@
              <div style="text-align: center;">{{ n.unit }}</div>
            </el-col>
            <el-col :span="2">
              <div style="text-align: center;" v-html="n.tell"></div>
              <div style="text-align: center;" v-html="n.ask"></div>
            </el-col>
            <el-col :span="16">
            <el-col :span="17">
              <div class="content" style="text-align: center;width: 100%;overflow-x: auto;">
                <table border="1" cellpadding="10" class="thermal-table">
                  <tr>
@@ -238,7 +251,7 @@
                  </tr>
                  <tr v-for="(item,index) in n.angleList" :key="index + 'eee'">
                    <td>
                      <el-input size="small" placeholder="角度" v-model="item.value" :disabled="state>1" @blur="handleAngle(item.value,index)"></el-input>
                      <el-input size="small" placeholder="角度" v-model="item.value" :disabled="state>1" @blur="handleAngle(item.value,index,h.band)"></el-input>
                    </td>
                    <td>
                      <el-input size="small" placeholder="最差值" v-model="n.value[index][0]" :disabled="state>1"></el-input>
@@ -247,8 +260,8 @@
                </table>
              </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?'合格':'待定') }}
            <el-col :span="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,11 +274,12 @@
<script>
export default {
  props:['insProduct','orderId','sampleId','state','num'],
  props:['insProduct','orderId','sampleId','state','num','isLook','currentNum'],
  data() {
    return {
      value: "",
      bandList:[],
      bandList0:[],
      portList:[
        {
          value:'1',
@@ -289,7 +303,7 @@
        {
          name:'电压驻波比',
          unit:'/',
          tell:'≤1.45',
          ask:'≤1.45',
          result:'',
          conclusion:'合格',
          portList:[],
@@ -299,7 +313,7 @@
        {
          name:'同极化隔离度',
          unit:'dB',
          tell:'≤1.45',
          ask:'≤1.45',
          result:'',
          conclusion:'合格',
          portList:[],
@@ -310,7 +324,7 @@
          name:'互调',
          band:'2100MHz',
          unit:'dB',
          tell:'≤1.45',
          ask:'≤1.45',
          result:'',
          conclusion:'合格',
          portList:[],
@@ -320,7 +334,7 @@
        {
          name:'偏差',
          unit:'dB',
          tell:'≤1.45',
          ask:'≤1.45',
          result:'',
          conclusion:'合格',
          portList:[],
@@ -331,7 +345,7 @@
          name:'最大耦合度',
          unit:'dB',
          band:'2100MHz',
          tell:'≤1.45',
          ask:'≤1.45',
          result:'',
          conclusion:'合格',
          portList:[],
@@ -340,19 +354,32 @@
          resValue:''
        },
      ],
      allBandList:[],//频段
      insProductNew:[],
      isMore:false,
      loading:{}
      loading:{},
      intermodulationNum:0,//互调检验项目的数量
      upTemplateState:false,
    };
  },
  watch: {
    // 角度数量变化时,更新所有频段下面的所有项目下的所有端口和角度
    angleList(val) {
      this.allBandList.forEach(item => {
      if(!this.upTemplateState){
        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 +404,18 @@
          }
        })
      })
      console.log(this.allBandList)
      }
      // console.log(this.allBandList)
    },
    currentNum(val) {
      this.initData()
    },
    insProduct:{
      deep:true,
      handler:function(val){
        // console.log('更新页面啦')
        this.initData()
      }
    }
  },
  mounted() {
@@ -392,19 +430,78 @@
      }).then(res => {
        this.bandList = res.data
      })
      this.$axios.post(this.$api.enums.selectEnumByCategory, {
        category: "互调-频段"
      }).then(res => {
        this.bandList0 = res.data
      })
    },
    // 初始化数据
    initData(){
      this.allBandList = []
      this.intermodulationNum = 0
      // 处理项目
      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){
        // 已经存在值时,赋值
        let bandList = this.insProductNew[0].insProductResult2.map(m=>m.frequency)
        bandList = Array.from(new Set(bandList))
        // 上传附件后,设置检验项数据为空的内容
        let sample = this.insProductNew[0];//获取驻波比的数据,如果驻波比值存在而其他检验项值不存在,则根据驻波比设置默认数据
        if(sample.insProductResult2&&sample.insProductResult2.length>0){
          this.insProductNew.forEach(item => {
            if(!item.inspectionItemSubclass.includes('驻波比')&&(!item.insProductResult2||item.insProductResult2.length==0||item.insProductResult2.length<bandList.length)){
              if(!(item.insProductResult2.length>0&&item.insProductResult2.length<bandList.length)){
                item.insProductResult2 = []
              }
              sample.insProductResult2.forEach(m=>{
                let obj = this.HaveJson(m)
                // 如果数据有,但是不够所有频段的数量,则补全数据
                if(item.insProductResult2.length>0&&item.insProductResult2.length<bandList.length){
                  let obj0 = item.insProductResult2.find(n=>m.frequency==n.frequency)
                  if(!obj0){
                    let port = '1,2,3,4'
                    let value = JSON.parse(m.value)
                    let value0 = []
                    value.forEach(n=>{
                      if(!item.inspectionItemSubclass.includes('耦合度')){
                        value0.push(['','','',''])
                      }else{
                        value0.push([''])
                      }
                    })
                    obj.port = port
                    obj.value = JSON.stringify(value0)
                    item.insProductResult2.push(obj)
                  }
                }else{
                  // 如果一条数据都没有,则补全数据
                  let port = '1,2,3,4'
                  let value = JSON.parse(m.value)
                  let value0 = []
                  value.forEach(n=>{
                    if(!item.inspectionItemSubclass.includes('耦合度')){
                      value0.push(['','','',''])
                    }else{
                      value0.push([''])
                    }
                  })
                  obj.port = port
                  obj.value = JSON.stringify(value0)
                  item.insProductResult2.push(obj)
                }
              })
            }
          })
        }
        // 继续回显数据
        this.allBandList = []
        for(let i = 0;i<bandList.length;i++){
          let arr = []
@@ -431,27 +528,29 @@
                    angleList.push({value:m})
                  })
                  this.angleList = angleList
                  this.upTemplateState = false;
                }
                let tell = ''
                if(item.tell.includes(',')){
                  item.tell.split(',').forEach((m,i)=>{
                    tell = tell + m+ (i==item.tell.split(',').length-1?'':'<br/>')
                let ask = ''
                if(item.ask.includes(',')){
                  item.ask.split(',').forEach((m,i)=>{
                    ask = ask + m+ (i==item.ask.split(',').length-1?'':'<br/>')
                  })
                }else{
                  tell = item.tell
                  ask = item.ask
                }
                console.log(tell)
                console.log(ask)
                let obj = {
                  inspectionItemSubclass: item.inspectionItemSubclass,
                  unit:item.unit,
                  tell:tell,
                  ask:ask,
                  result:n.result,
                  id:item.id,
                  often:n.often,
                  equipName:n.equipName,
                  equipValue:n.equipValue,
                  frequency:n.frequency,
                  sonLaboratory:item.sonLaboratory
                  sonLaboratory:item.sonLaboratory,
                  portNum:JSON.parse(n.value).length>0?JSON.parse(n.value)[0].length:4
                }
                this.$set(obj,'portList', n.port?portList:[])
                this.$set(obj,'angleList', n.angle?angleList:[])
@@ -472,18 +571,39 @@
          })
        }
      }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))
          // 赋值结论
          item.result = ''
          // 赋值最差值
          item.value = []
          item.portNum = 4
          if(item.inspectionItemSubclass.includes('耦合度')){
            for(let i = 0;i<item.angleList.length;i++){
              item.value.push([''])
@@ -504,17 +624,19 @@
            projectList: JSON.parse(JSON.stringify(this.insProductNew))
          }
        )
        console.log(this.allBandList)
      }
    },
    // 删除数组
    deleteList(index,list,type){
      this.upTemplateState = false;
      if(list.length>1){
        if(type=='互调'){
          let index = null;
          // let index = null;
          let num = 0;
          list.forEach((m,i)=>{
            if(m.inspectionItemSubclass.includes('互调')){
              index = i;
              // index = i;
              num++
            }
          })
@@ -563,6 +685,7 @@
    },
    // 添加数组
    addList(list,type){
      this.upTemplateState = false;
      if(type=='互调'){
        let obj = null;
        let index = null;
@@ -604,9 +727,27 @@
          }
        })
        list.push(obj)
      }else if('端口'){
        let obj = JSON.parse(JSON.stringify(list[0]));
        obj.value = null;
        list.push(obj)
      }else{
        let obj = JSON.parse(JSON.stringify(list[0]));
        list.push(obj)
      }
    },
    // 改变端口
    changePort(num,list){
      if(num>list.length){
        for(let i = list.length;i<num;i++){
          let obj = JSON.parse(JSON.stringify(list[0]));
          obj.value = null;
          list.push(obj)
        }
      }else if(num<list.length){
        for(let i = list.length;i>num;i--){
          list.pop()
        }
      }
    },
    // 获取设备选项 id:为检验项id
@@ -635,8 +776,8 @@
      this.$delete(item, 'equipName')
      this.$set(item, 'equipName', item.equipOptions.find(m=>m.value==item.equipValue).label)
    },
    // 统一修改角度,如果角度没有带°,则拼接一个
    handleAngle(e,index){
    // 统一修改同一频段的角度,如果角度没有带°,则拼接一个
    handleAngle(e,index,band){
      if(!e){
        return
      }
@@ -645,25 +786,32 @@
        val = val + '°'
      }
      this.allBandList.forEach(item=>{
        item.projectList.forEach(m=>{
          m.angleList.forEach((n,i)=>{
            if(index==i){
              n.value = val
            }
        if(item.band==band){
          item.projectList.forEach(m=>{
            m.angleList.forEach((n,i)=>{
              if(index==i){
                n.value = val
              }
            })
          })
        })
        }
      })
    },
    handlePort(n){
      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,
@@ -678,8 +826,8 @@
      this.$delete(this.loading, y)
      this.$set( this.loading, y, true)
      this.$axios.post(this.$api.insOrderPlan.saveInsContext2, {
        orderId:this.orderId,
        sampleId:this.sampleId,
        // orderId:this.orderId,
        sampleId:this.orderId,
        sonLaboratory:h.projectList[0].sonLaboratory,
        frequency:h.band,
        insProductResult2s:arr
@@ -701,6 +849,86 @@
      }).catch(err => {
        console.log(err)
      })
    },
    async saveAll(){
      if(this.allBandList.find(m=>!m.band)){
        this.$message.error('请先填写频段')
        return false
      }else{
        let arr0 = []
        this.allBandList.forEach((h,j)=>{
          // this.save(h,j)
          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,
              equipName:this.insProductNew.find(m=>m.id==item.id).equipName,
              port:item.portList.map(m=>m.value).join(','),
              angle:item.angleList.map(m=>m.value).join(','),
              value:JSON.stringify(item.value),
              often:item.often
            }
            return obj
          })
          let obj0 = {
            sampleId:this.orderId,
            sonLaboratory:h.projectList[0].sonLaboratory,
            frequency:h.band,
            insProductResult2s:arr
          }
          arr0.push(obj0)
        })
        let res = await this.$axios.post(this.$api.insOrderPlan.saveInsContext2s, {insProductResultDtos:arr0
        }, {
        headers: {
          'Content-Type': 'application/json'
        },
        noQs:true})
        if(res.code===201){
          this.$message.error('保存失败')
          return false
        }else{
          this.$message.success('已保存')
          return true
        }
      }
    },
    // 更新模板
    upTemplate(obj){
      this.upTemplateState = true;
      // return
      obj.allBandList.forEach((item,index)=>{
        if(!this.allBandList[index]){
          this.$set(this.allBandList, index, {projectList:this.HaveJson(this.allBandList[0].projectList)})
          // this.allBandList[index] = {
          //   projectList:this.HaveJson(this.allBandList[0].projectList)
          // }
        }
        this.allBandList[index].band = item.band
        let arr = []
        item.projectList.forEach((m,i)=>{
          if(this.allBandList[index].projectList.find(n=>n.inspectionItemSubclass==m.inspectionItemSubclass)){
            let obj0 = {
              angleList:m.angleList,
              portList:m.portList,
              portNum:m.portNum,
              valueType:m.valueType
            }
            this.$set(obj0,'value',m.value)
            arr.push({...this.allBandList[index].projectList.find(n=>n.inspectionItemSubclass==m.inspectionItemSubclass),...obj0})
          }
        })
        this.$delete(this.allBandList[index],'projectList')
        this.$set(this.allBandList[index],'projectList',arr)
        // this.allBandList[index].projectList = arr
      })
      this.angleList = obj.angleList
      this.intermodulationNum = obj.intermodulationNum
    }
  }
}
@@ -748,4 +976,37 @@
.green{
  color: green;
}
>>>.el-input-number {
  display: inline-flex;
  flex-direction: column !important;
  line-height: 26px;
}
>>>.el-input-number__increase, >>>.el-input-number__decrease {
  width: 26px;
  height: 26px;
}
>>>.el-input-number__increase{
  top: 36px;
  left: 10px;
  border: 0px;
  border-radius: 50%;
  background: #3A7BFA;
  color: #fff;
}
>>>.el-input-number__decrease{
  top: -30px;
  border: 0px;
  border-radius: 50%;
  left: 10px;
  background: #F56C6C;
  color: #fff;
}
>>>.el-input-number .el-input{
  width: 50px;
}
>>>.el-input-number .el-input__inner{
  width: 50px;
  padding: 0;
}
</style>