From f743df9508776dd59e19c1d8bd946b49d83e07eb Mon Sep 17 00:00:00 2001 From: licp <lichunping@guanfang.com.cn> Date: 星期六, 29 六月 2024 15:28:41 +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 | 248 ++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 203 insertions(+), 45 deletions(-) diff --git a/src/components/do/b1-ins-order/add.vue b/src/components/do/b1-ins-order/add.vue index 64dc4cd..560dc58 100644 --- a/src/components/do/b1-ins-order/add.vue +++ b/src/components/do/b1-ins-order/add.vue @@ -117,7 +117,7 @@ <div class="ins_order_add"> <div v-show="!configShow&&!equipConfigShow&&!cableConfigShow"> <el-row class="title"> - <el-col :span="6" style="padding-left: 20px;">濮旀墭鍗曚俊鎭� 鎬讳环锛�<span + <el-col :span="6" style="padding-left: 20px;text-align: left;">濮旀墭鍗曚俊鎭� 鎬讳环锛�<span style="color: #3A7BFA">锟{total}}</span></el-col> <el-col :span="18" style="text-align: right;"> <el-select v-model="template" size="medium" placeholder="涓嬪崟妯℃澘" style="margin-right: 10px;" v-show="active==1" @@ -163,8 +163,8 @@ </el-select> </div> </el-col> - <el-col class="search_thing" :span="6"> - <div class="search_label"><span class="required-span">* </span>濮旀墭浜猴細</div> + <el-col class="search_thing" :span="6" > + <div class="search_label"><span class="required-span">* </span>鍒跺崟浜猴細</div> <div class="search_input"> <el-input size="small" clearable disabled v-model="addObj.custom"></el-input> <!-- <el-input readonly size="small" v-model="addObj.custom"> @@ -186,7 +186,7 @@ <el-col class="search_thing" :span="6"> <div class="search_label"><span class="required-span">* </span>鑱旂郴鏂瑰紡锛�</div> <div class="search_input"> - <el-input size="small" placeholder="閫夋嫨濮旀墭瀹㈡埛" clearable disabled v-model="addObj.phone"></el-input> + <el-input size="small" placeholder="閫夋嫨濮旀墭瀹㈡埛" clearable :readonly="active>1" v-model="addObj.phone"></el-input> </div> </el-col> <el-col class="search_thing" :span="6"> @@ -306,7 +306,7 @@ </div> </el-col> <el-col class="search_thing" :span="6"> - <div class="search_label">鍒跺崟浜猴細</div> + <div class="search_label">濮旀墭浜猴細</div> <div class="search_input"> <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addObj.prepareUser" :readonly="active>1"></el-input> </div> @@ -547,6 +547,7 @@ <fiberOpticConfig :currentId="currentId" @saveFiberopticConfig="getTotal()" v-if="configShow" :active="active" /> <equipConfig :currentId="currentId" v-if="equipConfigShow" :active="active" /> <cableConfig v-if="cableConfigShow" :active="active" /> +<!-- 鍗曢�夌壒娈婂�煎鐞嗘--> <el-dialog title="妫�娴嬪埌鐗规畩椤癸紝璇蜂綔鍑轰互涓嬮�夋嫨" :visible.sync="bsm1Dia" width="500px" :show-close="false" :before-close="beforeClose"> <div class="body" style="max-height: 60vh;"> @@ -608,10 +609,70 @@ </el-row> --> </div> </el-dialog> +<!-- 鍏ㄩ�夌壒娈婂�煎鐞嗘--> + <el-dialog title="妫�娴嬪埌鐗规畩椤癸紝璇蜂綔鍑轰互涓嬮�夋嫨" :visible.sync="bsm1DiaAll" width="500px" :show-close="false" + :before-close="beforeClose"> + <div class="body" style="max-height: 60vh;" v-for="(item, index) in bsm1DiaList" :key="index"> + <el-row v-if="item.bsm1"> + <el-col class="search_thing" :span="22" style="height: initial;margin: 5px 0;"> + <div class="search_label"><span class="required-span">* </span>閫夐」锛�</div> + <div class="search_input"> + <el-radio-group v-model="item.bsm1Val" @input="upBsmAll(item)"> + <el-radio v-for="(a, ai) in JSON.parse(item.bsmRow.section)" :key="ai" :label="a" style="margin-bottom: 2px;margin-top: 2px;"></el-radio> + </el-radio-group> + </div> + </el-col> + <el-col class="search_thing" :span="22" style="height: initial;margin: 5px 0;"> + <div class="search_label">瑕佹眰鍊硷細</div> + <div class="search_input" v-show="item.bsm1Val!==null&&item.bsm1Val!==''"> + <el-radio-group v-model="item.bsm1Val" @input="upBsmAll(item)"> + <el-radio v-for="(a, ai) in JSON.parse(item.bsmRow.section)" :key="ai" + :label="a">{{JSON.parse(item.bsmRow.ask)[ai]}}</el-radio> + </el-radio-group> + </div> + </el-col> + </el-row> + <el-row v-if="item.bsm2"> + <el-col class="search_thing" :span="22"> + <div class="search_label" style="width: 220px;"><span class="required-span">* </span>鏍峰搧鐔旀帴閰嶅鏁伴噺锛�</div> + <div class="search_input"> + <el-input-number size="medium" v-model="item.bsm2Val" :min="1" :max="item.bsm2Val3.length" :precision="0" + style="width: 70%;" :controls="false" @change="bsm2Up"></el-input-number> + <span>MAX锛歿{item.bsm2Val3.length}}</span> + </div> + </el-col> + <el-col style="margin-top: 6px;"> + <el-col v-for="(a,ai) in item.bsm2Val2" :key="ai"> + <el-col :span="10"> + <el-select v-model="a[0]" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"> + <el-option v-for="(item,index) in item.sampleList" :key="index" :label="index+1" :value="index+1"> + </el-option> + </el-select> + </el-col> + <!-- <el-col :span="10" class="pairing">{{a[0]}}</el-col> --> + <el-col :span="4" class="pairing" style="border: 0;color: rgba(0, 0, 0, 0.2);">鈥斺��</el-col> + <el-col :span="10"> + <el-select v-model="a[1]" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"> + <el-option v-for="(item,index) in item.sampleList" :key="index" :label="index+1" :value="index+1"> + </el-option> + </el-select> + </el-col> + <!-- <el-col :span="10" class="pairing">{{a[1]}}</el-col> --> + </el-col> + </el-col> + </el-row> + </div> + </el-dialog> <el-dialog title="鐗规畩鍊煎~鍐�" :visible.sync="bsm3Dia" width="800px" :show-close="false"> <el-table :data="editTable" style="width: 100%"> + <!-- inspectionItemList --> + <el-table-column + prop="inspectionItemList" + label="妫�楠岄」" + width="180"> + </el-table-column> <el-table-column prop="sampleCode" label="鏍峰搧缂栧彿" @@ -755,6 +816,7 @@ addSampleDia: false, count: 1, productList: [], + bsm1DiaList: [], productIds: [], getProductLoad: false, saveLoad: false, @@ -786,6 +848,7 @@ bsm1: false, bsm1Val: null, bsm1Dia: false, + bsm1DiaAll: false, equipConfigShow: false, cableConfigShow: false, bsm2: false, @@ -801,6 +864,8 @@ totalArr: [], model: null, standardMethodListId: null, + symbolList:[ + 'RTS','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'] } }, watch: { @@ -906,15 +971,16 @@ this.selectUserDia = false }, containsValue(str) { - let arr = ['RTS','D','W','X','H','L'] - let symbolItem = '' - arr.some(value =>{ - if(str.includes(value)){ - symbolItem = value - return true - } - }) - return symbolItem + if(str){ + let symbolItem = '' + this.symbolList.some(value =>{ + if(str.includes(value)){ + symbolItem = value + return true + } + }) + return symbolItem + } }, handleAsk(ask,symbolItem, value) { try{ @@ -942,6 +1008,12 @@ return code[index] + '' + num } } + }catch(e){} + }, + handleTell(tell,symbolItem, value){ + try{ + let num = this.replaceAll(tell, symbolItem, value) + return num }catch(e){} }, replaceAll(str,find,value) { @@ -985,11 +1057,12 @@ this.saveMethod(sampleList) }).catch(() => {}) }else{ - let isRTS = this.totalArr.find(a => a.ask != null && (a.ask.includes('RTS') || a.ask.includes('D') || a.ask - .includes('W') || - a.ask.includes('X') || a.ask.includes('H') || a.ask.includes('L')) && a.state == 1) + let isRTS = this.totalArr.find(a => a.ask != null && this.symbolList.find(b=>a.ask.includes(b)) && a.state == 1) if (isRTS) { this.editTable = this.handleData(sampleList,this.containsValue, 0) + this.editTable.forEach(item => { + item.value = item.modelNum + }) this.bsm3Dia = true; return } @@ -998,8 +1071,12 @@ } }, save0(){ - let sampleList = this.handleData(this.HaveJson(this.sampleList),this.handleAsk,1) - this.saveMethod(sampleList) + if(this.editTable.every(m=>m.value)){ + let sampleList = this.handleData(this.HaveJson(this.sampleList),this.handleAsk,1) + this.saveMethod(sampleList) + }else{ + this.$message.error('璇峰~鍐欒瘑鍒鍊�') + } }, handleData(sampleList,calBack,type){ let editTable = [] @@ -1009,13 +1086,17 @@ model:item.model, symbolList:[], sampleId:item.id, + modelNum:item.modelNum, } if (item.insProduct && item.insProduct.length > 0) { item.insProduct.forEach(a => { if (a.state == 1) { if(type==0){ let str = calBack(a.ask) - str&&obj.symbolList.push(str) + str&&obj.symbolList.push({ + symbolItem:str, + inspectionItem:a.inspectionItem, + }) }else if(type==1){ let arr = this.editTable.filter(b => b.sampleId == item.id) arr.forEach(f => { @@ -1023,6 +1104,10 @@ 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 } } }) @@ -1040,18 +1125,21 @@ if (c.state == 1) { if(type==0){ let str = calBack(c.ask) - str&&obj.symbolList.push(str) + str&&obj.symbolList.push({ + symbolItem:str, + inspectionItem:c.inspectionItem, + }) }else if(type==1){ - // let ask = calBack(c.ask, c.rts) - // if (ask && c.state == 1) { - // c.ask = csk - // } let arr = this.editTable.filter(b => b.sampleId == item.id) arr.forEach(f => { if(c.ask.includes(f.symbolItem)){ let ask = calBack(c.ask, f.symbolItem,f.value) if (ask) { c.ask = ask + } + let tell = this.handleTell(c.tell, f.symbolItem,f.value) + if (tell) { + c.tell = tell } } }) @@ -1068,7 +1156,10 @@ if (c.state == 1) { if(type==0){ let str = calBack(c.ask) - str&&obj.symbolList.push(str) + str&&obj.symbolList.push({ + symbolItem:str, + inspectionItem:c.inspectionItem, + }) }else if(type==1){ // let ask = calBack(c.ask, c.rts) // if (ask && c.state == 1) { @@ -1080,6 +1171,10 @@ let ask = calBack(c.ask, f.symbolItem,f.value) if (ask) { c.ask = ask + } + let tell = this.handleTell(c.tell, f.symbolItem,f.value) + if (tell) { + c.tell = tell } } }) @@ -1094,7 +1189,10 @@ if (d.state == 1) { if(type==0){ let str = calBack(d.ask) - str&&obj.symbolList.push(str) + str&&obj.symbolList.push({ + symbolItem:str, + inspectionItem:d.inspectionItem, + }) }else if(type==1){ // let ask = calBack(d.ask, d.rts) // if (ask && d.state == 1) { @@ -1106,6 +1204,10 @@ let ask = calBack(d.ask, f.symbolItem,f.value) if (ask) { d.ask = ask + } + let tell = this.handleTell(d.tell, f.symbolItem,f.value) + if (tell) { + d.tell = tell } } }) @@ -1125,7 +1227,23 @@ }) if(type==0){ editTable.forEach(a => { - a.symbolList = Array.from(new Set(a.symbolList)) + a.symbolList.forEach(b => { + let arr = a.symbolList.filter(c => c.symbolItem == b.symbolItem); + b.inspectionItemList = arr.map(c => c.inspectionItem).join(',') + }) + }) + editTable.forEach(a => { + let mySet = new Set(); + a.symbolList = a.symbolList.filter(b =>{ + let num0 = mySet.size; + mySet.add(b.symbolItem); + let num1 = mySet.size; + if(num0!=num1){ + return true; + }else{ + return false + } + }) }) let editTableNew = [] editTable.forEach(a => { @@ -1133,9 +1251,11 @@ let obj = { sampleCode:a.sampleCode, model:a.model, - symbolItem:b, + symbolItem:b.symbolItem, sampleId:a.sampleId, - value:null + value:null, + inspectionItemList:b.inspectionItemList, + modelNum:a.modelNum, } editTableNew.push(obj) }) @@ -1154,6 +1274,7 @@ a.model = a.model + ((a.modelNum == null || a.modelNum == '' || a.modelNum == 'null') ? '' : ( '-' + a.modelNum)) + a.insProduct = a.insProduct.filter(b=>b.state === 1) return a })), pairing: JSON.stringify(this.bsm2Val2) @@ -1173,7 +1294,8 @@ this.saveLoad = true this.$axios.post(this.$api.insOrder.upInsOrderOfState, { state, - id: this.currentId + id: this.currentId, + companyId:this.addObj.companyId }, { headers: { 'Content-Type': 'application/json' @@ -1182,6 +1304,8 @@ this.saveLoad = false if (res.code == 201) return this.$message.success('鎻愪氦鎴愬姛') + // this.$parent.multipleSelection = [{id: this.currentId}] + // this.$parent.print() // 濡傛灉绱ф�ョ▼搴︿负绱ф�ワ紝闇�瑕佺洿鎺ヤ笅鍙戜汉鍛� // if (this.addObj.type == 2) { // this.issuedDialogVisible = true; @@ -1290,7 +1414,7 @@ } }, selectStandardTreeList() { - this.$axios.get(this.$api.standardTree.selectStandardTreeList).then(res => { + this.$axios.get(this.$api.standardTree.selectStandardTreeList2).then(res => { this.list = res.data this.list.forEach(a => { this.expandedKeys.push(a.label) @@ -1430,15 +1554,18 @@ this.$refs.productTable.toggleRowSelection(row, true); }, upProductSelect(selection, row) { + console.log('danxuan', row) + this.bsm1DiaList = [] row.state = row.state == 1 ? 0 : 1 if (row.bsm === '1' && row.section !== '' && row.section !== null && row.state === 1) { if (row.section.indexOf('[') > -1) { - this.bsmRow = this.HaveJson(row) + row.bsmRow = this.HaveJson(row) } - this.bsm1 = true - this.bsm1Dia = true + row.bsm1 = true + this.bsm1DiaList.push(row) + this.bsm1DiaAll = true } else if (row.bsm === '1' && row.section !== '' && row.section !== null && row.state === 0) { - this.bsm1 = false + row.bsm1 = false } if (row.bsm === '1' && row.inspectionItem === '鐔旀帴鎹熻��' && this.sampleList.length > 1 && row.state === 1) { this.bsm2 = true @@ -1697,6 +1824,7 @@ } }, handleAll(e) { + console.log('鍏ㄩ��') if (e.length > 0) { this.productList.map(m => { m.state = 1 @@ -1709,15 +1837,17 @@ }) } this.bsmRow3 = []; + this.bsm1DiaList = [] this.productList.forEach(p => { if (p.bsm === '1' && p.section !== '' && p.section !== null && p.state === 1) { if (p.section.indexOf('[') > -1) { - this.bsmRow = this.HaveJson(p) + p.bsmRow = this.HaveJson(p) } - this.bsm1 = true - this.bsm1Dia = true + p.bsm1 = true + this.bsm1DiaList.push(p) + this.bsm1DiaAll = true } else if (p.bsm === '1' && p.section !== '' && p.section !== null && p.state === 0) { - this.bsm1 = false + p.bsm1 = false } if (p.bsm === '1' && p.inspectionItem === '鐔旀帴鎹熻��' && this.sampleList.length > 1 && p.state === 1) { this.bsm2 = true @@ -1916,13 +2046,41 @@ } } }, - beforeClose(done) { - if (this.bsm1) { - if (this.bsm1Val === null || this.bsm1Val === '') { - this.$message.error('鐗规畩椤圭洰蹇呴』澶勭悊') - return + upBsmAll (item) { + let sections = JSON.parse(item.bsmRow.section); + let asks = JSON.parse(item.bsmRow.ask); + let tells = JSON.parse(item.bsmRow.tell); + let manHours = JSON.parse(item.bsmRow.manHour); + let prices = JSON.parse(item.bsmRow.price); + for (var a in sections) { + if (item.bsm1Val === sections[a]) { + this.productList.forEach(p => { + if (p.id === item.bsmRow.id) { + p.section = sections[a] + p.ask = asks[a] + p.tell = tells[a] + p.manHour = manHours[a] + p.price = prices[a] + } + }) + break } } + }, + beforeClose(done) { + // if (this.bsm1) { + // if (this.bsm1Val === null || this.bsm1Val === '') { + // this.$message.error('鐗规畩椤圭洰蹇呴』澶勭悊') + // return + // } + // } + if (this.bsm1DiaList.length > 0) { + this.bsm1DiaList.forEach(item => { + if (!item.bsm1Val) { + throw this.$message.error('鐗规畩椤圭洰蹇呴』澶勭悊') + } + }) + } if (this.bsm2) { if (this.bsm2Val2.length === 0) { this.$message.error('鐗规畩椤圭洰蹇呴』澶勭悊') -- Gitblit v1.9.3