licp
2024-12-31 5c8aaba66c16b1a143fdec27e29ad36eaefd1e3a
src/components/do/b1-inspect-order-plan/circuit-parameters1.vue
@@ -36,9 +36,8 @@
      <el-col :span="7">
        <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>
          <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,8 +69,9 @@
            :value="item.value">
          </el-option>
        </el-select>
        <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 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>
@@ -101,7 +101,7 @@
                  </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>
@@ -145,6 +145,7 @@
                            :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>
@@ -163,7 +164,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 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,7 +210,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 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>
@@ -250,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>
@@ -438,6 +439,7 @@
    // 初始化数据
    initData(){
      this.allBandList = []
      this.intermodulationNum = 0
      // 处理项目
      this.insProductNew = JSON.parse(JSON.stringify(this.insProduct)).filter(m=>m.inspectionItem.includes('电路试验'))
      this.insProductNew.forEach(async item => {
@@ -451,6 +453,55 @@
        // 已经存在值时,赋值
        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 = []
@@ -581,11 +632,11 @@
      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++
            }
          })
@@ -725,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
      }
@@ -735,13 +786,15 @@
        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){
@@ -797,6 +850,54 @@
        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;