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