From c263fb316fc23d9db98ce711fda30d81c28d2d9c Mon Sep 17 00:00:00 2001 From: zouyu <2723363702@qq.com> Date: 星期四, 08 八月 2024 19:02:10 +0800 Subject: [PATCH] Merge branch 'master' of http://114.132.189.42:9002/r/center-lims-before --- src/components/do/b1-ins-order/add.vue | 284 +++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 256 insertions(+), 28 deletions(-) diff --git a/src/components/do/b1-ins-order/add.vue b/src/components/do/b1-ins-order/add.vue index 04ca996..cc478e4 100644 --- a/src/components/do/b1-ins-order/add.vue +++ b/src/components/do/b1-ins-order/add.vue @@ -154,10 +154,10 @@ <el-button size="medium" type="primary" @click="openConfig" v-if="addObj.sampleType==='鍏夌紗'">鍏夌氦閰嶇疆</el-button> <el-button size="medium" type="primary" @click="save" :loading="saveLoad" v-show="active==1">鎻愪氦</el-button> <!-- 瀹℃牳 --> - <el-button size="medium" @click="upInsOrderOfState(2)" :loading="saveLoad" v-show="active==3" + <el-button size="medium" @click="upInsOrderOfState(2)" :loading="saveLoad" v-show="active==3&&addObj.companyId" :disabled="saveLoad">涓嶉�氳繃</el-button> <el-button size="medium" type="primary" @click="upInsOrderOfState(1)" :loading="saveLoad" - v-show="active==3">閫氳繃</el-button> + v-show="active==3&&addObj.companyId">閫氳繃</el-button> <el-button size="medium" @click="$parent.playOrder(0)"> <span style="color: #3A7BFA;">杩斿洖</span> </el-button> @@ -367,7 +367,7 @@ </div> </div> </div> - <el-table class="el-table sampleTable" ref="sampleTable" :data="sampleList" height="250px" tooltip-effect="dark" + <el-table class="el-table sampleTable" ref="sampleTable" :data="sampleList" max-height="400px" tooltip-effect="dark" border @selection-change="selectSample" highlight-current-row @row-click="rowClick" style="margin-top: 10px;"> <el-table-column type="selection" width="60" :selectable="selectable" v-if="active==1"></el-table-column> <el-table-column type="index" label="搴忓彿" width="65" align="center"></el-table-column> @@ -428,10 +428,10 @@ </el-table-column> <el-table-column prop="proNum" label="寰呮椤规暟閲�" width="105" align="center"></el-table-column> </el-table> - <el-table class="el-table" ref="productTable" :data="productList" height="380px" tooltip-effect="dark" border - @selection-change="selectProduct" style="margin-bottom: 10px;" @select="upProductSelect" :row-key="rowKey" + <el-table class="el-table" ref="productTable" :data="productList" max-height="400px" tooltip-effect="dark" border + @selection-change="selectProduct" style="margin-bottom: 10px;" @select="upProductSelect" :row-class-name="tableRowClassName" v-loading="getProductLoad" @select-all="handleAll"> - <el-table-column type="selection" width="65" :selectable="selectable" v-if="active==1" :reserve-selection="true"></el-table-column> + <el-table-column type="selection" width="65" :selectable="selectable" v-if="active==1"></el-table-column> <el-table-column prop="inspectionItemClass" v-if="PROJECT === '瑁呭鐢电紗'" label="妫�楠岄」鍒嗙被" min-width="140" show-overflow-tooltip></el-table-column> <el-table-column prop="inspectionItemClassEn" v-if="PROJECT === '瑁呭鐢电紗'" label="妫�楠岄」鍒嗙被(EN)" min-width="140" show-overflow-tooltip></el-table-column> <el-table-column prop="inspectionItem" label="妫�楠岄」" min-width="140" show-overflow-tooltip> @@ -475,7 +475,7 @@ <template slot-scope="scope"> <el-input size="small" placeholder="瑕佹眰鍊�" v-model="scope.row.ask" clearable type="textarea" :autosize="{ minRows: 1, maxRows: 3}" @change="e=>requestChange(e,scope.row,'ask')" - v-if="active==1&&isAskOnlyRead"></el-input> + v-if="active==1&&isAskOnlyRead&&scope.row.inspectionValueType!='5'"></el-input> <span v-else> <!-- <template v-if="(scope.row.ask.indexOf('D')>-1 ||scope.row.ask.indexOf('W')>-1 @@ -563,7 +563,8 @@ <el-button type="primary" @click="addTemplateDia" :loading="templateLoading">纭� 瀹�</el-button> </span> </el-dialog> - <el-dialog title="妫�楠屼笅鍙�" :visible.sync="issuedDialogVisible" width="400px"> + <el-dialog title="妫�楠屼笅鍙�" :visible.sync="issuedDialogVisible" width="400px" :close-on-click-modal="false" + :close-on-press-escape="false" :show-close="false"> <div class="body" style="max-height: 60vh;"> <el-row> <el-col class="search_thing" :span="22"> @@ -596,7 +597,7 @@ </div> <span slot="footer" class="dialog-footer"> <el-row> - <el-button @click="issuedDialogVisible=false">鍙� 娑�</el-button> + <el-button @click="issuedDialogVisible=false;$parent.playOrder(0)">鍙� 娑�</el-button> <el-button type="primary" @click="submitForm2" :loading="upLoad">纭� 瀹�</el-button> </el-row> </span> @@ -623,8 +624,11 @@ <equipConfig :currentId="currentId" v-if="equipConfigShow" :active="active" /> <cableConfig v-if="cableConfigShow" :active="active" /> <!-- 鍗曢�夌壒娈婂�煎鐞嗘--> - <el-dialog title="妫�娴嬪埌鐗规畩椤癸紝璇蜂綔鍑轰互涓嬮�夋嫨" :visible.sync="bsm1Dia" min-width="400px" :show-close="false" - :before-close="beforeClose"> + <el-dialog title="妫�娴嬪埌鐗规畩椤癸紝璇蜂綔鍑轰互涓嬮�夋嫨" :visible.sync="bsm1Dia" + :close-on-press-escape="false" + :close-on-click-modal="false" + min-width="400px" :show-close="false" + :before-close="beforeClose"> <div class="body" style="max-height: 60vh;"> <el-row v-if="bsm1"> <el-col class="search_thing" :span="24" style="height: initial;margin: 5px 0;"> @@ -683,9 +687,16 @@ </el-col> </el-row> --> </div> + <span slot="footer" class="dialog-footer"> + <el-row> + <el-button type="primary" @click="save2" :loading="saveLoad">纭� 瀹�</el-button> + </el-row> + </span> </el-dialog> <!-- 鍏ㄩ�夌壒娈婂�煎鐞嗘--> <el-dialog title="妫�娴嬪埌鐗规畩椤癸紝璇蜂綔鍑轰互涓嬮�夋嫨" :visible.sync="bsm1DiaAll" min-width="400px" :show-close="false" + :close-on-press-escape="false" + :close-on-click-modal="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"> @@ -737,8 +748,15 @@ </el-col> </el-row> </div> + <span slot="footer" class="dialog-footer"> + <el-row> + <el-button type="primary" @click="save1" :loading="saveLoad">纭� 瀹�</el-button> + </el-row> + </span> </el-dialog> - <el-dialog title="鐗规畩鍊煎~鍐�" :visible.sync="bsm3Dia" width="800px" :show-close="false"> + <el-dialog title="鐗规畩鍊煎~鍐�" :visible.sync="bsm3Dia" + :close-on-click-modal="false" :close-on-press-escape="false" + width="800px" :show-close="false"> <el-table :data="editTable" style="width: 100%"> @@ -766,7 +784,7 @@ prop="value" label="璇嗗埆绗﹀��"> <template slot-scope="scope"> - <el-input v-model="scope.row.value" placeholder="璇疯緭鍏�" size="small"></el-input> + <el-input v-model="scope.row.value" placeholder="璇疯緭鍏�" @input="inputValueHandler(scope.row,scope.$index)" size="small"></el-input> </template> </el-table-column> </el-table> @@ -777,7 +795,9 @@ </el-row> </span> </el-dialog> - <el-dialog title="娓╁害寰幆瑕佹眰濉啓" :visible.sync="circulateShow" width="900px" :before-close="beforeCirculateShowClose" :show-close="false"> + <el-dialog title="娓╁害寰幆瑕佹眰濉啓" :visible.sync="circulateShow" width="900px" + :close-on-click-modal="false" :close-on-press-escape="false" + :before-close="beforeCirculateShowClose" :show-close="false"> <div class="search" style="display: flex;background: transparent;"> <div class="search_thing"> <div class="search_label">淇濇俯鏃堕棿锛�</div> @@ -862,7 +882,9 @@ </span> </el-dialog> <!-- 鐢靛姏璇曢獙瀹�---娓╁崌璇曢獙/鐑惊鐜� --> - <el-dialog :title="temperatureTitle" :visible.sync="temperatureShow" width="260px" :before-close="temperatureShowClose" :show-close="false"> + <el-dialog :title="temperatureTitle" :visible.sync="temperatureShow" + :close-on-click-modal="false" :close-on-press-escape="false" + width="260px" :before-close="temperatureShowClose" :show-close="false"> <div> <div v-if="isShowInput" style="margin-bottom: 6px"> <span>寰幆娆℃暟:</span> @@ -908,6 +930,7 @@ }, data() { return { + sampleSelectionList: [],//鏍峰搧琛ㄦ牸閫変腑鏁版嵁 editTable:[], template: null, templates: [], @@ -1151,6 +1174,21 @@ } }, methods: { + //鐗规畩鍊煎~鍐欏鐞� + inputValueHandler(row,index){ + if(row){ + const nextIndex = index+1 + for (let i = nextIndex; i < this.editTable.length; i++) { + const element = this.editTable[i]; + if(element.model==row.model){ + this.editTable[i].value = row.value + }else{ + break; + } + } + } + + }, spliceData () { if (!this.circulateForm.entrustNum || !this.circulateForm.entrustTime || !this.circulateForm.entrustPoint || this.opticalProjectList.length === 0 || this.temperatureData.length === 0) { this.$message.error('璇峰~鍐欏畬鏁存暟鎹�') @@ -1219,6 +1257,9 @@ } }) this.circulateShow = false + this.changeProductList0() + this.currentMethod.insProduct = this.productList0 + this.getProNum() }, spliceTemperatureTest () { if (this.temperatureTest.length === 0) { @@ -1376,6 +1417,9 @@ a.price = obj.price a.tell = obj.tell } + if(a.state == 0&&a.bsmRow){ + a = this.HaveJson(a.bsmRow) + } }) }, searchFilterList () { @@ -1529,10 +1573,39 @@ isHaveBushing = false } }) + //杩囨护妫�娴嬮」锛氬幓闄ょ壒娈婇」 + let filterProductList = this.productListSelected.filter(ele=>ele.bsm==0&&/[0-9]/.test(ele.ask)).filter(ele=>{ + if(select[1].indexOf('閫氫俊')>=0 && ['鍏夌紗','鍏夌氦'].includes(select[2])){ + return !['娓╁害寰幆','鍏夌氦鎺ュご鎹熻��'].includes(ele.inspectionItem) + } + return true + }).filter(ele=>{ + if(select[1].indexOf('鐢靛姏')>=0){ + return !['娓╁崌璇曢獙','鐑惊鐜�'].includes(ele.inspectionItem) + } + return true + }) + //鏍¢獙妫�楠岄」鐨勮姹傚�煎拰瑕佹眰鎻忚堪,浠呭鎵樿姹� + if(this.active==1&&this.isAskOnlyRead){ + const isTrue = this.checkRequiredValueAndRemark(filterProductList) + if(!isTrue){ + this.$message.error('妫�楠岄」鐨勮姹傚�间笌瑕佹眰鎻忚堪涓嶅尮閰嶏紝 璇锋鏌�') + return + } + } + console.log('isHaveBushing===', this.totalArr) + // inspectionItem + let spcialItem = null//this.totalArr.find(a => a.state == 1 && a.inspectionItem.includes('鏉惧绠�')) // console.log('isHaveBushing===', isHaveBushing) if (productListSelected && select[2] === '鍏夌紗' && isHaveBushing === false) { this.$message.error('鍏夌紗娓╁害寰幆椤圭洰蹇呴』杩涜鍏夌氦閰嶇疆') - + this.$refs.sampleTable.setCurrentRow(this.currentMethod, true) + this.rowClick(this.currentMethod) + this.sampleIds = [this.currentMethod.id] + this.openConfig() + return + }else if(spcialItem&& isHaveBushing === false){ + this.$message.error('鏉惧绠¢」鐩繀椤昏繘琛屽厜绾ら厤缃�') this.$refs.sampleTable.setCurrentRow(this.currentMethod, true) this.rowClick(this.currentMethod) this.sampleIds = [this.currentMethod.id] @@ -1562,6 +1635,79 @@ this.saveMethod(sampleList) } } + }, + /** + * 鏍¢獙濮旀墭瑕佹眰鐨勬楠岄」鐨勮姹傛弿杩板拰瑕佹眰鍊� + * + */ + checkRequiredValueAndRemark(data){ + let isTrue = true + try{ + data.forEach(ele=>{ + //鍒ゆ柇锛堚墹,鈮�,>,<,=锛夎繖鍑犵鎯呭喌 + //鍒ゆ柇瑕佹眰鍊间腑鐨勬暟瀛楁槸鍚﹀寘鍚湪瑕佹眰鎻忚堪涓� + if(['鈮�','鈮�','>','<','='].includes(ele.ask[0])){ + const askVal = ele.ask.substring(1,ele.ask.length) + if(isNaN(askVal) || ele.tell.indexOf(askVal)<0){ + isTrue = false + } + } + //鍒ゆ柇鑼冨洿(10-25),瑕佹眰鍊煎繀椤绘槸- + if(ele.ask.indexOf('-')>0 && ele.ask.length>1){ + //瑕佹眰鎻忚堪鐨剘鍜岃姹傚�肩殑-锛岀瓑鏁� + let tell = ele.tell + if(ele.tell.indexOf('~')>0){ + tell = ele.tell.replace('~','-') + } + const splits = ele.ask.split('-') + //婊¤冻鏍煎紡瑕佹眰锛屽苟涓斾袱涓兘鏄暟瀛� + if(splits.length==2 && !isNaN(splits[0]) && !isNaN(splits[1])){ + /** + * 鍒ゆ柇鎯呭喌 + * 1.瑕佹眰鎻忚堪涓庤姹傛弿杩扮浉鍚� + * 2.瑕佹眰鎻忚堪鍖呭惈瑕佹眰鍊� + * 3.瑕佹眰鎻忚堪涓�3N-10N杩欑鎯呭喌 + * 4.瑕佹眰鎻忚堪涓�10卤5杩欑鎯呭喌 + * 5. + */ + let min = Math.min(...splits) + let max = Math.max(...splits) + if(min==max){ + isTrue = false + } + //瑕佹眰鎻忚堪涓笉鍖呭惈卤浠ュ強鍖洪棿鐨勬暟瀛楋紝鍒欒繑鍥瀎alse + if((tell.indexOf('卤')<0&&tell.indexOf('-')<0)){ + isTrue = false + }else if(ele.tell.indexOf('-')==0){ + isTrue = false + }else if(tell.indexOf('-')>0){ + const splitTells = tell.split('-') + if(splitTells[0].indexOf(min)<0 || splitTells[1].indexOf(max)<0){ + isTrue = false + } + }else if(tell.indexOf('卤')>0&&tell!=ele.ask){ + //鏍¢獙瑕佹眰鎻忚堪涓�10卤5杩欑鍐欐硶鐨勬儏鍐� + let splitNums = ele.tell.split('卤') + if(splitNums.length<2){ + isTrue = false + }else{ + let minTell = Number(splitNums[0])-Number(splitNums[1]) + let maxTell = Number(splitNums[0])+Number(splitNums[1]) + if(minTell!=min || maxTell!=max){ + isTrue = false + } + } + } + }else{ + isTrue = false + } + } + }) + }catch(error){ + console.log(error); + isTrue = false + } + return isTrue }, save0(){ if(this.editTable.every(m=>m.value)){ @@ -1820,7 +1966,8 @@ state, id: this.currentId, companyId:this.addObj.companyId, - laboratory:this.addObj.laboratory + laboratory:this.addObj.laboratory, + company: this.addObj.company }, { headers: { 'Content-Type': 'application/json' @@ -1910,8 +2057,8 @@ }) }, getProNum() { - this.sampleList.forEach((m, i) => { - Vue.set(this.sampleList[i], 'proNum', m.insProduct.filter(a => a.state == 1).length) + this.sampleSelectionList.forEach((m, i) => { + Vue.set(this.sampleSelectionList[i], 'proNum', m.insProduct.filter(a => a.state == 1).length) }) this.$refs.sampleTable.doLayout() }, @@ -2044,6 +2191,7 @@ val.forEach(a => { this.sampleIds.push(a.id) }) + this.sampleSelectionList = val }, delSample() { this.sampleIds.forEach(a => { @@ -2057,9 +2205,6 @@ }) this.$refs.sampleTable.doLayout() }, - rowKey (row) { - return row.id; - }, selectProduct(val) { this.productListSelected = val this.productIds = [] @@ -2078,13 +2223,21 @@ this.sampleId = row.id if (this.active !== 1) { this.sampleIds = [] - this.sampleIds.push(row.id) + this.sampleSelectionList.forEach(ele=>{ + if(ele.id == row.id){ + this.sampleIds.push(row.id) + } + }) } this.productList = row.insProduct this.productList0 = JSON.parse(JSON.stringify(this.productList)) setTimeout(() => { this.productList.forEach(a => { - if (a.state == 1) this.toggleSelection(a) + if (a.state == 1) { + this.toggleSelection(a) + }else{ + this.$refs.productTable.toggleRowSelection(a, false); + } }) }, 200) }, @@ -2282,6 +2435,11 @@ this.$axios.post(this.$api.insOrder.selectInsOrderTemplateById + '?id=' + e).then(res => { if (res.code == 201) return let obj = JSON.parse(res.data) + console.log(obj); + //鍒跺崟浜鸿缃负褰撳墠鐧诲綍鐢ㄦ埛 + let user = JSON.parse(localStorage.getItem('user')) + obj.addObj.custom = user.name + obj.addObj.userId = user.userId this.addObj = obj.addObj; this.sampleList = obj.sampleList; this.selectTree = obj.selectTree @@ -2328,10 +2486,12 @@ this.isAskOnlyRead = false } this.getProductLoad = true + let selectTreeList = this.selectTree.split(" - ") + this.addObj.model&&(selectTreeList[selectTreeList.length - 1] = this.addObj.model) this.$axios.post(this.$api.standardTree.selectStandardProductList, { - model: row.model + '-' + row.modelNum, + model: (this.addObj.model?this.addObj.model:row.model) + '-' + row.modelNum, standardMethodListId: val, - factory: this.selectTree, + factory: selectTreeList.join(" - "), }, { headers: { 'Content-Type': 'application/json' @@ -2425,6 +2585,7 @@ } }, handleAll(e) { + console.log(1111,this.bsm1DiaAll,this.bsm1Dia) // console.log('e---', e) if (e.length > 0) { this.productList.map(m => { @@ -2435,6 +2596,7 @@ }) } else { this.productList.map(m => { + console.log('m----', m) m.state = 0 return m }) @@ -2572,6 +2734,7 @@ this.$message.error('鏈�変腑鏍峰搧') return } + this.sampleIds = [this.sampleId] this.$axios.post(this.$api.insBushing.selectBushingBySampleId, { sampleId: this.sampleId }).then(res => { @@ -2695,6 +2858,72 @@ this.changeProductList0() this.currentMethod.insProduct = this.productList0 }, + save1 () { + 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('鐗规畩椤圭洰蹇呴』澶勭悊') + return + } + let set = new Set() + for (let i = 0; i < this.bsm2Val2.length; i++) { + let num0 = set.size + set.add(JSON.stringify(this.bsm2Val2[i])) + let num1 = set.size + if (num1 == num0) { + this.$message.error('鍏宠仈椤圭洰涓嶈兘閲嶅') + return + } + set.add(JSON.stringify(this.bsm2Val2[i].reverse())) + let num2 = set.size + if (num1 == num2) { + this.$message.error('鍏宠仈椤圭洰涓嶈兘閲嶅') + return + } + } + this.isBsm2Val2 = true; + } + this.bsm1DiaAll = false + }, + save2 () { + 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('鐗规畩椤圭洰蹇呴』澶勭悊') + return + } + let set = new Set() + for (let i = 0; i < this.bsm2Val2.length; i++) { + let num0 = set.size + set.add(JSON.stringify(this.bsm2Val2[i])) + let num1 = set.size + if (num1 == num0) { + this.$message.error('鍏宠仈椤圭洰涓嶈兘閲嶅') + return + } + set.add(JSON.stringify(this.bsm2Val2[i].reverse())) + let num2 = set.size + if (num1 == num2) { + this.$message.error('鍏宠仈椤圭洰涓嶈兘閲嶅') + return + } + } + this.isBsm2Val2 = true; + } + this.bsm1Dia = false + }, beforeClose(done) { // if (this.bsm1) { // if (this.bsm1Val === null || this.bsm1Val === '') { @@ -2766,9 +2995,8 @@ getTotal() { this.totalArr = [] this.total = 0; - // console.log(this.sampleList) this.sampleList.forEach(item => { - if (item.insProduct && item.insProduct.length > 0) { + if (item.insProduct && item.insProduct.length > 0) { item.insProduct.forEach(a => { this.totalArr.push(a) }) -- Gitblit v1.9.3