From bf48d316c05720a0da527c990c45f17e9e69ed6f Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期五, 06 九月 2024 14:51:50 +0800
Subject: [PATCH] 新增电路检验功能
---
src/components/do/b1-inspect-order-plan/circuit-parameters1.vue | 732 +++++++++++++++++++++++
src/components/do/b1-inspect-order-plan/circuit.vue | 278 ++++++++
src/components/do/b1-inspect-order-plan/circuit-parameters2.vue | 630 ++++++++++++++++++++
src/main.js | 4
src/components/do/b1-inspect-order-plan/Inspection.vue | 205 -----
src/components/view/b1-inspect-order-plan.vue | 4
src/assets/api/controller.js | 3
7 files changed, 1,675 insertions(+), 181 deletions(-)
diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js
index 6a1a026..7d604ce 100644
--- a/src/assets/api/controller.js
+++ b/src/assets/api/controller.js
@@ -193,6 +193,9 @@
claimInsOrderPlan: "/insOrderPlan/claimInsOrderPlan", //璁ら妫�楠屼换鍔�
doInsOrder: "/insOrderPlan/doInsOrder", //鎵ц妫�楠屾搷浣�
saveInsContext: "/insOrderPlan/saveInsContext", //淇濆瓨妫�楠屽唴瀹�
+ saveInsContext2: "/insOrderPlan/saveInsContext2", //淇濆瓨妫�楠屽唴瀹�
+ deleteInsContext: "/insOrderPlan/deleteInsContext", //鍒犻櫎棰戞
+ deleteInsContext2: "/insOrderPlan/deleteInsContext2", //鍒犻櫎棰戠偣
upPlanUser: "/insOrderPlan/upPlanUser", //浠诲姟浜ゆ帴
upPlanUser2: "/insOrderPlan/upPlanUser2", //浠诲姟浜ゆ帴
verifyPlan: "/insOrderPlan/verifyPlan", //澶嶆牳妫�楠屼换鍔�
diff --git a/src/components/do/b1-inspect-order-plan/Inspection.vue b/src/components/do/b1-inspect-order-plan/Inspection.vue
index 77318b8..9e9cf63 100644
--- a/src/components/do/b1-inspect-order-plan/Inspection.vue
+++ b/src/components/do/b1-inspect-order-plan/Inspection.vue
@@ -253,9 +253,6 @@
<el-col :span="12" style="padding-left: 20px;text-align: left;" >妫�楠屽崟璇︽儏
</el-col>
<el-col :span="12" style="text-align: right;">
- <!-- <el-button size="small" type="primary" @click="fiberOpticVisible=true" v-if="fiberOptic.length>0">鍏夌氦鍒囨崲</el-button>
- <el-button size="small" type="primary" @click="fiberOpticTapeVisible=true" v-if="fiberOpticTape.length>0">鍏夌氦甯﹀垏鎹�</el-button>
- <el-button size="small" type="primary" @click="bushingVisible=true" v-if="bushing.length>0">濂楃鍒囨崲</el-button> -->
<el-button size="small" type="primary" @click="sampleVisible=true;uploadSample()">鏍峰搧鍒囨崲</el-button>
<el-button size="small" type="primary" @click="taskVisible=true">浠诲姟鍒囨崲</el-button>
<el-button size="small" type="primary" @click="handleSubmit" v-if="state==1"
@@ -275,7 +272,7 @@
</el-form-item>
<el-form-item label="鏍峰搧缂栧彿:">
<el-tooltip :disabled="!currentSample.sampleCode" :content="currentSample.sampleCode">
- <el-input clearable v-model="currentSample.sampleCode" disabled size="small" placeholder="璇疯緭鍏�" ></el-input>
+ <el-input clearable v-model="currentSample.sampleCode" disabled size="small" placeholder="璇疯緭鍏�" tooltip></el-input>
</el-tooltip>
</el-form-item>
<el-form-item label="鏍峰搧鍚嶇О:">
@@ -283,6 +280,9 @@
</el-form-item>
<el-form-item label="鏍峰搧鏁伴噺:">
<el-input clearable v-model="sampleProduct.length" disabled size="small" placeholder="璇疯緭鍏�" ></el-input>
+ </el-form-item>
+ <el-form-item label="璇曢獙鏍囧噯:">
+ <span>{{ insOrder.testRequirements?insOrder.testRequirements:'-' }}</span>
</el-form-item>
<el-form-item label="涓嬪彂鏃堕棿:">
<el-input clearable v-model="insOrder.sendTime" disabled size="small" placeholder="璇疯緭鍏�"></el-input>
@@ -298,7 +298,6 @@
</el-form-item>
<el-form-item label="澶囨敞:">
<span style="color:red">{{ insOrder.remark?insOrder.remark:'-' }}</span>
- <!-- <el-tag v-if="currentKey">{{ insOrder.remark }}</el-tag> -->
</el-form-item>
</el-form>
</div>
@@ -309,6 +308,11 @@
<el-radio-group v-model="currentTable" size="small">
<el-radio-button :label="item.templateId" v-for="(item,index) in tableLists" :key="index"
size="small">{{ item.templateName }}</el-radio-button>
+ </el-radio-group>
+ <span style="margin-left: 20px;margin-right: 10px;">妯℃澘鐗堟湰:</span>
+ <el-radio-group v-model="currentTableState" size="small">
+ <el-radio-button label="0" size="small">鐗堟湰涓�</el-radio-button>
+ <el-radio-button label="1" size="small">鐗堟湰浜�</el-radio-button>
</el-radio-group>
</div>
<div style="display: flex;align-items: center;">
@@ -345,22 +349,12 @@
<el-tag :type="item.state==1?'success':'danger'" style="float: right;margin-top: 5px;" size="small">{{ item.state==1?'宸叉':'鏈' }}</el-tag>
</el-option>
</el-select>
- <el-form :inline="true" :model="otherForm" class="form-inline" label-width="50px" style="padding-top: 0;padding-left: 10px;" v-if="PROJECT=='妫�娴嬩腑蹇�'">
- <el-form-item label="娓╁害:" style="margin-bottom: 0;">
- <el-input v-model="otherForm.temperature" :disabled="state>1" size="small" placeholder="" style="width: 90px;" @change="m=>subOtherForm(m,'temperature')" ></el-input>
- <span style="margin-left: 4px;">鈩�</span>
- </el-form-item>
- <el-form-item label="婀垮害:" style="margin-bottom: 0;">
- <el-input v-model="otherForm.humidity" :disabled="state>1" size="small" placeholder="" style="width: 90px;" @change="m=>subOtherForm(m,'humidity')"></el-input>
- <span style="margin-left: 4px;">%</span>
- </el-form-item>
- </el-form>
<el-button type="primary" size="small" v-if="(isGet||tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName=='娓╁害寰幆妫�楠屽師濮嬭褰�'&&temDataAcquisition)&&PROJECT=='妫�娴嬩腑蹇�'&&state==1" @click="getDataAcquisitionDevice" :loading="dataAcquisitionLoading">鏁版嵁閲囬泦</el-button>
<el-button :type="dataAcquisitionEidtAble?'':'primary'" size="small" v-if="(isGet||(tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName=='娓╁害寰幆妫�楠屽師濮嬭褰�'))&&PROJECT=='妫�娴嬩腑蹇�'&&collected&&state==1" @click="dataAcquisitionEidtAble=!dataAcquisitionEidtAble">{{dataAcquisitionEidtAble?'鍏抽棴缂栬緫':'缂栬緫鏁伴噰'}}</el-button>
</div>
</div>
<!-- 甯歌妫�楠屽師濮嬭褰� -->
- <div class="center-box" id="nav" v-loading="tableLoading" v-if="!tableLists.find(m=>m.templateId==currentTable)||(tableLists.find(m=>m.templateId==currentTable).templateName!='娓╁害寰幆妫�楠屽師濮嬭褰�'&&!tableLists.find(m=>m.templateId==currentTable).templateName.includes('鐑惊鐜�')&&!tableLists.find(m=>m.templateId==currentTable).templateName.includes('娓╁崌璇曢獙'))&&(tableLists.find(m=>m.templateId==currentTable).templateName!='寮у瀭鐗规�ф楠屽師濮嬭褰�')">
+ <div class="center-box" id="nav" v-loading="tableLoading" v-if="!tableLists.find(m=>m.templateId==currentTable)||(!tableLists.find(m=>m.templateId==currentTable).templateName.includes('鐢佃矾璇曢獙'))">
<table border="1" class="tables" cellpadding="10" v-for="(item,index) in tableList" :key="index+currentTable+currentSample.id">
<tbody>
<tr v-for="(m,i) in item.arr" :key="i">
@@ -803,6 +797,12 @@
</table>
</div>
</div>
+ <!-- 鐢佃矾璇曢獙 -->
+ <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"></CircuitParameters1>
+ <CircuitParameters2 v-if="currentTableState==1" :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state"></CircuitParameters2>
+ </div>
<el-upload :action="action"
:data="{
orderId:id
@@ -818,43 +818,6 @@
:delUrl="$api.insOrderPlan.delfile"
:key="upIndex" style="height: 100%;margin-top: 16px;"/>
</div>
- <el-drawer title="鍏夌氦鍒囨崲" :visible.sync="fiberOpticVisible" :size="500">
- <el-table class="el-table" ref="fiberOpticTable" :data="fiberOptic" height="100%" tooltip-effect="dark" border
- highlight-current-row @row-click="handleChangeOptic" :row-class-name="tableRowClassName"
- :current-row-key="currentKey2" :row-key="record=>record.index" v-if="fiberOpticVisible">
- <el-table-column type="index" align="center" label="搴忓彿" width="70px" :key="Math.random()">
- </el-table-column>
- <el-table-column prop="bushColor" label="绠″鑹叉爣" min-width="100px" show-overflow-tooltip></el-table-column>
- <el-table-column prop="color" label="鍏夌氦鑹叉爣" min-width="100px" show-overflow-tooltip></el-table-column>
- <el-table-column prop="model" label="鍏夌氦瑙勬牸" min-width="130px" show-overflow-tooltip
- ></el-table-column>
- <el-table-column prop="standard" label="鍙傝�冩爣鍑�" width="100px" show-overflow-tooltip></el-table-column>
- </el-table>
- </el-drawer>
- <el-drawer title="鍏夌氦甯﹀垏鎹�" :visible.sync="fiberOpticTapeVisible" :size="500">
- <el-table class="el-table" ref="fiberOpticTapeTable" :data="fiberOpticTape" height="100%" tooltip-effect="dark" border
- highlight-current-row @row-click="handleChangeTape" :row-class-name="tableRowClassName"
- :current-row-key="currentKey1" :row-key="record=>record.index" v-if="fiberOpticTapeVisible">
- <el-table-column type="index" align="center" label="搴忓彿" width="70px" :key="Math.random()">
- </el-table-column>
- <el-table-column prop="code" label="鍏夌氦甯︾紪鍙�" min-width="110px" show-overflow-tooltip></el-table-column>
- <el-table-column prop="model" label="鍏夌氦甯﹁鏍�" min-width="110px" show-overflow-tooltip></el-table-column>
- <el-table-column prop="standard" label="鍙傝�冩爣鍑�" width="90px" show-overflow-tooltip></el-table-column>
- <el-table-column prop="num" label="鍏夌氦妫�娴嬮噺" min-width="110px" show-overflow-tooltip
- ></el-table-column>
- </el-table>
- </el-drawer>
- <el-drawer title="濂楃鍒囨崲" :visible.sync="bushingVisible" :size="500">
- <el-table class="el-table" ref="bushingTable" :data="bushing" height="100%" tooltip-effect="dark" border
- highlight-current-row @row-click="handleChangeBushing" :row-class-name="tableRowClassName"
- :current-row-key="currentKey0" :row-key="record=>record.index" v-if="bushingVisible">
- <el-table-column type="index" align="center" label="搴忓彿" width="70px" :key="Math.random()">
- </el-table-column>
- <el-table-column prop="color" label="绠¤壊鏍�" min-width="100px" show-overflow-tooltip></el-table-column>
- <el-table-column prop="standNum" label="鏍囬噺" min-width="100px" show-overflow-tooltip></el-table-column>
- <el-table-column prop="testNum" label="娴嬭瘯閲�" min-width="100px" show-overflow-tooltip></el-table-column>
- </el-table>
- </el-drawer>
<el-drawer title="鏍峰搧鍒囨崲" :visible.sync="sampleVisible" :size="500">
<el-table class="el-table" ref="productTable" :data="sampleProduct" height="100%" tooltip-effect="dark" border
highlight-current-row @row-click="handleChangeSample" :row-class-name="tableRowClassName"
@@ -955,15 +918,22 @@
<script>
import ValueTable from '../../tool/value-table.vue'
+ import Circuit from './circuit.vue'
import file from '../../../util/file'
import excelFunction from '../../../util/excelFountion'
+ import CircuitParameters1 from './circuit-parameters1.vue'
+ import CircuitParameters2 from './circuit-parameters2.vue'
export default {
props: ['sonLaboratory', 'orderId', 'state','inspectorList'],
components: {
ValueTable,
+ Circuit,
+ CircuitParameters1,
+ CircuitParameters2
},
data() {
return {
+ currentTableState:0,
sagData: [],
sagForm: {
sampleCode: null,
@@ -1088,9 +1058,6 @@
verifyUser: null,
personList: [],
enumList: [],
- fiberOpticVisible:false,
- fiberOpticTapeVisible:false,
- bushingVisible:false,
fiberOpticTape:[],//鍏夌氦甯﹀垪琛�
fiberOptic:[],//鍏夌氦鍒楄〃
bushing:[],//濂楃鍒楄〃
@@ -1112,10 +1079,6 @@
numOptions:[],
temperatureOptions:[],
wareTableData:[],
- otherForm:{
- humidity:null,
- temperature:null,
- },
equipForm:{
value0:null,
code0:null,
@@ -1142,30 +1105,7 @@
},
thermalCyclingLoading:false,
temDataAcquisition:false,
- getData:[
- {
- faName:'娉㈤暱闄勫姞琛板噺',
- child:[
- {
- name:'1285nm~1330nm',
- arr:[12,13,14,15],
- },
- {
- name:'1525nm~1575nm',
- arr:[12,13,14,15],
- },
- ]
- },
- {
- faName:'鎴嚦娉㈤暱',
- child:[
- {
- name:'鎴嚦娉㈤暱',
- arr:[12,13,14,15],
- }
- ]
- }
- ],
+ getData:[],
getDataIndex:[],
getDataIndexLoading:false,
changeType:null,
@@ -1222,14 +1162,6 @@
this.sampleProduct = res.data.sampleProduct
this.currentSample = this.HaveJson(this.sampleProduct[0])
let insProduct = this.HaveJson(this.currentSample.insProduct)
- // 娓╁害銆佹箍搴﹁祴鍊�
- if(insProduct&&insProduct.length>0){
- let {temperature,humidity} = insProduct[0];
- this.otherForm = {
- temperature:temperature?temperature:null,
- humidity:humidity?humidity:null,
- }
- }
// 鑾峰彇褰撳墠鏍峰搧鐨勬楠岄」
let list = await this.getCurrentProduct(this.currentSample.id,0)
this.currentSample.insProduct = this.HaveJson(list)
@@ -2182,25 +2114,6 @@
this.saveInsContext()
},
// 鐑惊鐜�---缁撴潫
- // 淇濆瓨婀垮害銆佹俯搴︽暟鎹�
- subOtherForm(m,type){
- let ids = []
- for (let i in this.param) {
- ids.push(i)
- }
- this.$axios.post(this.$api.insOrderPlan.write,{
- [type]:Number(m),
- ids
- }, {
- headers: {
- 'Content-Type': 'application/json'
- },
- noQs:true
- }).then(res => {
- if (res.code == 201) return
- this.$message.success('淇濆瓨鎴愬姛')
- })
- },
// 鏉冮檺鑾峰彇
getPower(){
let power = JSON.parse(sessionStorage.getItem('power'))
@@ -2243,63 +2156,6 @@
let res = await this.$axios.post(this.$api.insOrderPlan.getInsProduct+'?id='+id+'&type='+type+'&laboratory='+this.sonLaboratory)
this.tableLoading = false;
return res.data
- },
- handleChangeBushing(row, column, event){
- this.currentBushing = row;
- this.fiberOpticTape = []
- this.currentFiberOpticTape = null;
- this.fiberOptic = []
- this.currentFiberOptic = null;
- if(row.fiber&&row.fiber.length>0){
- // 鐩存帴閰嶇疆鍏夌氦
- this.fiberOptic = row.fiber;
- }else if(row.fibers&&row.fibers.length>0){
- // 閰嶇疆鍏夌氦甯﹀悗锛屽啀閰嶇疆鍏夌氦
- this.fiberOpticTape = row.fibers;
- }
- this.bushingVisible = false;
- this.currentKey0 = row.index
- },
- async handleChangeOptic(row, column, event){
- this.currentFiberOptic = row;
- this.currentFiberOptic.productList.forEach(a => {
- this.param[a.id] = {
- insValue: [],
- comValue: [],
- resValue: null,
- equipValue: [],
- equipName: [],
- insResult: null
- }
- })
- this.fiberOpticVisible = false;
- let list = await this.getCurrentProduct(row.id,2)
- this.getTableLists0(list)
- this.currentKey2 = row.index
- },
- async handleChangeTape(row, column, event){
- this.currentFiberOpticTape = row;
- this.param = {}
- this.fiberOptic = []
- this.currentFiberOptic = null;
- this.currentFiberOpticTape.productList.forEach(a => {
- this.param[a.id] = {
- insValue: [],
- comValue: [],
- resValue: null,
- equipValue: [],
- equipName: [],
- insResult: null
- }
- })
- this.fiberOpticTapeVisible = false;
- let list = await this.getCurrentProduct(row.id,1)
- this.getTableLists0(list)
- if(row.fiber&&row.fiber.length>0){
- // 閰嶇疆鍏夌氦
- this.fiberOptic = row.fiber;
- }
- this.currentKey1 = row.index
},
// 鍒囨崲鏍峰搧
async handleChangeSample(row, column, event) {
@@ -3357,14 +3213,6 @@
this.$message.error("璇锋寚瀹氬鏍镐汉鍛�")
return
}
- if(!this.otherForm.humidity){
- this.$message.error("璇疯緭鍏ユ箍搴�")
- return
- }
- if(!this.otherForm.temperature){
- this.$message.error("璇疯緭鍏ユ俯搴�")
- return
- }
this.addVerifyDia = false
this.submitLoading = true;
this.$axios.post(this.$api.insOrderPlan.checkSubmitPlan, {
@@ -3649,7 +3497,6 @@
insResult: null
}
})
- this.fiberOpticTapeVisible = false;
let list = await this.getCurrentProduct(this.currentFiberOpticTape.id,1)
this.getTableLists0(list)
if(this.currentFiberOpticTape.fiber&&this.currentFiberOpticTape.fiber.length>0){
@@ -3742,6 +3589,10 @@
}else{
return v
}
+ },
+ async getCurrentItem(){
+ let list = await this.getCurrentProduct(this.currentSample.id,0)
+ this.currentSample.insProduct = this.HaveJson(list)
}
}
}
diff --git a/src/components/do/b1-inspect-order-plan/circuit-parameters1.vue b/src/components/do/b1-inspect-order-plan/circuit-parameters1.vue
new file mode 100644
index 0000000..68f6cfa
--- /dev/null
+++ b/src/components/do/b1-inspect-order-plan/circuit-parameters1.vue
@@ -0,0 +1,732 @@
+<template>
+ <div class="circuit-parameters">
+ <el-divider></el-divider>
+ <el-row :gutter="5" 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)">
+ <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>
+ </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-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;" 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>
+ </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 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>
+ </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('闅旂搴�')">
+ <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;">{{ n.tell }}</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>
+ <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>
+ </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>
+ </td>
+ </tr>
+ </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?'鍚堟牸':'寰呭畾') }}
+ </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;">{{ n.tell }}</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>
+ </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>
+ <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" :disabled="state>1" @blur="handleAngle(item.value,index)"></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>
+ </td>
+ </tr>
+ </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?'鍚堟牸':'寰呭畾') }}
+ </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;">{{ n.tell }}</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>
+ <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" :disabled="state>1" @blur="handleAngle(item.value,index)"></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>
+ </td>
+ </tr>
+ </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?'鍚堟牸':'寰呭畾') }}
+ </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;">{{ n.tell }}</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>
+ <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 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>
+ </td>
+ <td>
+ <el-input size="small" placeholder="鏈�宸��" v-model="n.value[index][0]" :disabled="state>1"></el-input>
+ </td>
+ </tr>
+ </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?'鍚堟牸':'寰呭畾') }}
+ </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'],
+ data() {
+ return {
+ value: "",
+ bandList:[],
+ portList:[
+ {
+ value:'1',
+ },
+ {
+ value:'2',
+ },
+ {
+ value:'3',
+ },
+ {
+ value:'4',
+ },
+ ],
+ angleList:[
+ {
+ value:''
+ }
+ ],
+ projectList:[
+ {
+ name:'鐢靛帇椹绘尝姣�',
+ unit:'/',
+ tell:'鈮�1.45',
+ result:'',
+ conclusion:'鍚堟牸',
+ portList:[],
+ angleList:[],
+ value:[],//鍙屽眰鏁扮粍
+ },
+ {
+ name:'鍚屾瀬鍖栭殧绂诲害',
+ unit:'dB',
+ tell:'鈮�1.45',
+ result:'',
+ conclusion:'鍚堟牸',
+ portList:[],
+ angleList:[],
+ value:[],//鍙屽眰鏁扮粍
+ },
+ {
+ name:'浜掕皟',
+ band:'2100MHz',
+ unit:'dB',
+ tell:'鈮�1.45',
+ result:'',
+ conclusion:'鍚堟牸',
+ portList:[],
+ angleList:[],
+ value:[],//鍙屽眰鏁扮粍
+ },
+ {
+ name:'鍋忓樊',
+ unit:'dB',
+ tell:'鈮�1.45',
+ result:'',
+ conclusion:'鍚堟牸',
+ portList:[],
+ angleList:[],
+ value:[],//鍙屽眰鏁扮粍
+ },
+ {
+ name:'鏈�澶ц�﹀悎搴�',
+ unit:'dB',
+ band:'2100MHz',
+ tell:'鈮�1.45',
+ result:'',
+ conclusion:'鍚堟牸',
+ portList:[],
+ angleList:[],
+ value:[],//鍙屽眰鏁扮粍
+ resValue:''
+ },
+ ],
+ allBandList:[],//棰戞
+ insProductNew:[],
+ isMore:false,
+ loading:{}
+ };
+ },
+ watch: {
+ // 瑙掑害鏁伴噺鍙樺寲鏃讹紝鏇存柊鎵�鏈夐娈典笅闈㈢殑鎵�鏈夐」鐩笅鐨勬墍鏈夌鍙e拰瑙掑害
+ angleList(val) {
+ this.allBandList.forEach(item => {
+ item.projectList.forEach(m => {
+ if(m.angleList.length!==val.length){
+ m.angleList = JSON.parse(JSON.stringify(this.angleList))
+ }
+ if(m.inspectionItemSubclass.includes('鑰﹀悎搴�')){
+ for(let i = 0;i<m.angleList.length;i++){
+ if(!m.value[i]){
+ this.$set(m.value,i, [])
+ }
+ if(!m.value[i][0]){
+ m.value[i][0] = ''
+ }
+ }
+ }else{
+ for(let i = 0;i<m.angleList.length;i++){
+ if(!m.value[i]){
+ this.$set(m.value,i, [])
+ }
+ for(let j=0;j<m.portList.length;j++){
+ if(!(m.value[i][j]===''||m.value[i][j])){
+ m.value[i].push('')
+ }
+ }
+ }
+ }
+ })
+ })
+ console.log(this.allBandList)
+ }
+ },
+ mounted() {
+ this.getTypeDicts()
+ this.initData()
+ },
+ methods: {
+ // 瀛楀吀鑾峰彇鏁版嵁
+ getTypeDicts() {
+ this.$axios.post(this.$api.enums.selectEnumByCategory, {
+ category: "鐢佃矾璇曢獙娉㈡"
+ }).then(res => {
+ this.bandList = res.data
+ })
+ },
+ // 鍒濆鍖栨暟鎹�
+ initData(){
+ // 澶勭悊椤圭洰
+ this.insProductNew = JSON.parse(JSON.stringify(this.insProduct))
+ this.insProductNew.forEach(async item => {
+ // 鑾峰彇璁惧鍒楄〃
+ item.equipOptions = await this.getEquipOptions(item)
+ })
+ 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))
+ 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 = []
+ let angleList = []
+ if(n.port&&n.port.split(',').length>0){
+ n.port.split(',').forEach(m=>{
+ portList.push({value:m})
+ })
+ }
+ if(n.angle&&n.angle.split(',').length>0){
+ n.angle.split(',').forEach(m=>{
+ angleList.push({value:m})
+ })
+ this.angleList = angleList
+ }
+ let obj = {
+ inspectionItemSubclass: item.inspectionItemSubclass,
+ unit:item.unit,
+ tell:item.tell,
+ result:n.result,
+ id:item.id,
+ often:n.often,
+ equipName:n.equipName,
+ equipValue:n.equipValue,
+ frequency:n.frequency
+ }
+ this.$set(obj,'portList', n.port?portList:[])
+ this.$set(obj,'angleList', n.angle?angleList:[])
+ 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{
+ // 娌℃湁鍊兼椂锛屽垵濮嬪寲椤甸潰
+ this.insProductNew.forEach(async item => {
+ // 璧嬪�艰澶�
+ item.equipName = ''
+ item.equipValue = ''
+ // 璧嬪�肩鍙e拰瑙掑害
+ item.portList = JSON.parse(JSON.stringify(this.portList))
+ item.angleList = JSON.parse(JSON.stringify(this.angleList))
+ // 璧嬪�肩粨璁�
+ item.result = ''
+ // 璧嬪�兼渶宸��
+ item.value = []
+ if(item.inspectionItemSubclass.includes('鑰﹀悎搴�')){
+ for(let i = 0;i<item.angleList.length;i++){
+ item.value.push([''])
+ }
+ }else{
+ for(let i = 0;i<item.angleList.length;i++){
+ 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))
+ }
+ )
+ }
+ },
+ // 鍒犻櫎鏁扮粍
+ deleteList(index,list,type){
+ 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{
+ if(list[index].frequency){
+ this.$confirm(`鏄惁纭畾鍒犻櫎 ${list[index].often} 棰戠偣鏁版嵁?`, "鎻愮ず", {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ type: "warning"
+ }).then(() => {
+ this.$axios.post(this.$api.insOrderPlan.deleteInsContext2, {
+ frequency:list[index].frequency,
+ productId:list[index].id,
+ often:list[index].often
+ }).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 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)
+ }, {
+ 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){
+ if(type=='浜掕皟'){
+ let obj = null;
+ let index = null;
+ list.forEach((m,i)=>{
+ if(m.inspectionItemSubclass.includes('浜掕皟')){
+ obj = JSON.parse(JSON.stringify(m));
+ index = i;
+ }
+ })
+ list.splice(index+1, 0, obj)
+ }else{
+ let obj = JSON.parse(JSON.stringify(list[0]));
+ list.push(obj)
+ }
+ },
+ // 鑾峰彇璁惧閫夐」 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)
+ },
+ // 缁熶竴淇敼瑙掑害锛屽鏋滆搴︽病鏈夊甫掳锛屽垯鎷兼帴涓�涓�
+ handleAngle(e,index){
+ if(!e){
+ return
+ }
+ let val = e
+ if(!val.includes('掳')){
+ val = val + '掳'
+ }
+ this.allBandList.forEach(item=>{
+ 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 = n.often + 'MHz'
+ }
+ },
+ save(h,y) {
+ let arr = h.projectList.map(item=>{
+ 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
+ })
+ this.$delete(this.loading, y)
+ this.$set( this.loading, y, true)
+ this.$axios.post(this.$api.insOrderPlan.saveInsContext2, {
+ orderId:this.orderId,
+ sampleId:this.sampleId,
+ 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)
+ })
+ }
+ }
+}
+</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;
+}
+</style>
diff --git a/src/components/do/b1-inspect-order-plan/circuit-parameters2.vue b/src/components/do/b1-inspect-order-plan/circuit-parameters2.vue
new file mode 100644
index 0000000..62ef7d0
--- /dev/null
+++ b/src/components/do/b1-inspect-order-plan/circuit-parameters2.vue
@@ -0,0 +1,630 @@
+<template>
+ <div class="circuit-parameters">
+ <el-divider></el-divider>
+ <el-row :gutter="5" 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)">
+ <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>
+ </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-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;" 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)" v-if="!(state>1)&&intermodulationNum>0">娣诲姞瑙掑害</el-button>
+ <el-button size="small" @click="deleteList(angleList.length-1,angleList)" v-if="!(state>1)&&intermodulationNum>0">鍒犻櫎瑙掑害</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 type="primary" size="small" @click="addList(h.projectList,'浜掕皟')" style="margin-left: 16px;" v-if="intermodulationNum>0&&!(state>1)">娣诲姞浜掕皟</el-button>
+ <el-button size="small" @click="deleteList(0,h.projectList,'浜掕皟')" v-if="intermodulationNum>0&&!(state>1)">鍒犻櫎浜掕皟</el-button>
+ <el-button type="primary" size="small" @click="save(h,y)" :disabled="state>1" :loading="loading[y]" style="margin-left: 16px;">淇� 瀛�</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('闅旂搴�')">
+ <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;">{{ n.tell }}</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>
+ <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>
+ <td>
+ <span>鏈�宸��</span>
+ </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" :disabled="state>1"></el-input>
+ </td>
+ </tr>
+ </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?'鍚堟牸':'寰呭畾') }}
+ </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;">{{ n.tell }}</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>
+ </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>
+ <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" :disabled="state>1" @blur="handleAngle(item.value,index)"></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>
+ </td>
+ </tr>
+ </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?'鍚堟牸':'寰呭畾') }}
+ </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'],
+ data() {
+ return {
+ value: "",
+ bandList:[],
+ portList:[
+ {
+ value:'1',
+ },
+ {
+ value:'2',
+ },
+ {
+ value:'3',
+ },
+ {
+ value:'4',
+ },
+ ],
+ angleList:[
+ {
+ value:''
+ }
+ ],
+ projectList:[
+ {
+ inspectionItemSubclass:'鐢靛帇椹绘尝姣�',
+ unit:'/',
+ tell:'鈮�1.45',
+ result:0,
+ portList:[],
+ angleList:[],
+ value:[],//鍙屽眰鏁扮粍
+ },
+ {
+ inspectionItemSubclass:'鍚屾瀬鍖栭殧绂诲害',
+ unit:'dB',
+ tell:'鈮�1.45',
+ result:0,
+ portList:[],
+ angleList:[],
+ value:[],//鍙屽眰鏁扮粍
+ },
+ {
+ inspectionItemSubclass:'浜掕皟',
+ often:'',//浜掕皟鐗规湁瀛楁
+ unit:'dB',
+ tell:'鈮�1.45',
+ result:0,
+ portList:[],
+ angleList:[],
+ value:[],//鍙屽眰鏁扮粍
+ },
+ ],
+ allBandList:[],//棰戞
+ isMore:false,
+ insProductNew:[],
+ intermodulationNum:0,//浜掕皟妫�楠岄」鐩殑鏁伴噺
+ loading:{}
+ };
+ },
+ watch: {
+ // 瑙掑害鏁伴噺鍙樺寲鏃讹紝鏇存柊鎵�鏈夐娈典笅闈㈢殑鎵�鏈夐」鐩笅鐨勬墍鏈夌鍙e拰瑙掑害
+ angleList(val) {
+ this.allBandList.forEach(item => {
+ item.projectList.forEach(m => {
+ if(m.angleList.length!==val.length){
+ m.angleList = JSON.parse(JSON.stringify(this.angleList))
+ }
+ if(m.inspectionItemSubclass.includes('浜掕皟')){
+ for(let i = 0;i<m.angleList.length;i++){
+ if(!m.value[i]){
+ this.$set(m.value,i, [])
+ }
+ for(let j=0;j<m.portList.length;j++){
+ if(!m.value[i][j]){
+ m.value[i].push('')
+ }
+ }
+ }
+ }else{
+ for(let j=0;j<m.portList.length;j++){
+ if(!m.value[0][j]){
+ m.value[0].push('')
+ }
+ }
+ }
+ })
+ })
+ }
+ },
+ mounted() {
+ this.getTypeDicts()
+ this.initData()
+ },
+ methods: {
+ // 瀛楀吀鑾峰彇鏁版嵁
+ getTypeDicts() {
+ this.$axios.post(this.$api.enums.selectEnumByCategory, {
+ category: "鐢佃矾璇曢獙娉㈡"
+ }).then(res => {
+ this.bandList = res.data
+ })
+ },
+ // 鍒濆鍖栨暟鎹�
+ initData(){
+ // 澶勭悊椤圭洰
+ this.insProductNew = JSON.parse(JSON.stringify(this.insProduct))
+ this.insProductNew.forEach(async item => {
+ // 鑾峰彇璁惧鍒楄〃
+ item.equipOptions = await this.getEquipOptions(item)
+ })
+ 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))
+ this.allBandList = []
+ for(let i = 0;i<bandList.length;i++){
+ let arr = []
+ this.insProductNew.forEach(item => {
+ if(item.inspectionItemSubclass.includes('浜掕皟')){
+ this.intermodulationNum++
+ }
+ 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 = []
+ let angleList = []
+ if(n.port&&n.port.split(',').length>0){
+ n.port.split(',').forEach(m=>{
+ portList.push({value:m})
+ })
+ }
+ if(n.angle&&n.angle.split(',').length>0){
+ n.angle.split(',').forEach(m=>{
+ angleList.push({value:m})
+ })
+ this.angleList = angleList
+ }
+ let obj = {
+ inspectionItemSubclass: item.inspectionItemSubclass,
+ unit:item.unit,
+ tell:item.tell,
+ result:n.result,
+ id:item.id,
+ often:n.often,
+ equipName:n.equipName,
+ equipValue:n.equipValue,
+ frequency:n.frequency
+ }
+ this.$set(obj,'portList', n.port?portList:[])
+ this.$set(obj,'angleList', n.angle?angleList:[])
+ 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{
+ // 娌℃湁鍊兼椂锛屽垵濮嬪寲椤甸潰
+ this.insProductNew.forEach(async item => {
+ // 鏄惁瀛樺湪浜掕皟妫�楠岄」鐩�
+ if(item.inspectionItemSubclass.includes('浜掕皟')){
+ this.intermodulationNum++
+ }
+ // 璧嬪�艰澶�
+ item.equipName = ''
+ item.equipValue = ''
+ // 璧嬪�肩鍙e拰瑙掑害
+ item.portList = JSON.parse(JSON.stringify(this.portList))
+ item.angleList = JSON.parse(JSON.stringify(this.angleList))
+ // 璧嬪�肩粨璁�
+ item.result = ''
+ // 璧嬪�兼渶宸��
+ item.value = []
+ if(item.inspectionItemSubclass.includes('浜掕皟')){
+ for(let i = 0;i<item.angleList.length;i++){
+ item.value.push([])
+ for(let j=0;j<item.portList.length;j++){
+ item.value[i].push('')
+ }
+ }
+ }else{
+ item.value.push([])
+ for(let j=0;j<item.portList.length;j++){
+ item.value[0].push('')
+ }
+ }
+ })
+ // 鍒濆鍖栭娈�
+ this.allBandList.push(
+ {
+ band:'',
+ projectList: JSON.parse(JSON.stringify(this.insProductNew))
+ }
+ )
+ }
+ },
+ // 鍒犻櫎鏁扮粍
+ deleteList(index,list,type){
+ 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{
+ if(list[index].frequency){
+ this.$confirm(`鏄惁纭畾鍒犻櫎 ${list[index].often} 棰戠偣鏁版嵁?`, "鎻愮ず", {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ type: "warning"
+ }).then(() => {
+ this.$axios.post(this.$api.insOrderPlan.deleteInsContext2, {
+ frequency:list[index].frequency,
+ productId:list[index].id,
+ often:list[index].often
+ }).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 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)
+ }, {
+ 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){
+ if(type=='浜掕皟'){
+ let obj = null;
+ let index = null;
+ list.forEach((m,i)=>{
+ if(m.inspectionItemSubclass.includes('浜掕皟')){
+ obj = JSON.parse(JSON.stringify(m));
+ index = i;
+ }
+ })
+ list.splice(index+1, 0, obj)
+ }else{
+ let obj = JSON.parse(JSON.stringify(list[0]));
+ list.push(obj)
+ }
+ },
+ // 鑾峰彇璁惧閫夐」 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
+ },
+ // 缁熶竴淇敼瑙掑害锛屽鏋滆搴︽病鏈夊甫掳锛屽垯鎷兼帴涓�涓�
+ handleAngle(e,index){
+ if(!e){
+ return
+ }
+ let val = e
+ if(!val.includes('掳')){
+ val = val + '掳'
+ }
+ this.allBandList.forEach(item=>{
+ item.projectList.forEach(m=>{
+ if(m.inspectionItemSubclass.includes('浜掕皟')){
+ m.angleList.forEach((n,i)=>{
+ if(index==i){
+ n.value = val
+ }
+ })
+ }
+ })
+ })
+ },
+ handlePort(n){
+ if(!n.often){
+ return
+ }
+ if(!n.often.includes('MHz')){
+ n.often = n.often + 'MHz'
+ }
+ },
+ 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)
+ },
+ save(h,y) {
+ let arr = h.projectList.map(item=>{
+ 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
+ })
+ this.$delete(this.loading, y)
+ this.$set( this.loading, y, true)
+ // this.loading[y] = true
+ this.$axios.post(this.$api.insOrderPlan.saveInsContext2, {
+ orderId:this.orderId,
+ sampleId:this.sampleId,
+ 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)
+ })
+ }
+ }
+}
+</script>
+
+<style scoped>
+.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;
+}
+</style>
diff --git a/src/components/do/b1-inspect-order-plan/circuit.vue b/src/components/do/b1-inspect-order-plan/circuit.vue
new file mode 100644
index 0000000..239c7f3
--- /dev/null
+++ b/src/components/do/b1-inspect-order-plan/circuit.vue
@@ -0,0 +1,278 @@
+<template>
+ <div class="circuit">
+ <table border="1" cellpadding="10" class="thermal-table">
+ <tr>
+ <th :colspan="typeList0.length+4" style="font-size: 18px;">瀹ゅ鍒嗗竷100-D瀹介灏勭伅澶╃嚎</th>
+ </tr>
+ <tr>
+ <td class="title">鏍峰搧缂栧彿</td>
+ <td>1111</td>
+ <td class="title">鏍峰搧鍨嬪彿</td>
+ <td>22222</td>
+ <td class="title">璇曢獙鏍囧噯</td>
+ <td :colspan="typeList0.length">鐢典俊</td>
+ </tr>
+ <tr>
+ <td class="title">妫�楠岄」鐩�</td>
+ <td class="title">鍗曚綅</td>
+ <td class="title">鏍囧噯瑕佹眰</td>
+ <td :colspan="typeList0.length+1" class="title">妫�楠岀粨鏋�</td>
+ </tr>
+ <!-- 椹绘尝姣� -->
+ <template>
+ <tr>
+ <td :rowspan="roadList0.length+2">鐢靛帇椹绘尝姣�</td>
+ <td :rowspan="roadList0.length+2">/</td>
+ <td :rowspan="roadList0.length+2">鈮�1.5</td>
+ <td class="title">鏈�宸��</td>
+ <td v-for="(item,index) in typeList0" :key="index+'ooo'"><span style="display: inline-block;width: 40%;">{{ item.label }}</span><el-button icon="el-icon-minus" circle size="mini" type="danger" style="margin-left: 4px;" @click="deleteList(index,'绔彛')"></el-button><el-button icon="el-icon-plus" circle size="mini" type="primary" v-if="index==typeList0.length-1" @click="addInfo('绔彛')"></el-button></td>
+ </tr>
+ <tr v-for="(item,index) in roadList0" :key="index+'iiii'">
+ <td><span style="display: inline-block;width: 70%;">{{ item.label }}</span><el-button icon="el-icon-minus" circle size="mini" type="danger" @click="deleteList(index,'娉㈡')"></el-button></td>
+ <td v-for="(m,i) in typeList0" :key="i+'aaa'">
+ <el-input clearable size="small" placeholder="" v-model="value" :disabled="state>1"></el-input>
+ </td>
+ </tr>
+ <tr>
+ <td><span style="display: inline-block;width: 70%;" class="title">椹绘尝姣旀渶宸��</span><el-button icon="el-icon-plus" circle size="mini" type="primary" @click="addInfo('娉㈡')"></el-button></td>
+ <td v-for="(m,i) in typeList0" :key="i+'bbb'">
+ <span>0</span>
+ </td>
+ </tr>
+ </template>
+ <!-- 闅旂 -->
+ <template>
+ <tr>
+ <td :rowspan="roadList0.length+2">闅旂</td>
+ <td :rowspan="roadList0.length+2">dB</td>
+ <td :rowspan="roadList0.length+2">鈮�-25</td>
+ </tr>
+ <tr v-for="(item,index) in roadList0" :key="index+'eee'">
+ <td>{{ item.label }}</td>
+ <td :colspan="index<isolationList.length-1?2:(typeList0.length/2>0?3:2)" v-for="(item,index) in isolationList" :key="index+'sss'"><el-input clearable size="small" placeholder="" v-model="item.value" :disabled="state>1"></el-input></td>
+ </tr>
+ <tr>
+ <td class="title">闅旂鏈�宸��</td>
+ <td :colspan="index<isolationList.length-1?2:(typeList0.length/2>0?3:2)" v-for="(item,index) in isolationList" :key="index+'ggg'">{{ item.compValue }}</td>
+ </tr>
+ </template>
+ <!-- 浜掕皟 -->
+ <template>
+ <tr>
+ <td :rowspan="bandList0.length+2">浜掕皟37dBm</td>
+ <td :rowspan="bandList0.length+2">dBm</td>
+ <td :rowspan="bandList0.length+2">鈮�-107</td>
+ </tr>
+ <tr v-for="(item,index) in bandList0" :key="index+'yyy'">
+ <td><span style="display: inline-block;width: 70%;">{{ item.label }}</span><el-button icon="el-icon-minus" circle size="mini" type="danger" @click="deleteList(index,'棰戞')"></el-button></td>
+ <td v-for="(m,i) in typeList0" :key="i+'ccc'"><el-input clearable size="small" placeholder="" v-model="value" :disabled="state>1"></el-input></td>
+ </tr>
+ <tr>
+ <td class="title"><span style="display: inline-block;width: 70%;">浜掕皟鏈�宸��</span><el-button icon="el-icon-plus" circle size="mini" type="primary" @click="addInfo('棰戞')"></el-button></td>
+ <td v-for="(m,i) in typeList0" :key="i+'hhh'">0</td>
+ </tr>
+ </template>
+ </table>
+ <el-dialog
+ :title="'閫夋嫨娣诲姞'+currentType"
+ :visible.sync="dialogVisible"
+ width="20%">
+ <el-checkbox-group v-model="checkList" v-if="currentType=='娉㈡'">
+ <el-checkbox :label="item.label" v-for="(item,index) in roadList1" :key="index+'lll'">{{ item.label }}</el-checkbox>
+ </el-checkbox-group>
+ <el-checkbox-group v-model="checkList" v-if="currentType=='棰戞'">
+ <el-checkbox :label="item.label" v-for="(item,index) in bandList1" :key="index+'tttt'">{{ item.label }}</el-checkbox>
+ </el-checkbox-group>
+ <el-checkbox-group v-model="checkList" v-if="currentType=='绔彛'">
+ <el-checkbox :label="item.label" v-for="(item,index) in typeList1" :key="index+'uuuu'">{{ item.label }}</el-checkbox>
+ </el-checkbox-group>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="handleSure">纭� 瀹�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+export default {
+ data() {
+ return {
+ roadList:[],
+ typeList:[],
+ bandList:[],
+ typeList0:[],
+ roadList0:[],
+ bandList0:[],
+ typeList1:[],
+ roadList1:[],
+ bandList1:[],
+ isolationList:[
+ {
+ compValue:'',
+ value:''
+ }
+ ],
+ state: 1,
+ value:'',
+ dialogVisible:false,
+ currentType:'',//娉㈡,棰戞,绔彛
+ checkList:[],
+ }
+ },
+ watch:{
+ roadList0(val){
+ this.roadList1 = this.roadList.filter(item=>{
+ return !val.find(m=>m.id==item.id)
+ })
+ },
+ typeList0(val){
+ this.typeList1 = this.typeList.filter(item=>{
+ return !val.find(m=>m.id==item.id)
+ })
+ this.isolationList = []
+ if(val.length<2){
+ this.isolationList = [{compValue:'',value:''}]
+ }else{
+ let num = Math.floor(val.length/2)
+ for(let i=0;i<num;i++){
+ this.isolationList.push({compValue:'',value:''})
+ }
+ }
+ console.log(this.isolationList)
+ },
+ bandList0(val){
+ this.bandList1 = this.bandList.filter(item=>{
+ return !val.find(m=>m.id==item.id)
+ })
+ },
+ dialogVisible(val){
+ if(!val){
+ this.checkList = []
+ }
+ }
+ },
+ mounted() {
+ this.getTypeDicts()
+ },
+ methods: {
+ getTypeDicts() {
+ this.$axios.post(this.$api.enums.selectEnumByCategory, {
+ category: "鐢佃矾璇曢獙娉㈡"
+ }).then(res => {
+ this.roadList = res.data
+ this.roadList0 = this.HaveJson(this.roadList)
+ })
+ this.$axios.post(this.$api.enums.selectEnumByCategory, {
+ category: "鐢佃矾璇曢獙绔彛"
+ }).then(res => {
+ this.typeList = res.data
+ this.typeList0 = this.HaveJson(this.typeList)
+ })
+ this.$axios.post(this.$api.enums.selectEnumByCategory, {
+ category: "鐢佃矾璇曢獙棰戞"
+ }).then(res => {
+ this.bandList = res.data
+ this.bandList0 = this.HaveJson(this.bandList)
+ })
+ },
+ deleteList(index,type) {
+ switch(type){
+ case '娉㈡':
+ if(this.roadList0.length>1){
+ this.roadList0.splice(index, 1)
+ }else{
+ this.$message.error('鑷冲皯淇濈暀涓�鏉℃暟鎹�')
+ }
+ break;
+ case '棰戞':
+ if(this.bandList0.length>1){
+ this.bandList0.splice(index, 1)
+ }else{
+ this.$message.error('鑷冲皯淇濈暀涓�鏉℃暟鎹�')
+ }
+ break;
+ case '绔彛':
+ if(this.typeList0.length>1){
+ this.typeList0.splice(index, 1)
+ }else{
+ this.$message.error('鑷冲皯淇濈暀涓�鏉℃暟鎹�')
+ }
+ break;
+ }
+ },
+ handleSure(){
+ switch(this.currentType){
+ case '娉㈡':
+ this.roadList.forEach((item,index)=>{
+ let obj = this.checkList.find(m=>m==item.label)
+ if(obj){
+ this.roadList0.push(item)
+ }
+ })
+ this.roadList0 = this.handleSortById(this.roadList0)
+ break;
+ case '棰戞':
+ this.bandList.forEach((item,index)=>{
+ let obj = this.checkList.find(m=>m==item.label)
+ if(obj){
+ this.bandList0.push(item)
+ }
+ })
+ this.bandList0 = this.handleSortById(this.bandList0)
+ break;
+ case '绔彛':
+ this.typeList.forEach((item,index)=>{
+ let obj = this.checkList.find(m=>m==item.label)
+ if(obj){
+ this.typeList0.push(item)
+ }
+ })
+ this.typeList0 = this.handleSortById(this.typeList0)
+ break;
+ }
+ this.dialogVisible = false
+ },
+ // 鏍规嵁Id鎺掑簭
+ handleSortById(arr){
+ return arr.sort((a,b)=>{
+ if(a.id>b.id){
+ return 1;
+ }else if(a.id<b.id){
+ return -1;
+ }else {
+ return 0;
+ }
+ })
+ },
+ addInfo(type){
+ this.currentType = type
+ this.dialogVisible = true
+ },
+ }
+}
+</script>
+
+<style scoped>
+.thermal-table{
+ min-width: calc(100% - 10px);
+ margin: 5px 5px 20px;
+ table-layout: fixed;
+}
+.thermal-table td,.thermal-table th {
+ min-width: 150px;
+ text-align: center;
+ font-size: 14px;
+ word-wrap: break-word;
+ white-space: normal;
+ padding: 5px;
+}
+.thermal-table .el-input{
+ display: flex;
+ align-items: center;
+}
+.title{
+ color: #000 !important;
+ font-weight: 700 !important;
+}
+</style>
diff --git a/src/components/view/b1-inspect-order-plan.vue b/src/components/view/b1-inspect-order-plan.vue
index 5e0dd6f..e3d88d4 100644
--- a/src/components/view/b1-inspect-order-plan.vue
+++ b/src/components/view/b1-inspect-order-plan.vue
@@ -201,7 +201,7 @@
width="100px"
>
<template slot-scope="scope">
- <el-tag :type="typeList.find(m=>m.value==scope.row.insState).type" size="small">{{ typeList.find(m=>m.value==scope.row.insState).label }}</el-tag>
+ <el-tag :type="insStateList.find(m=>m.value==scope.row.insState).type" size="small">{{ insStateList.find(m=>m.value==scope.row.insState).label }}</el-tag>
</template></el-table-column>
<el-table-column
prop="userName"
@@ -502,7 +502,7 @@
loading:false,
currentTime: null,
sonLaboratoryList:[],
- tableData: null,
+ tableData: [],
page:{
current:1,
size:20,
diff --git a/src/main.js b/src/main.js
index bcca7c2..c230f88 100644
--- a/src/main.js
+++ b/src/main.js
@@ -20,7 +20,7 @@
//鏈湴
// Vue.prototype.LOCATIONVUE = "http://127.0.0.1:80";
// const javaApi = 'http://127.0.0.1:8001';
-const javaApi = 'http://192.168.212.249:8001';
+const javaApi = 'http://192.168.159.249:8001';
// //閫氫俊娴嬭瘯搴�
// Vue.prototype.LOCATIONVUE = "http://10.1.13.77:8080";
@@ -28,7 +28,7 @@
//浜�
// Vue.prototype.LOCATIONVUE = "http://114.132.189.42:8080";
-// const javaApi = 'http://114.132.189.42:1234';
+// const javaApi = 'http://10.1.13.77/:1234';
// //妫�娴嬩腑蹇冩寮忓簱
// Vue.prototype.LOCATIONVUE = "http://10.1.200.86:8080";
--
Gitblit v1.9.3