From 57e76b55709e8ea88a83ab6c3f665fd9ee7fd64c Mon Sep 17 00:00:00 2001 From: licp <lichunping@guanfang.com.cn> Date: 星期三, 03 七月 2024 14:23:48 +0800 Subject: [PATCH] Merge branch 'master' of http://114.132.189.42:9002/r/center-lims-before into master --- src/components/do/b1-ins-order/add.vue | 325 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 303 insertions(+), 22 deletions(-) diff --git a/src/components/do/b1-ins-order/add.vue b/src/components/do/b1-ins-order/add.vue index e25d25d..20b16e4 100644 --- a/src/components/do/b1-ins-order/add.vue +++ b/src/components/do/b1-ins-order/add.vue @@ -70,6 +70,23 @@ line-height: 24px; margin-top: 5px; } + .circulateTable { + display: flex; + flex-direction: row; + justify-content: space-between; + .opticalProject { + width: 38%; + } + .temperatureList { + width: 60%; + .temperatureListTitle { + display: flex; + flex-direction: row; + justify-content: space-between; + line-height: 30px; + } + } + } </style> <style> .ins_order_add .el-input-group__append, @@ -419,6 +436,7 @@ <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px"> <span>妫�楠岄」</span> <el-input + v-if="active==1" v-model="inspectionItem" @input="searchFilterList" size="mini" @@ -432,6 +450,7 @@ <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px"> <span>妫�楠岄」瀛愰」</span> <el-input + v-if="active==1" v-model="inspectionItemSubclass" @input="searchFilterList" size="mini" @@ -446,6 +465,7 @@ <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px"> <span>璇曢獙鏂规硶</span> <el-input + v-if="active==1" v-model="methodS" @input="searchFilterList" size="mini" @@ -734,27 +754,88 @@ </el-row> </span> </el-dialog> - <el-dialog title="娓╁害寰幆瑕佹眰濉啓" :visible.sync="circulateShow" width="800px" :show-close="false"> + <el-dialog title="娓╁害寰幆瑕佹眰濉啓" :visible.sync="circulateShow" width="900px" :before-close="beforeCirculateShowClose" :show-close="false"> <div class="search" style="display: flex;background: transparent;"> <div class="search_thing"> <div class="search_label">淇濇俯鏃堕棿锛�</div> <div class="search_input"> - <el-input v-model="circulateForm.entrustCode" size="small" placeholder=""></el-input> + <el-input v-model="circulateForm.entrustTime" size="small" placeholder="" type="number"></el-input> </div> </div> <div class="search_thing"> <div class="search_label">寰幆娆℃暟锛�</div> <div class="search_input"> - <el-input v-model="circulateForm.entrustCode" size="small" placeholder=""></el-input> + <el-input v-model="circulateForm.entrustNum" size="small" placeholder="" type="number"></el-input> </div> </div> <div class="search_thing"> <div class="search_label">娓╁害鐐癸細</div> <div class="search_input"> - <el-input v-model="circulateForm.entrustCode" size="small" placeholder=""></el-input> + <el-input @blur="changeTemperatureData" v-model="circulateForm.entrustPoint" size="small" placeholder="" type="number"></el-input> </div> </div> </div> + <div class="circulateTable"> + <div class="opticalProject"> + <div style="line-height: 30px;">鍏夌氦椤圭洰</div> + <el-divider></el-divider> + <div> + <el-table + ref="multipleTable" + border + :header-cell-style="{'text-align':'center'}" + :cell-style="{'text-align':'center'}" + :data="opticalProject" + tooltip-effect="dark" + style="width: 100%" + @row-click="rowClickOptical" + @select="selectOpticalProject" + @select-all="selectAllOptical" + @selection-change="handleSelectionChange"> + <el-table-column + type="selection" + width="55"> + </el-table-column> + <el-table-column prop="value" label="鍏夌氦椤圭洰" show-overflow-tooltip></el-table-column> + </el-table> + </div> + </div> + <div class="temperatureList"> + <div class="temperatureListTitle"> + <span>娓╁害鐐归泦鍚�(璇锋寜鐓ч『搴忓~鍐欙紝20鈩冨繀椤讳负棣栦綅)</span> + <span> + <el-button type="primary" size="mini" @click="addTemperatureData">鏂板</el-button> + <el-button size="mini" @click="deleteTemperatureData">鍒犻櫎</el-button> + </span> + </div> + <el-divider></el-divider> + <el-table + :data="temperatureData" + border + :header-cell-style="{'text-align':'center'}" + :cell-style="{'text-align':'center'}" + style="width: 100%"> + <el-table-column prop="date" label="娓╁害鐐�(鈩�)" width="120px"> + <template slot-scope="scope"> + <el-input size="small" v-model="scope.row.temperaturePoint" clearable placeholder="璇疯緭鍏�" @change="changeTemperature"></el-input> + </template> + </el-table-column> + <el-table-column prop="name" label="瑕佹眰(dB/Km)"> + <template slot-scope="scope"> + <span>x</span> + <el-select v-model="scope.row.askSymbol" placeholder="璇烽�夋嫨" size="small" style="width: 120px" @change="changeTemperature"> + <el-option v-for="item in temperatureDataList" :key="item.value" :label="item.label" :value="item.value"> + </el-option> + </el-select> + <el-input size="small" v-model="scope.row.askNum" clearable placeholder="璇疯緭鍏�" style="width: 120px" @change="changeTemperature"></el-input> + </template> + </el-table-column> + </el-table> + </div> + </div> + <span slot="footer" class="dialog-footer"> + <el-button type="primary" @click="spliceData">淇濆瓨</el-button> + </span> </el-dialog> </div> </template> @@ -765,6 +846,7 @@ import equipConfig from './equip-config.vue' import cableConfig from './cable-config.vue' import Vue from 'vue' +import {iuCharts} from "../../../util/echarts"; export default { components: { @@ -874,6 +956,7 @@ productList0: [], bsm1DiaList: [], productIds: [], + productListSelected: [], getProductLoad: false, saveLoad: false, templateDia: false, @@ -926,7 +1009,22 @@ inspectionItemSubclass:null, methodS:null, circulateShow:false, - circulateForm:{} + circulateForm:{ + entrustTime: '', + entrustNum: '', + entrustPoint: '' + }, + isBsm2Val2:false, + opticalProject: [], // 娓╁害寰幆寮规鍏夌氦椤圭洰鍒楄〃 + opticalProjectList: [], // 娓╁害寰幆寮规鍏夌氦椤圭洰閫変腑鐨勬暟缁� + temperatureData: [], // 娓╁害寰幆寮规娓╁害鐐归泦鍚堝垪琛� + temperatureDataList: [ + {label: '<', value: '<'}, + {label: '鈮�', value: '鈮�'}, + {label: '锛�', value: '锛�'}, + {label: '鈮�', value: '鈮�'}, + {label: '锛�', value: '锛�'}, + ] } }, watch: { @@ -1001,6 +1099,145 @@ } }, methods: { + spliceData () { + if (!this.circulateForm.entrustNum || !this.circulateForm.entrustTime || !this.circulateForm.entrustPoint || this.opticalProjectList.length === 0 || this.temperatureData.length === 0) { + this.$message.error('璇峰~鍐欏畬鏁存暟鎹�') + return + } + // 鎷兼帴瑕佹眰鍊糰sk + const opticalProjectList = JSON.parse(JSON.stringify(this.opticalProjectList)) + opticalProjectList.forEach(o => { + o.temperatureData.forEach(t => { + if (!t.temperaturePoint || !t.askSymbol || !t.askNum) { + throw this.$message.error('璇峰~鍐欏畬鏁存暟鎹�') + } + }) + }) + let entrustTime = this.circulateForm.entrustTime + let entrustNum = this.circulateForm.entrustNum + let opticalProjectList2 = JSON.parse(JSON.stringify(this.opticalProjectList)) + let askArr = [] + let opticalProjectArr = [] + opticalProjectList.forEach(o => { + opticalProjectArr.push(o.value) + o.temperatureData.unshift({temperaturePoint: 20}) + o.temperatureData.forEach(t => { + if (!t.askSymbol) { + const askObj = t.temperaturePoint + '鈩�' + ',' + o.value + ',' + null + askArr.push(askObj) + } else { + const askObj = t.temperaturePoint + '鈩�' + ',' + o.value + ',' + t.askSymbol + t.askNum + askArr.push(askObj) + } + }) + }) + askArr.push(this.circulateForm.entrustNum) + const ask = askArr.join(';') + // 鎷兼帴瑕佹眰鎻忚堪tell + let askNum = [] + let temperaturePointList = [] + let temperaturePointList2 = [] + entrustTime = entrustTime + 'h' + entrustNum = entrustNum + '娆�' + opticalProjectList2.forEach(o => { + o.temperatureData.forEach(t => { + t.temperaturePoint = t.temperaturePoint + '鈩�' + temperaturePointList2.push(t.temperaturePoint) + temperaturePointList.push(t.temperaturePoint) + askNum.push(t.askSymbol + t.askNum + 'dB/Km') + }) + }) + temperaturePointList = Array.from(new Set(temperaturePointList)) + temperaturePointList2 = Array.from(new Set(temperaturePointList2)) + temperaturePointList2.unshift(20 + '鈩�') + let additionArr = [] + askNum.forEach(a => { + additionArr.push(temperaturePointList.join(',') + a) + }) + additionArr = Array.from(new Set(additionArr)) + const tell = '娓╁害鑼冨洿:' + temperaturePointList2.join(',') + ';' + '淇濇俯鏃堕棿:' + entrustTime + ';' + '寰幆娆℃暟:' + + entrustNum + ';' + '鍏夌氦(' + opticalProjectArr.join(',') + ')' + '闄勫姞琛板噺缁濆鍊�:' + additionArr.join(';') + this.productList.forEach(item => { + if (item.inspectionItem === '娓╁害寰幆') { + item.ask = ask + item.tell = tell + } + }) + console.log('ask---', ask) + console.log('tell---', tell) + this.circulateShow = false + }, + beforeCirculateShowClose () { + if (!this.circulateForm.entrustNum || !this.circulateForm.entrustTime || !this.circulateForm.entrustPoint || this.opticalProjectList.length === 0 || this.temperatureData.length === 0) { + this.$message.error('璇峰~鍐欏畬鏁存暟鎹�') + return + } + let temperaturePoint1 = JSON.parse(JSON.stringify(this.temperatureData)) + temperaturePoint1.forEach(t => { + if (!t.temperaturePoint || !t.askSymbol || !t.askNum) { + throw this.$message.error('璇峰~鍐欏畬鏁存暟鎹�') + } + }) + }, + handleSelectionChange(val) { + this.opticalProjectList = val; + }, + selectAllOptical (val) { + if (val.length > 0) { + if (val[val.length-1].temperatureData) { + this.temperatureData = this.HaveJson(val.temperatureData) + } else { + this.temperatureData = [] + } + } else { + this.temperatureData = [] + } + this.circulateForm.entrustPoint = this.temperatureData.length + }, + selectOpticalProject (val) { + if (val.temperatureData) { + this.temperatureData = this.HaveJson(val.temperatureData) + } else { + this.temperatureData = [] + } + this.circulateForm.entrustPoint = this.temperatureData.length + }, + rowClickOptical (val) { + const index = this.opticalProjectList.findIndex(item => item.value === val.value) + if (index > -1 && val.temperatureData) { + this.temperatureData = this.HaveJson(val.temperatureData) + } + this.circulateForm.entrustPoint = this.temperatureData.length + }, + changeTemperature () { + this.opticalProjectList.forEach(item => { + item.temperatureData = this.HaveJson(this.temperatureData) + }) + }, + addTemperatureData () { + const obj = {} + this.temperatureData.push(obj) + this.circulateForm.entrustPoint = this.temperatureData.length + }, + deleteTemperatureData () { + if (this.temperatureData.length > 0) { + this.temperatureData = this.temperatureData.slice(0,-1) + } + this.circulateForm.entrustPoint = this.temperatureData.length + }, + changeTemperatureData () { + const length = this.temperatureData.length + const entrustPoint = Number(this.circulateForm.entrustPoint) + if (entrustPoint > length) { + for (let i = 0; i < (entrustPoint - length); i++) { + const obj = {} + this.temperatureData.push(obj) + } + } else if (entrustPoint < length) { + const deleteNum = length - entrustPoint + this.temperatureData = this.temperatureData.slice(0,-deleteNum) + } + }, searchFilterList () { const vtw = { inspectionItem: this.inspectionItem, // 妫�楠岄」 @@ -1129,6 +1366,19 @@ } else if (!this.sampleList.every(m => m.standardMethodListId)) { this.$message.error('璇烽�夋嫨妫�楠屾爣鍑�') } else { + const select = this.selectTree.split(' - ') + const productListSelected = this.productListSelected.some(item => item.inspectionItem === '娓╁害寰幆') + let isHaveBushing = '' + this.sampleList.forEach(item => { + if (!item.bushing || item.bushing.length === 0) { + isHaveBushing = false + } + }) + console.log('isHaveBushing===', isHaveBushing) + if (productListSelected && select[2] === '鍏夌紗' && isHaveBushing === false) { + this.$message.error('鍏夌紗娓╁害寰幆椤圭洰蹇呴』杩涜鍏夌氦閰嶇疆') + return + } let sampleList = this.HaveJson(this.sampleList) let projectNum = this.totalArr.filter(a => a.state == 1).length if(projectNum==0){ @@ -1182,18 +1432,36 @@ }) }else if(type==1){ let arr = this.editTable.filter(b => b.sampleId == item.id) - arr.forEach(f => { - if(a.ask.includes(f.symbolItem)){ - let ask = calBack(a.ask, f.symbolItem,f.value) - if (ask) { - a.ask = ask + for (var i=0;i<arr.length;i++){ + if(a.ask){ + if(a.ask.includes(arr[i].symbolItem)){ + let ask = calBack(a.ask, arr[i].symbolItem,arr[i].value) + if (ask) { + a.ask = ask + } + let tell = this.handleTell(a.tell, arr[i].symbolItem,arr[i].value) + if (tell) { + a.tell = tell + } } - let tell = this.handleTell(a.tell, f.symbolItem,f.value) - if (tell) { - a.tell = tell - } + }else{ + this.$message.error('瑕佹眰鍊间负绌猴紝闇�瑕佸幓鏍囧噯搴撶淮鎶わ紒') } - }) + } + // arr.forEach(f => { + // if(a.ask){ + // if(a.ask.includes(f.symbolItem)){ + // let ask = calBack(a.ask, f.symbolItem,f.value) + // if (ask) { + // a.ask = ask + // } + // let tell = this.handleTell(a.tell, f.symbolItem,f.value) + // if (tell) { + // a.tell = tell + // } + // } + // }else{} + // }) } } }) @@ -1378,7 +1646,8 @@ this.$axios.post(this.$api.insOrder.upInsOrderOfState, { state, id: this.currentId, - companyId:this.addObj.companyId + companyId:this.addObj.companyId, + laboratory:this.addObj.laboratory }, { headers: { 'Content-Type': 'application/json' @@ -1608,6 +1877,7 @@ this.$refs.sampleTable.doLayout() }, selectProduct(val) { + this.productListSelected = val this.productIds = [] val.forEach(a => { this.productIds.push(a.id) @@ -1649,13 +1919,13 @@ } else if (row.bsm === '1' && row.section !== '' && row.section !== null && row.state === 0) { row.bsm1 = false } - if (row.bsm === '1' && row.inspectionItem === '鍏夌氦鎺ュご鎹熻��' && this.sampleList.length > 1 && row.state === 1) { + if (row.bsm === '1' && row.inspectionItem === '鍏夌氦鎺ュご鎹熻��' && this.sampleList.length > 1 && row.state === 1&&!this.isBsm2Val2) { + this.bsm2 = true + this.bsm1Dia = true if (this.bsm2Val2.length === 0) { this.bsm2Val = (this.sampleList.length - 1) * this.sampleList.length / 2 this.computationalPairing(this.sampleList.length) this.bsm2Val2 = this.HaveJson(this.bsm2Val3) - this.bsm2 = true - this.bsm1Dia = true } } else if (row.bsm === '1' && row.inspectionItem === '鍏夌氦鎺ュご鎹熻��' && row.state === 1 && this.sampleList.length > 1) { this.bsm2 = false @@ -1685,11 +1955,21 @@ } return item }) - if (row.inspectionItem === '娓╁害寰幆') { + const select = this.selectTree.split(' - ') + if (row.inspectionItem === '娓╁害寰幆' && select[2] === '鍏夌紗' && row.state === 1) { this.circulateShow = true; return + } else if (row.inspectionItem === '娓╁害寰幆' && select[2] === '鍏夌紗' && row.state === 0) { + this.circulateShow = false; } this.getProNum() + }, + searchProject () { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "鍏夌氦椤圭洰" + }).then(res => { + this.opticalProject = res.data + }) }, permute(nums) { const result = []; @@ -1852,6 +2132,7 @@ }) }, 200) }) + this.searchProject() }, changeModel() { this.sampleList.forEach(a => { @@ -1911,7 +2192,6 @@ } }, handleAll(e) { - console.log('鍏ㄩ��') if (e.length > 0) { this.productList.map(m => { m.state = 1 @@ -1936,7 +2216,7 @@ } else if (p.bsm === '1' && p.section !== '' && p.section !== null && p.state === 0) { p.bsm1 = false } - if (p.bsm === '1' && p.inspectionItem === '鍏夌氦鎺ュご鎹熻��' && this.sampleList.length > 1 && p.state === 1) { + if (p.bsm === '1' && p.inspectionItem === '鍏夌氦鎺ュご鎹熻��' && this.sampleList.length > 1 && p.state === 1&&!this.isBsm2Val2) { this.bsm2 = true this.bsm1Dia = true if (this.bsm2Val2.length === 0) { @@ -2189,6 +2469,7 @@ return } } + this.isBsm2Val2 = true; } // if(this.bsm3){ // if(!this.bsm3Val){ -- Gitblit v1.9.3