From 6f30bbf4f118d3357d1e6e503aa986227e2cc6ea Mon Sep 17 00:00:00 2001 From: licp <lichunping@guanfang.com.cn> Date: 星期二, 20 八月 2024 09:33:40 +0800 Subject: [PATCH] 更新代码 --- src/components/do/b1-ins-order/add.vue | 301 ++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 267 insertions(+), 34 deletions(-) diff --git a/src/components/do/b1-ins-order/add.vue b/src/components/do/b1-ins-order/add.vue index 69407e2..28aeca3 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> @@ -619,7 +620,8 @@ </el-row> </span> </el-dialog> - <fiberOpticConfig :currentId="currentId" @saveFiberopticConfig="getTotal()" v-if="configShow" :active="active" /> + <fiberOpticConfig :currentId="currentId" @saveFiberopticConfig="getTotal()" v-if="configShow && examine==0" :active="active" :inspectionItemST='inspectionItemST' /> + <fiberOpticConfigTwo :currentId="currentId" v-if="configShow && examine==1" :active="active" /> <equipConfig :currentId="currentId" v-if="equipConfigShow" :active="active" /> <cableConfig v-if="cableConfigShow" :active="active" /> <!-- 鍗曢�夌壒娈婂�煎鐞嗘--> @@ -758,7 +760,7 @@ width="800px" :show-close="false"> <el-table :data="editTable" - style="width: 100%"> + style="width: 100%" height="80vh"> <!-- inspectionItemList --> <el-table-column prop="inspectionItemList" @@ -783,7 +785,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> @@ -880,6 +882,15 @@ <el-button type="primary" @click="spliceData">淇濆瓨</el-button> </span> </el-dialog> + <el-dialog title="鍗曟牴鍨傜洿鐕冪儳妫�娴嬫鏁板~鍐�" :visible.sync="singleVerticalCombustionShow" width="900px" + :close-on-click-modal="false" :close-on-press-escape="false" + :before-close="beforeCirculateShowClose" :show-close="false"> + <div>111</div> + <span slot="footer" class="dialog-footer"> + <el-button @click="cleanSpliceData">鍙栨秷</el-button> + <el-button type="primary" @click="spliceData">淇濆瓨</el-button> + </span> + </el-dialog> <!-- 鐢靛姏璇曢獙瀹�---娓╁崌璇曢獙/鐑惊鐜� --> <el-dialog :title="temperatureTitle" :visible.sync="temperatureShow" :close-on-click-modal="false" :close-on-press-escape="false" @@ -905,6 +916,7 @@ <script> import ValueTable from '../../tool/value-table.vue' import fiberOpticConfig from './fiberoptic-config.vue' +import fiberOpticConfigTwo from './fiberoptic-config-two.vue' import equipConfig from './equip-config.vue' import cableConfig from './cable-config.vue' import Vue from 'vue' @@ -914,10 +926,15 @@ components: { ValueTable, fiberOpticConfig, + fiberOpticConfigTwo, equipConfig, cableConfig }, props: { + examine: { + type: Number, + default: () => 0 + }, active: { type: Number, default: () => 0 @@ -929,6 +946,8 @@ }, data() { return { + inspectionItemST: null, + sampleSelectionList: [],//鏍峰搧琛ㄦ牸閫変腑鏁版嵁 editTable:[], template: null, templates: [], @@ -1077,6 +1096,7 @@ entrustNum: '', entrustPoint: '' }, + singleVerticalCombustionShow: false, isBsm2Val2:false, opticalProject: [], // 娓╁害寰幆寮规鍏夌氦椤圭洰鍒楄〃 opticalProjectList: [], // 娓╁害寰幆寮规鍏夌氦椤圭洰閫変腑鐨勬暟缁� @@ -1120,6 +1140,25 @@ }) this.filters = arr } + } + }, + productListSelected: { + deep: true, + handler(val) { + if(val.length>0){ + for(let i =0 ; i< val.length; i++){ + if(val[i].inspectionItem.includes('鏉惧绠�')){ + this.inspectionItemST = 1 + break; + }else{ + this.inspectionItemST = 0 + } + } + }else{ + this.inspectionItemST = 0 + } + + console.log('0000',this.inspectionItemST); } }, sampleList: { @@ -1172,6 +1211,20 @@ } }, methods: { + //鐗规畩鍊煎~鍐欏鐞� + inputValueHandler(row,index){ + if(row){ + const nextIndex = index+1 + console.log(nextIndex, this.editTable) + for (let i = nextIndex; i < this.editTable.length; i++) { + const element = this.editTable[i]; + if(element.model==row.model&&row.symbolItem==element.symbolItem){ + this.editTable[i].value = row.value + } + } + } + + }, spliceData () { if (!this.circulateForm.entrustNum || !this.circulateForm.entrustTime || !this.circulateForm.entrustPoint || this.opticalProjectList.length === 0 || this.temperatureData.length === 0) { this.$message.error('璇峰~鍐欏畬鏁存暟鎹�') @@ -1556,13 +1609,43 @@ isHaveBushing = false } }) - // console.log('isHaveBushing===', isHaveBushing) - if (productListSelected && select[2] === '鍏夌紗' && isHaveBushing === false) { - this.$message.error('鍏夌紗娓╁害寰幆椤圭洰蹇呴』杩涜鍏夌氦閰嶇疆') + //杩囨护妫�娴嬮」锛氬幓闄ょ壒娈婇」 + 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) + let spcialItem = this.totalArr.filter(a => a.state == 1 && a.inspectionItem.includes('鏉惧绠�')) + if (productListSelected && select[2] === '鍏夌紗' && isHaveBushing === false&&spcialItem.length==0) { + 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.length>0&& isHaveBushing === false){ + this.$message.error('鏉惧绠¢」鐩繀椤昏繘琛屽厜绾ら厤缃�') + // this.$refs.sampleTable.setCurrentRow(this.currentMethod, true) + // this.rowClick(this.currentMethod) + spcialItem.forEach(item=>{ + this.sampleIds.push(item.id) + }) this.openConfig() return } @@ -1589,6 +1672,112 @@ 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){ + console.log(1111); + isTrue = false + } + } + //鍒ゆ柇鑼冨洿(10-25),瑕佹眰鍊煎繀椤绘槸- + if(ele.ask.indexOf('-')>0 && ele.ask.length>1){ + //瑕佹眰鎻忚堪鐨剘鍜岃姹傚�肩殑-锛岀瓑鏁� + let tell = ele.tell + if(ele.tell.indexOf('~')>0 || ele.tell.indexOf('锛�') || ele.tell.indexOf('锛�')){ + tell = tell.replace('~','-') + tell = tell.replace('锛�','(') + tell = 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){ + console.log(2222); + isTrue = false + } + //瑕佹眰鎻忚堪涓笉鍖呭惈卤浠ュ強鍖洪棿鐨勬暟瀛楋紝鍒欒繑鍥瀎alse + if(tell.indexOf('卤')<0&&tell.indexOf('-')<0){ + console.log(3333,ele); + console.log(3333333,tell,tell.indexOf('卤')<0,tell.indexOf('-')<0); + isTrue = false + }else if(ele.tell.indexOf('-')==0){ + console.log(4444); + isTrue = false + }else if(tell.indexOf('-')>0){ + if(tell.indexOf('卤')>0){ + ////鏍¢獙瑕佹眰鎻忚堪涓�(10-15)卤5杩欑鍐欐硶鐨勬儏鍐� + const num = tell.split('卤')[1] + const startIndex = tell.indexOf('(') + const endIndex = tell.indexOf(')') + if(startIndex>-1 && endIndex>0 ){ + const str = tell.substring(startIndex,endIndex) + if(str && str.indexOf('-')>0){ + let strList = str.split('-') + const minNum = Number(strList[0]-num) + const maxNum = Number(strList[1]+num) + if(minNum>min || maxNum<max){ + console.log(555555); + isTrue = false + } + } + }else{ + //鏍¢獙瑕佹眰鎻忚堪涓�10卤5杩欑鍐欐硶鐨勬儏鍐� + let splitNums = ele.tell.split('卤') + if(splitNums.length<2){ + console.log(66666); + isTrue = false + }else{ + let minTell = Number(splitNums[0])-Number(splitNums[1]) + let maxTell = Number(splitNums[0])+Number(splitNums[1]) + if(minTell!=min || maxTell!=max){ + console.log(7777777); + isTrue = false + } + } + } + }else{ + const splitTells = tell.split('-') + if(splitTells[0].indexOf(min)<0 || splitTells[1].indexOf(max)<0){ + console.log(88888888); + isTrue = false + } + } + } + }else{ + console.log(89999999); + isTrue = false + } + } + // else if(ele.ask.indexOf('&')>0 && ele.ask.length>1){ + // //鍒ゆ柇 + // } + }) + }catch(error){ + console.log(error); + isTrue = false + } + return isTrue }, save0(){ if(this.editTable.every(m=>m.value)){ @@ -1805,7 +1994,6 @@ }, saveMethod(sampleList){ this.saveLoad = true - console.log(333333,sampleList) this.$axios.post(this.$api.insOrder.addInsOrder, { str: JSON.stringify({ insOrder: this.addObj, @@ -1848,7 +2036,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' @@ -1938,8 +2127,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() }, @@ -1956,7 +2145,23 @@ this.selectTree = '' this.models = val.children this.getNodeParent(node) + + let flag = false + if (node.level == 3) { + if(node.data.children.length>0){ + node.data.children.forEach(a => { + let key = Object.keys(a) + if(!key.includes('level')) { + flag = true + } + }) + + } + } this.selectTree = this.selectTree.replace(' - ', '') + if(flag) { + this.selectTree = '- - ' + this.selectTree + } let data = this.selectTree.split(' - ') let data2 = '' for (let index = data.length - 1; index >= 0; index--) { @@ -1995,7 +2200,7 @@ this.addObj.factory = trees[0] this.addObj.laboratory = trees[1] this.addObj.sampleType = trees[2] - if (trees[3] === undefined || trees[3] === '') { + if (trees[3] === undefined || trees[3] === '' || trees[3] === '- ') { this.addObj.sample = trees[2] } else { this.addObj.sample = trees[3] @@ -2057,12 +2262,12 @@ this.sample.unit = this.addObj.unit this.sample.standardMethodListId = null this.sample.insProduct = [] - this.sample.id = this.count + this.sample.id = parseInt(i+1) this.sample.childSampleList = [] this.sample.insulating = null this.sample.sheath = null this.sampleList.push(this.HaveJson(this.sample)) - this.count++ + // this.count++ } this.computationalPairing(this.sampleList.length) this.bsm2Val2 = this.HaveJson(this.bsm2Val3) @@ -2072,6 +2277,7 @@ val.forEach(a => { this.sampleIds.push(a.id) }) + this.sampleSelectionList = val }, delSample() { this.sampleIds.forEach(a => { @@ -2085,9 +2291,6 @@ }) this.$refs.sampleTable.doLayout() }, - rowKey (row) { - return row.id; - }, selectProduct(val) { this.productListSelected = val this.productIds = [] @@ -2106,7 +2309,11 @@ 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)) @@ -2141,6 +2348,7 @@ row.bsm1 = false }else if(arr.length>0){ try{ + row.bsmRow = this.HaveJson(row) let section = arr[0].section let arr0 = JSON.parse(row.section) let arr1 = JSON.parse(row.ask) @@ -2208,6 +2416,13 @@ } else if ((row.inspectionItem === '娓╁崌璇曢獙' || row.inspectionItem === '鐑惊鐜�') && row.state === 0) { this.temperatureShow = false; } + // if (row.inspectionItem === '鍗曟牴鍨傜洿鐕冪儳' && select[2] === '鍏夌紗' && row.state === 1) { + // this.singleVerticalCombustionShow = true; + // return + // } else if (row.inspectionItem === '鍗曟牴鍨傜洿鐕冪儳' && select[2] === '鍏夌紗' && row.state === 0) { + // this.singleVerticalCombustionShow = false; + // } + this.changeProductList0() this.currentMethod.insProduct = this.productList0 this.getProNum() @@ -2313,6 +2528,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 @@ -2361,6 +2581,8 @@ this.getProductLoad = true let selectTreeList = this.selectTree.split(" - ") this.addObj.model&&(selectTreeList[selectTreeList.length - 1] = this.addObj.model) + + console.log( this.selectTree); this.$axios.post(this.$api.standardTree.selectStandardProductList, { model: (this.addObj.model?this.addObj.model:row.model) + '-' + row.modelNum, standardMethodListId: val, @@ -2433,17 +2655,27 @@ }, // 瑕佹眰鍊煎彉鍖栨椂 requestChange(e, row,type) { - this.sampleList.map(item => { - if (this.sampleIds.indexOf(item.id) > -1) { - item.insProduct.map(m => { - if (m.id == row.id) { - m[type] = e; + //this.currentMethod 褰撳墠鏍峰搧id + this.sampleList.forEach(item=>{ + if(item.id == this.currentMethod.id){ + item.insProduct.forEach(i=>{ + if(i.id == row.id){ + i[type] = e } - return m; }) } - return item }) + // this.sampleList.map(item => { + // if (this.sampleIds.indexOf(item.id) > -1) { + // item.insProduct.map(m => { + // if (m.id == row.id) { + // m[type] = e; + // } + // return m; + // }) + // } + // return item + // }) }, selectStandardMethods() { this.$axios.get(this.$api.standardTree.selectStandardMethodEnum).then(res => { @@ -2458,6 +2690,7 @@ } }, handleAll(e) { + console.log(1111,this.bsm1DiaAll,this.bsm1Dia) // console.log('e---', e) if (e.length > 0) { this.productList.map(m => { @@ -2606,6 +2839,7 @@ this.$message.error('鏈�変腑鏍峰搧') return } + this.sampleIds = [this.sampleId] this.$axios.post(this.$api.insBushing.selectBushingBySampleId, { sampleId: this.sampleId }).then(res => { @@ -2866,7 +3100,6 @@ getTotal() { this.totalArr = [] this.total = 0; - // console.log(this.sampleList) this.sampleList.forEach(item => { if (item.insProduct && item.insProduct.length > 0) { item.insProduct.forEach(a => { -- Gitblit v1.9.3