From 5c8aaba66c16b1a143fdec27e29ad36eaefd1e3a Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期二, 31 十二月 2024 14:33:25 +0800
Subject: [PATCH] 无源器件检验开发

---
 src/components/do/b1-inspect-order-plan/circuit-parameters1.vue |  426 +++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 344 insertions(+), 82 deletions(-)

diff --git a/src/components/do/b1-inspect-order-plan/circuit-parameters1.vue b/src/components/do/b1-inspect-order-plan/circuit-parameters1.vue
index a39291f..551d30c 100644
--- a/src/components/do/b1-inspect-order-plan/circuit-parameters1.vue
+++ b/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'],
+  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: {
     // 瑙掑害鏁伴噺鍙樺寲鏃讹紝鏇存柊鎵�鏈夐娈典笅闈㈢殑鎵�鏈夐」鐩笅鐨勬墍鏈夌鍙e拰瑙掑害
     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))
+      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,26 +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
+                  frequency:n.frequency,
+                  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:[])
@@ -471,18 +571,39 @@
           })
         }
       }else{
+        console.log(2222)
         // 娌℃湁鍊兼椂锛屽垵濮嬪寲椤甸潰
         this.insProductNew.forEach(async item => {
           // 璧嬪�艰澶�
           item.equipName = ''
           item.equipValue = ''
           // 璧嬪�肩鍙e拰瑙掑害
+          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([''])
@@ -503,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++
             }
           })
@@ -533,7 +656,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'
@@ -561,6 +685,7 @@
     },
     // 娣诲姞鏁扮粍
     addList(list,type){
+      this.upTemplateState = false;
       if(type=='浜掕皟'){
         let obj = null;
         let index = null;
@@ -585,7 +710,6 @@
         list.splice(index+1, 0, obj)
       }else if(type=='棰戞'){
         let obj = JSON.parse(JSON.stringify(list[0]));
-        console.log(2222,obj)
         obj.band = ''
         obj.projectList.forEach(item=>{
           item.often = ''
@@ -603,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
@@ -634,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
       }
@@ -644,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,
@@ -677,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
@@ -700,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
     }
   }
 }
@@ -747,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>

--
Gitblit v1.9.3