From 236161bbb70c94de0ef1f6feeb73183adeb78d7d Mon Sep 17 00:00:00 2001 From: licp <lichunping@guanfang.com.cn> Date: 星期三, 19 六月 2024 13:45:49 +0800 Subject: [PATCH] 完成检验下单优化 --- src/components/do/b1-ins-order/add.vue | 355 +++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 251 insertions(+), 104 deletions(-) diff --git a/src/components/do/b1-ins-order/add.vue b/src/components/do/b1-ins-order/add.vue index f2ac520..03bbca0 100644 --- a/src/components/do/b1-ins-order/add.vue +++ b/src/components/do/b1-ins-order/add.vue @@ -305,6 +305,12 @@ <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addObj.otcCode" :readonly="active>1"></el-input> </div> </el-col> + <el-col class="search_thing" :span="6"> + <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> + </el-col> <el-col class="search_thing" :span="6" style="align-items: flex-start;margin: 8px 0;"> <div class="search_label">澶囨敞锛�</div> <div class="search_input"> @@ -427,7 +433,7 @@ :autosize="{ minRows: 1, maxRows: 3}" @change="e=>requestChange(e,scope.row)" v-if="active==1&&isAskOnlyRead"></el-input> <span v-else> - <template v-if="(scope.row.ask.indexOf('D')>-1 + <!-- <template v-if="(scope.row.ask.indexOf('D')>-1 ||scope.row.ask.indexOf('W')>-1 ||scope.row.ask.indexOf('X')>-1 ||scope.row.ask.indexOf('RTS')>-1 @@ -435,7 +441,8 @@ ||scope.row.ask.indexOf('L')>-1)&&active==1"> <input class="askRts" v-model="scope.row.rts" /><br />{{ scope.row.ask }} </template> - <template v-else>{{ scope.row.ask }}</template> + <template v-else>{{ scope.row.ask }}</template> --> + <template >{{ scope.row.ask }}</template> </span> </template> </el-table-column> @@ -601,15 +608,38 @@ </el-row> --> </div> </el-dialog> - <el-dialog title="RTS濉啓" :visible.sync="bsm3Dia" width="500px" :show-close="false" :before-close="beforeClose0"> - <el-row> - <el-col class="search_thing" :span="22" style="display: flex;align-items: center;"> - <div class="search_label"><span class="required-span">* </span>RTS锛�</div> - <div class="search_input"> - <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="bsm3Val"></el-input> - </div> - </el-col> - </el-row> + <el-dialog title="鐗规畩鍊煎~鍐�" :visible.sync="bsm3Dia" width="800px" :show-close="false"> + <el-table + :data="editTable" + style="width: 100%"> + <el-table-column + prop="sampleCode" + label="鏍峰搧缂栧彿" + width="180"> + </el-table-column> + <el-table-column + prop="model" + label="鏍峰搧鍨嬪彿" + width="180"> + </el-table-column> + <el-table-column + prop="symbolItem" + label="璇嗗埆绗﹀彿"> + </el-table-column> + <el-table-column + prop="value" + label="璇嗗埆绗﹀��"> + <template slot-scope="scope"> + <el-input v-model="scope.row.value" placeholder="璇疯緭鍏�" size="small"></el-input> + </template> + </el-table-column> + </el-table> + <span slot="footer" class="dialog-footer"> + <el-row> + <el-button @click="bsm3Dia=false">鍙� 娑�</el-button> + <el-button type="primary" @click="save0" :loading="saveLoad">纭� 瀹�</el-button> + </el-row> + </span> </el-dialog> </div> </template> @@ -639,6 +669,7 @@ }, data() { return { + editTable:[], template: null, templates: [], addObj: { @@ -670,7 +701,8 @@ engineeringEn: null, production: null, productionEn: null, - companyId: null + companyId: null, + prepareUser:null }, sample: { sampleCode: null, @@ -873,43 +905,50 @@ this.addObj.companyId = selects.id this.selectUserDia = false }, - handleAsk(ask, rts) { + 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 + }, + handleAsk(ask,symbolItem, value) { try{ let code = [">", "<", "=", "锛�", "锛�", "鈮�", "鈮�", "卤"]; - if (ask.includes('RTS') || ask.includes('D') || ask.includes('W') || - ask.includes('X') || ask.includes('H') || ask.includes('L')) { - if (ask.includes('&')) { - // 澶氫釜鏉′欢 - let arr0 = ask.split('&') - let arr1 = [] - arr0.forEach(m => { - let index = code.findIndex(b => m.includes(b)) - if (index > -1) { - let arr = m.split(code[index]).filter(b => !!b) - let num = eval(this.replaceAll(arr[0], 'RTS', rts)) - m = code[index] + '' + num - arr1.push(m) - } - }) - return arr1.join('&') - } else { - // 鍗曚釜鏉′欢 - let index = code.findIndex(b => ask.includes(b)) + if (ask.includes('&')) { + // 澶氫釜鏉′欢 + let arr0 = ask.split('&') + let arr1 = [] + arr0.forEach(m => { + let index = code.findIndex(b => m.includes(b)) if (index > -1) { - let arr = ask.split(code[index]).filter(b => !!b) - let num = eval(this.replaceAll(arr[0], 'RTS', rts)) - return code[index] + '' + num + let arr = m.split(code[index]).filter(b => !!b) + let num = eval(this.replaceAll(arr[0], symbolItem, value)) + m = code[index] + '' + num + arr1.push(m) } + }) + return arr1.join('&') + } else { + // 鍗曚釜鏉′欢 + let index = code.findIndex(b => ask.includes(b)) + if (index > -1) { + let arr = ask.split(code[index]).filter(b => !!b) + let num = eval(this.replaceAll(arr[0], symbolItem, value)) + return code[index] + '' + num } } }catch(e){} }, - replaceAll(str, find, rts) { - if (rts === undefined) { + replaceAll(str,find,value) { + if (str === undefined) { return str } - return str.replace('RTS', rts).replace('D', rts).replace('W', rts).replace('X', rts).replace('H', rts).replace( - 'L', rts); + return str.replace(find, value); }, save() { if (!this.addObj.companyId) { @@ -936,61 +975,141 @@ this.$message.error('璇烽�夋嫨妫�楠屾爣鍑�') } else { let sampleList = this.HaveJson(this.sampleList) - let isRTS = this.totalArr.find(a => a.ask != null && (a.ask.includes('RTS') || a.ask.includes('D') || a.ask + let projectNum = this.totalArr.filter(a => a.state == 1).length + if(projectNum==0){ + this.$confirm('妫�楠岄」鐩负绌猴紝鏄惁纭鎻愪氦?', "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" + }).then(() => { + 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) - if (isRTS) { - sampleList.forEach(item => { - if (item.insProduct && item.insProduct.length > 0) { - item.insProduct.forEach(a => { - if (a.state == 1) { - let ask = this.handleAsk(a.ask, a.rts) - if (ask && a.state == 1) { - a.ask = ask + if (isRTS) { + this.editTable = this.handleData(sampleList,this.containsValue, 0) + this.bsm3Dia = true; + return + } + this.saveMethod(sampleList) + } + } + }, + save0(){ + let sampleList = this.handleData(this.HaveJson(this.sampleList),this.handleAsk,1) + this.saveMethod(sampleList) + }, + handleData(sampleList,calBack,type){ + let editTable = [] + sampleList.forEach(item => { + let obj = { + sampleCode:item.sampleCode, + model:item.model, + symbolList:[], + sampleId:item.id, + } + 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) + }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 + } } - } - }) + }) + } } - // 鍏夌氦甯﹂」鐩� - if (item.bushing && item.bushing.length > 0) { - item.bushing.forEach(a => { - if (a.fiber && a.fiber.length > 0) { - a.fiber.forEach(b => { - if (b.productList && b.productList.length > 0) { - b.productList.forEach(c => { - if (c.state == 1) { - let ask = this.handleAsk(c.ask, c.rts) - if (ask && c.state == 1) { - c.ask = ask + }) + } + // 鍏夌氦甯﹂」鐩� + if (item.bushing && item.bushing.length > 0) { + item.bushing.forEach(a => { + if (a.fiber && a.fiber.length > 0) { + a.fiber.forEach(b => { + if (b.productList && b.productList.length > 0) { + b.productList.forEach(c => { + if (c.state == 1) { + if(type==0){ + let str = calBack(c.ask) + str&&obj.symbolList.push(str) + }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 + } } - } - }) + }) + } } }) } - if (a.fibers && a.fibers.length > 0) { - a.fibers.forEach(b => { - if (b.productList && b.productList.length > 0) { - b.productList.forEach(c => { - if (c.state == 1) { - let ask = this.handleAsk(c.ask, c.rts) - if (ask && c.state == 1) { - c.ask = ask - } - } - }) - } - if (b.fiber && b.fiber.length > 0) { - b.fiber.forEach(c => { - if (c.productList && c.productList.length > 0) { - c.productList.forEach(d => { - if (d.state == 1) { - let ask = this.handleAsk(d.ask, d.rts) - if (ask) { - d.ask = ask - } + }) + } + if (a.fibers && a.fibers.length > 0) { + a.fibers.forEach(b => { + if (b.productList && b.productList.length > 0) { + b.productList.forEach(c => { + if (c.state == 1) { + if(type==0){ + let str = calBack(c.ask) + str&&obj.symbolList.push(str) + }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 } - }) + } + }) + } + } + }) + } + if (b.fiber && b.fiber.length > 0) { + b.fiber.forEach(c => { + if (c.productList && c.productList.length > 0) { + c.productList.forEach(d => { + if (d.state == 1) { + if(type==0){ + let str = calBack(d.ask) + str&&obj.symbolList.push(str) + }else if(type==1){ + // let ask = calBack(d.ask, d.rts) + // if (ask && d.state == 1) { + // d.ask = ask + // } + let arr = this.editTable.filter(b => b.sampleId == item.id) + arr.forEach(f => { + if(d.ask.includes(f.symbolItem)){ + let ask = calBack(d.ask, f.symbolItem,f.value) + if (ask) { + d.ask = ask + } + } + }) + } } }) } @@ -1000,27 +1119,54 @@ } }) } - this.saveLoad = true - this.$axios.post(this.$api.insOrder.addInsOrder, { - str: JSON.stringify({ - insOrder: this.addObj, - list: JSON.stringify(sampleList.map(a => { - a.model = a.model + ((a.modelNum == null || a.modelNum == '' || a.modelNum == 'null') ? - '' : ( - '-' + a.modelNum)) - return a - })), - pairing: JSON.stringify(this.bsm2Val2) - }) - }).then(res => { - this.saveLoad = false - if (res.code == 201) return - this.$message.success('宸叉彁浜�') - this.$parent.playOrder(0) - }).catch(e=>{ - this.saveLoad = false + if(type==0){ + editTable.push(obj) + } + }) + if(type==0){ + editTable.forEach(a => { + a.symbolList = Array.from(new Set(a.symbolList)) }) + let editTableNew = [] + editTable.forEach(a => { + a.symbolList.forEach(b => { + let obj = { + sampleCode:a.sampleCode, + model:a.model, + symbolItem:b, + sampleId:a.sampleId, + value:null + } + editTableNew.push(obj) + }) + }) + return editTableNew + }else{ + return sampleList } + }, + saveMethod(sampleList){ + this.saveLoad = true + this.$axios.post(this.$api.insOrder.addInsOrder, { + str: JSON.stringify({ + insOrder: this.addObj, + list: JSON.stringify(sampleList.map(a => { + a.model = a.model + ((a.modelNum == null || a.modelNum == '' || a.modelNum == 'null') ? + '' : ( + '-' + a.modelNum)) + return a + })), + pairing: JSON.stringify(this.bsm2Val2) + }) + }).then(res => { + this.saveLoad = false + if (res.code == 201) return + this.$message.success('宸叉彁浜�') + this.bsm3Dia = false; + this.$parent.playOrder(0) + }).catch(e=>{ + this.saveLoad = false + }) }, upInsOrderOfState(state) { if (state == 1) { @@ -1506,6 +1652,7 @@ let obj = this.sampleIds.find(b => b == a.id) if (obj) { a.standardMethodListId = this.standardMethodListId + this.methodChange(this.standardMethodListId, a) } }) }, -- Gitblit v1.9.3