From 54b1d5908bc6173160a3db6288a27c0944afaba9 Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期二, 31 十二月 2024 13:25:44 +0800
Subject: [PATCH] 无源器件检验开发
---
src/components/do/b1-inspect-order-plan/circuit-parameters3.vue | 900 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/do/b1-inspect-order-plan/Inspection.vue | 20
2 files changed, 914 insertions(+), 6 deletions(-)
diff --git a/src/components/do/b1-inspect-order-plan/Inspection.vue b/src/components/do/b1-inspect-order-plan/Inspection.vue
index 39e590b..54e89e4 100644
--- a/src/components/do/b1-inspect-order-plan/Inspection.vue
+++ b/src/components/do/b1-inspect-order-plan/Inspection.vue
@@ -260,7 +260,7 @@
<el-col :span="12" style="padding-left: 20px;text-align: left;" :class="{noShow:noBack}">妫�楠屽崟璇︽儏
</el-col>
<el-col :span="12" style="text-align: right;display: flex;align-items: center;justify-content: end;height: 60px;">
- <el-button size="small" type="primary" @click="versionDialogVisible=true" v-if="state==1&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName.includes('鐢佃矾璇曢獙')">鐢佃皟/闈炵數璋冩ā鏉垮垏鎹�</el-button>
+ <el-button size="small" type="primary" @click="versionDialogVisible=true" v-if="state==1&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName.includes('鐢佃矾璇曢獙')&&insOrder.sampleType!='鏃犳簮鍣ㄤ欢'">鐢佃皟/闈炵數璋冩ā鏉垮垏鎹�</el-button>
<el-select v-model="template" size="medium" placeholder="鐢佃矾棰勮妯℃澘" style="margin-right: 10px;margin-left: 10px;" v-if="state==1&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName.includes('鐢佃矾璇曢獙')"
@change="selectInsProductTemplateById">
<el-option v-for="(a, ai) in templates" :key="ai" :value="a.id" :label="a.name">
@@ -738,8 +738,12 @@
<!-- 鐢佃矾璇曢獙 -->
<div v-else-if="tableLists.find(m=>m.templateId==currentTable).templateName.includes('鐢佃矾璇曢獙')" style="width: 100%;overflow-x: auto;overflow-y: visible;">
<!-- <Circuit></Circuit> -->
+ <!-- 鐢佃皟 -->
<CircuitParameters1 v-if="currentTableState==0" :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :num="currentSample.num1" :isLook="isLook" :currentNum="currentNum" ref="CircuitParameters"></CircuitParameters1>
+ <!-- 闈炵數璋� -->
<CircuitParameters2 v-if="currentTableState==1" :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :num="currentSample.num1" :isLook="isLook" :currentNum="currentNum" ref="CircuitParameters"></CircuitParameters2>
+ <!-- 鏃犳簮鍣ㄤ欢 -->
+ <CircuitParameters3 v-if="this.insOrder.sampleType=='鏃犳簮鍣ㄤ欢' " :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :num="currentSample.num1" :isLook="isLook" :currentNum="currentNum" ref="CircuitParameters"></CircuitParameters3>
</div>
<!-- 娓╂箍搴﹁瘯楠� -->
<div v-else-if="tableLists.find(m=>m.templateId==currentTable).templateName.includes('娓╂箍搴﹁瘯楠�')">
@@ -963,6 +967,7 @@
import excelFunction from '../../../util/excelFountion'
import CircuitParameters1 from './circuit-parameters1.vue'
import CircuitParameters2 from './circuit-parameters2.vue'
+ import CircuitParameters3 from './circuit-parameters3.vue'
import Humidity from './humidity.vue'
import PowerCapacity from './power-capacity.vue'
import filePreview from '../../tool/file-preview.vue'
@@ -972,6 +977,7 @@
ValueTable,
CircuitParameters1,
CircuitParameters2,
+ CircuitParameters3,
filePreview,
Humidity,
PowerCapacity,
@@ -1206,7 +1212,6 @@
this.scrollInit()
this.getPower()
this.startWorker()
- this.selectInsProductTemplate()
},
watch: {
// 鐩戝惉浠诲姟id锛岃幏鍙栦换鍔′俊鎭�
@@ -1220,6 +1225,7 @@
this.componentData0.entity.insSampleId = val;
this.componentData0.entity.insOrderId = this.orderId0;
this.$refs.fileList.selectList()
+ this.selectInsProductTemplate()
this.urgentList.forEach(m => {
if (m.value == this.insOrder.type) {
this.insOrder.typeName = m.label
@@ -2445,7 +2451,7 @@
this.tableList = null;
this.tableList = [this.tableLists[0]]
this.currentTable = this.tableLists[0].templateId;
- if(this.tableLists.find(m=>m.templateId==this.currentTable)&&this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('鐢佃矾璇曢獙')&&this.currentTableState!=0&&this.currentTableState!=1){
+ if(this.tableLists.find(m=>m.templateId==this.currentTable)&&this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('鐢佃矾璇曢獙')&&this.currentTableState!=0&&this.currentTableState!=1&&this.insOrder.sampleType!='鏃犳簮鍣ㄤ欢'){
this.versionDialogVisible = true
}
// 澶勭悊椤甸潰鍒楄〃鏁版嵁
@@ -3871,7 +3877,9 @@
}
},
selectInsProductTemplate(){
- this.$axios.post(this.$api.insProductTemplate.chooseInsProductTemplate).then(res => {
+ this.$axios.post(this.$api.insProductTemplate.chooseInsProductTemplate,{
+ version:this.insOrder.sampleType=='鏃犳簮鍣ㄤ欢'?2:''
+ }).then(res => {
if (res.code == 201) return
this.templates = res.data
})
@@ -3881,7 +3889,7 @@
this.$axios.post(this.$api.insProductTemplate.getInsProductTemplate + '?id=' + e).then(res => {
if (res.code == 201) return
let obj = JSON.parse(res.data.message)
- if(this.currentTableState!=res.data.version){
+ if(this.currentTableState!=res.data.version&&this.insOrder.sampleType!='鏃犳簮鍣ㄤ欢'){
this.$message.error('鐢佃皟/闈炵數璋冩ā鏉跨増鏈笉涓�鑷达紝璇烽噸鏂伴�夋嫨')
this.template = null
return
@@ -3923,7 +3931,7 @@
this.templateLoading = true;
this.$axios.post(this.$api.insProductTemplate.addInsProductTemplate, {
name: this.templateName,
- version:this.currentTableState,
+ version:this.insOrder.sampleType=='鏃犳簮鍣ㄤ欢'?2:this.currentTableState,
message:JSON.stringify(obj)
}, {
headers: {
diff --git a/src/components/do/b1-inspect-order-plan/circuit-parameters3.vue b/src/components/do/b1-inspect-order-plan/circuit-parameters3.vue
new file mode 100644
index 0000000..f43b135
--- /dev/null
+++ b/src/components/do/b1-inspect-order-plan/circuit-parameters3.vue
@@ -0,0 +1,900 @@
+<template>
+ <div class="circuit-parameters">
+ <el-divider></el-divider>
+ <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: 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" readonly></el-input>
+ </td>
+ <td>
+ <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"
+ :label="m.value"
+ :value="m.value">
+ </el-option>
+ </el-select>
+ </td>
+ </tr>
+ </table>
+ </el-col>
+ <el-col :span="1" v-show="insProductNew.length>3">
+ <el-button icon="el-icon-arrow-down" type="text" @click="isMore=true" v-if="!isMore">鏇村</el-button>
+ <el-button icon="el-icon-arrow-up" type="text" @click="isMore=false" v-if="isMore">鏀惰捣</el-button>
+ </el-col>
+ </el-row>
+ </el-col>
+ <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>
+ </div>
+ </el-col>
+ </el-row>
+ <el-row :gutter="5" style="font-size: 18px;font-weight: 700;background: #F0F1F5;padding: 16px 0;box-sizing: border-box;width: 100%;">
+ <el-col :span="2">
+ <div style="text-align: center;">妫�楠岄」鐩�</div>
+ </el-col>
+ <el-col :span="2">
+ <div style="text-align: center;">鍗曚綅</div>
+ </el-col>
+ <el-col :span="2">
+ <div style="text-align: center;">鏍囧噯瑕佹眰</div>
+ </el-col>
+ <el-col :span="16">
+ <div style="text-align: center;">妫�楠岀粨鏋�</div>
+ </el-col>
+ <el-col :span="2">
+ <div style="text-align: center;">缁撹</div>
+ </el-col>
+ </el-row>
+ <div class="circuit-parameters-item" v-for="(h,y) in allBandList" :key="y+'ooo'">
+ <div class="circuit-parameters-item-title">
+ <span>棰戞锛�</span>
+ <el-select v-model="h.band" placeholder="璇烽�夋嫨" size="small" style="width: 200px;" :disabled="state>1">
+ <el-option
+ v-for="item in bandList"
+ :key="item.value"
+ :label="item.label"
+ :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="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">
+ <template v-for="(n,j) in h.projectList">
+ <!-- 鐢靛帇椹绘尝姣� -->
+ <el-row :gutter="5" style="margin: 12px 0 0;display: flex;align-items: center;" v-if="n.inspectionItemSubclass.includes('椹绘尝姣�')||n.inspectionItemSubclass.includes('闅旂搴�')||n.inspectionItemSubclass.includes('甯﹀鎶戝埗')||n.inspectionItemSubclass.includes('甯﹀唴娉㈠姩')||n.inspectionItemSubclass.includes('鎻掑叆鎹熻��')">
+ <el-col :span="2">
+ <div style="text-align: center;">{{ n.inspectionItemSubclass }}</div>
+ </el-col>
+ <el-col :span="2">
+ <div style="text-align: center;">{{ n.unit }}</div>
+ </el-col>
+ <el-col :span="2">
+ <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 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>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ 鏈�宸��
+ </td>
+ <td v-for="(m,i) in n.portList" :key="i+'ggg'">
+ <el-input size="small" placeholder="鏈�宸��" v-model="n.value[0][i]" v-if="n.value[0]" :disabled="state>1"></el-input>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </el-col>
+ <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>
+ <!-- 浜掕皟 -->
+ <el-row :gutter="5" style="margin: 12px 0 0;display: flex;align-items: center;" v-if="n.inspectionItemSubclass.includes('浜掕皟')">
+ <el-col :span="2">
+ <div style="text-align: center;">{{ n.inspectionItemSubclass }}</div>
+ </el-col>
+ <el-col :span="2">
+ <div style="text-align: center;">{{ n.unit }}</div>
+ </el-col>
+ <el-col :span="2">
+ <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 :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-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>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <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>
+ </tr>
+ <tr>
+ <td>
+ 鏈�宸��
+ </td>
+ <td v-for="(m,i) in n.portList" :key="i+'ggg'">
+ <el-input size="small" placeholder="鏈�宸��" v-model="n.value[0][i]" v-if="n.value[0]" :disabled="state>1"></el-input>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </el-col>
+ <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>
+ <!-- 骞呭害鍋忓樊/鏈�澶х浉浣嶅亸宸� -->
+ <el-row :gutter="5" style="margin: 12px 0 0;display: flex;align-items: center;" v-if="n.inspectionItemSubclass.includes('鍋忓樊')">
+ <el-col :span="2">
+ <div style="text-align: center;">{{ n.inspectionItemSubclass }}</div>
+ </el-col>
+ <el-col :span="2">
+ <div style="text-align: center;">{{ n.unit }}</div>
+ </el-col>
+ <el-col :span="2">
+ <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 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>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ 鏈�宸��
+ </td>
+ <td v-for="(m,i) in n.portList" :key="i+'ggg'">
+ <el-input size="small" placeholder="鏈�宸��" v-model="n.value[0][i]" v-if="n.value[0]" :disabled="state>1"></el-input>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </el-col>
+ <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>
+ <!-- 鏈�澶ц�﹀悎搴�/鏈�灏忚�﹀悎搴� -->
+ <el-row :gutter="5" style="margin: 12px 0 0;display: flex;align-items: center;" v-if="n.inspectionItemSubclass.includes('鑰﹀悎搴�')">
+ <el-col :span="2">
+ <div style="text-align: center;">{{ n.inspectionItemSubclass }}</div>
+ </el-col>
+ <el-col :span="2">
+ <div style="text-align: center;">{{ n.unit }}</div>
+ </el-col>
+ <el-col :span="2">
+ <div style="text-align: center;" v-html="n.ask"></div>
+ </el-col>
+ <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>
+ <td>瑙掑害</td>
+ <td>
+ <div style="display: flex;align-items: center;">
+ <el-input size="small" placeholder="棰戠偣" v-model="n.often" :disabled="state>1" @blur="handlePort(n)"></el-input>
+ </div>
+ </td>
+ </tr> -->
+ <tr>
+ <td>
+ 鏈�宸��
+ </td>
+ <td>
+ <el-input size="small" placeholder="鏈�宸��" v-model="n.value[0][0]" :disabled="state>1"></el-input>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </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>
+ <el-divider v-if="j!=h.projectList.length-1"></el-divider>
+ </template>
+ </div>
+ </div>
+ </div>
+</template>
+
+<script>
+export default {
+ props:['insProduct','orderId','sampleId','state','num','isLook','currentNum'],
+ data() {
+ return {
+ value: "",
+ bandList:[],
+ bandList0:[],
+ portList:[
+ {
+ value:'1',
+ },
+ {
+ value:'2',
+ },
+ {
+ value:'3',
+ },
+ {
+ value:'4',
+ },
+ ],
+ projectList:[
+ {
+ name:'鐢靛帇椹绘尝姣�',
+ unit:'/',
+ ask:'鈮�1.45',
+ result:'',
+ conclusion:'鍚堟牸',
+ portList:[],
+ value:[],//鍙屽眰鏁扮粍
+ },
+ {
+ name:'鍚屾瀬鍖栭殧绂诲害',
+ unit:'dB',
+ ask:'鈮�1.45',
+ result:'',
+ conclusion:'鍚堟牸',
+ portList:[],
+ value:[],//鍙屽眰鏁扮粍
+ },
+ {
+ name:'浜掕皟',
+ band:'2100MHz',
+ unit:'dB',
+ ask:'鈮�1.45',
+ result:'',
+ conclusion:'鍚堟牸',
+ portList:[],
+ value:[],//鍙屽眰鏁扮粍
+ },
+ {
+ name:'鍋忓樊',
+ unit:'dB',
+ ask:'鈮�1.45',
+ result:'',
+ conclusion:'鍚堟牸',
+ portList:[],
+ value:[],//鍙屽眰鏁扮粍
+ },
+ {
+ name:'鏈�澶ц�﹀悎搴�',
+ unit:'dB',
+ band:'2100MHz',
+ ask:'鈮�1.45',
+ result:'',
+ conclusion:'鍚堟牸',
+ portList:[],
+ value:[],//鍙屽眰鏁扮粍
+ resValue:''
+ },
+ ],
+
+ allBandList:[],//棰戞
+ insProductNew:[],
+ isMore:false,
+ loading:{},
+ intermodulationNum:0,//浜掕皟妫�楠岄」鐩殑鏁伴噺
+ upTemplateState:false,
+ };
+ },
+ watch: {
+ currentNum(val) {
+ this.initData()
+ },
+ insProduct:{
+ deep:true,
+ handler:function(val){
+ // console.log('鏇存柊椤甸潰鍟�')
+ this.initData()
+ }
+ }
+ },
+ mounted() {
+ this.getTypeDicts()
+ this.initData()
+ },
+ methods: {
+ // 瀛楀吀鑾峰彇鏁版嵁
+ getTypeDicts() {
+ this.$axios.post(this.$api.enums.selectEnumByCategory, {
+ category: "鐢佃矾璇曢獙娉㈡"
+ }).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 = []
+ })
+ 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 = []
+ this.insProductNew.forEach(item => {
+ let equipNameList = []
+ let equipValueList = []
+ item.insProductResult2.forEach(n => {
+ if(n.frequency===bandList[i]){
+ // 璧嬪�奸〉闈㈣澶囧悕绉板拰鍊�
+ if(n.equipValue){
+ equipNameList.push(n.equipName)
+ equipValueList.push(n.equipValue)
+ }
+ // 浠ヤ笅涓鸿祴鍊煎垪琛ㄤ俊鎭�
+ let portList = []
+ if(n.port&&n.port.split(',').length>0){
+ n.port.split(',').forEach(m=>{
+ portList.push({value:m})
+ })
+ }
+ let ask = ''
+ if(item.ask.includes(',')){
+ item.ask.split(',').forEach((m,i)=>{
+ ask = ask + m+ (i==item.ask.split(',').length-1?'':'<br/>')
+ })
+ }else{
+ ask = item.ask
+ }
+ console.log(ask)
+ let obj = {
+ inspectionItemSubclass: item.inspectionItemSubclass,
+ unit:item.unit,
+ ask:ask,
+ result:n.result,
+ id:item.id,
+ often:n.often,
+ equipName:n.equipName,
+ equipValue:n.equipValue,
+ 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,'value', JSON.parse(n.value))
+ arr.push(obj)
+ }
+ })
+ if(equipValueList.length>0){
+ this.$delete(item,'equipName')
+ this.$delete(item,'equipValue')
+ this.$set(item,'equipName',equipNameList[equipNameList.length-1])
+ this.$set(item,'equipValue',equipValueList[equipValueList.length-1])
+ }
+ })
+ this.$set(this.allBandList,i, {
+ band: bandList[i],
+ projectList: arr
+ })
+ }
+ }else{
+ console.log(2222)
+ // 娌℃湁鍊兼椂锛屽垵濮嬪寲椤甸潰
+ this.insProductNew.forEach(async item => {
+ // 璧嬪�艰澶�
+ item.equipName = ''
+ item.equipValue = ''
+ // 璧嬪�肩鍙e拰瑙掑害
+ this.portList = [
+ {
+ value:'1',
+ },
+ {
+ value:'2',
+ },
+ {
+ value:'3',
+ },
+ {
+ value:'4',
+ },
+ ]
+ item.portList = JSON.parse(JSON.stringify(this.portList))
+ // 璧嬪�肩粨璁�
+ item.result = ''
+ // 璧嬪�兼渶宸��
+ item.value = []
+ item.portNum = 4
+ if(item.inspectionItemSubclass.includes('鑰﹀悎搴�')){
+ item.value.push([''])
+ }else{
+ item.value.push([])
+ for(let j=0;j<item.portList.length;j++){
+ item.value[i].push('')
+ }
+ }
+ })
+ // 鍒濆鍖栭娈�
+ this.allBandList.push(
+ {
+ band:'',
+ 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 num = 0;
+ list.forEach((m,i)=>{
+ if(m.inspectionItemSubclass.includes('浜掕皟')){
+ // index = i;
+ num++
+ }
+ })
+ if(num==1){
+ this.$message({
+ type: 'warning',
+ message: '涓嶈兘鍒犻櫎鏈�鍚庝竴涓簰璋�'
+ });
+ }else{
+ list.splice(index, 1)
+ }
+ }else if(type=='鍒犻櫎棰戞'){
+ this.$confirm(`鏄惁纭畾鍒犻櫎 ${list[index].band} 棰戞鏁版嵁?`, "鎻愮ず", {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ type: "warning"
+ }).then(() => {
+ this.$axios.post(this.$api.insOrderPlan.deleteInsContext, {
+ frequency:list[index].band,
+ productIds:list[index].projectList.map(m=>m.id),
+ num:this.num
+ }, {
+ headers: {
+ 'Content-Type': 'application/json'
+ },
+ noQs:true}).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)
+ }
+ }else{
+ this.$message({
+ type: 'warning',
+ message: '涓嶈兘鍒犻櫎鏈�鍚庝竴涓�'
+ });
+ }
+ },
+ // 娣诲姞鏁扮粍
+ addList(list,type){
+ this.upTemplateState = false;
+ if(type=='浜掕皟'){
+ let obj = null;
+ let index = null;
+ list.forEach((m,i)=>{
+ if(m.inspectionItemSubclass.includes('浜掕皟')){
+ obj = JSON.parse(JSON.stringify(m));
+ 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 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
+ async getEquipOptions(m) {
+ let arr = []
+ let res = await this.$axios.post(this.$api.deviceScope.selectDeviceByCategory, {
+ inspectionItem: m.inspectionItem,
+ inspectionItemSubclass: m.inspectionItemSubclass
+ })
+ if (res.code === 200 && res.data) {
+ arr = res.data.map(m => {
+ m.value = m.managementNumber
+ m.label = m.deviceName
+ return m
+ })
+ }
+ return arr
+ },
+ async methodFocus(item){
+ this.$delete(item, 'equipOptions')
+ this.$set(item, 'equipOptions', await this.getEquipOptions(item))
+ },
+ handleEquip(m,item){
+ this.$delete(item, 'equipValue')
+ this.$set(item, 'equipValue', m)
+ this.$delete(item, 'equipName')
+ this.$set(item, 'equipName', item.equipOptions.find(m=>m.value==item.equipValue).label)
+ },
+ handlePort(n){
+ if(!n.often){
+ return
+ }
+ 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,
+ equipName:this.insProductNew.find(m=>m.id==item.id).equipName,
+ port:item.portList.map(m=>m.value).join(','),
+ value:JSON.stringify(item.value),
+ often:item.often
+ }
+ return obj
+ })
+ this.$delete(this.loading, y)
+ this.$set( this.loading, y, true)
+ this.$axios.post(this.$api.insOrderPlan.saveInsContext2, {
+ // orderId:this.orderId,
+ sampleId:this.orderId,
+ sonLaboratory:h.projectList[0].sonLaboratory,
+ frequency:h.band,
+ insProductResult2s:arr
+ }, {
+ headers: {
+ 'Content-Type': 'application/json'
+ },
+ noQs:true}).then(res => {
+ this.$set( this.loading, y, false)
+ // this.loading[y] = false
+ if (res.code === 201) {
+ this.$message.error('淇濆瓨澶辫触')
+ return
+ }
+ for(let i=0;i<res.data.length;i++){
+ h.projectList[i].result = res.data[i]
+ }
+ this.$message.success('宸蹭繚瀛�')
+ }).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(','),
+ 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 = {
+ 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.intermodulationNum = obj.intermodulationNum
+ }
+ }
+}
+</script>
+
+<style scoped>
+.circuit-parameters{
+ position: relative;
+ overflow: visible;
+}
+.circuit-parameters-item{
+ margin-bottom: 10px;
+ border: 1px solid #eee;
+ padding: 10px;
+ box-sizing: border-box;
+ border-radius: 8px;
+}
+.circuit-parameters-item-title{
+ display: flex;
+ align-items: center;
+}
+.thermal-table{
+ min-width: calc(100% - 10px);
+ table-layout: fixed;
+}
+.thermal-table td,.thermal-table th {
+ min-width: 70px;
+ text-align: center;
+ font-size: 14px;
+ word-wrap: break-word;
+ white-space: normal;
+ padding: 5px;
+}
+.thermal-table .el-input{
+ display: flex;
+ align-items: center;
+}
+.equip{
+ display: flex;
+ align-items: center;
+}
+.red{
+ color: red;
+}
+.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