From cc6914dff1a91dd00e3a86d5daae2c3dba2d6ba8 Mon Sep 17 00:00:00 2001 From: gaoluyang <gaoluyang@rengu.cc> Date: 星期三, 24 七月 2024 16:28:00 +0800 Subject: [PATCH] 检测中心-班次时间配置功能 --- src/components/do/b1-ins-order/add.vue | 247 ++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 224 insertions(+), 23 deletions(-) diff --git a/src/components/do/b1-ins-order/add.vue b/src/components/do/b1-ins-order/add.vue index f350fbc..6d38eb9 100644 --- a/src/components/do/b1-ins-order/add.vue +++ b/src/components/do/b1-ins-order/add.vue @@ -458,6 +458,8 @@ </div> </template> </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="sonLaboratory" label="瀛愬疄楠屽" min-width="130" show-overflow-tooltip :filters="filters" :filter-method="filterHandler"></el-table-column> <el-table-column prop="methodS" label="璇曢獙鏂规硶" min-width="120" show-overflow-tooltip> @@ -563,8 +565,17 @@ <el-col class="search_thing" :span="22"> <div class="search_label"><span class="required-span" v-if="addObj.type == 2">* </span>鎸囨淳浜哄憳锛�</div> <div class="search_input"> - <el-select v-model="distributeData.userId" placeholder="璇烽�夋嫨" size="small" filterable style="width: 100%;"> + <el-select v-model="distributeData.userId" placeholder="璇烽�夋嫨" size="small" filterable style="width: 100%;" @change="changeUser"> <el-option v-for="item in personList" :key="item.value" :label="item.label" :value="item.value"> + </el-option> + </el-select> + </div> + </el-col> + <el-col class="search_thing" :span="22" v-if="distributeData.userId"> + <div class="search_label"><span class="required-span">* </span>璇曢獙瀹わ細</div> + <div class="search_input"> + <el-select v-model="distributeData.sonLaboratory" placeholder="璇烽�夋嫨" size="small" filterable style="width: 100%;"> + <el-option v-for="item in sonLaboratoryList" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> </div> @@ -802,7 +813,7 @@ </div> <div class="temperatureList"> <div class="temperatureListTitle"> - <span>娓╁害鐐归泦鍚�(璇锋寜鐓ч『搴忓~鍐欙紝20鈩冨繀椤讳负棣栦綅)</span> + <span>娓╁害鐐归泦鍚�</span> <span> <el-button type="primary" size="mini" @click="addTemperatureData">鏂板</el-button> <el-button size="mini" @click="deleteTemperatureData">鍒犻櫎</el-button> @@ -834,7 +845,25 @@ </div> </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" width="260px" :before-close="temperatureShowClose" :show-close="false"> + <div> + <div v-if="isShowInput" style="margin-bottom: 6px"> + <span>寰幆娆℃暟:</span> + <!-- <el-input size="small" type="number" v-model="temperatureTestNum" style="width: 120px"></el-input> --> + <el-input-number v-model="temperatureTestNum" :min="2" :max="1000000" size="small" label=""></el-input-number> + </div> + <el-checkbox-group v-model="temperatureTest" @change="handleTemperatureTestChange" style="display: flex;flex-direction: column;"> + <el-checkbox v-for="item in temperatureList" :label="item" :key="item" style="margin-bottom: 6px">{{item}}</el-checkbox> + </el-checkbox-group> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="cleanTemperatureTest">鍙栨秷</el-button> + <el-button type="primary" @click="spliceTemperatureTest">淇濆瓨</el-button> </span> </el-dialog> </div> @@ -965,7 +994,8 @@ issuedDialogVisible: false, distributeData: { appointed: '', - userId: '' + userId: '', + sonLaboratory:'' }, personList: [], upLoad: false, @@ -1024,7 +1054,16 @@ {label: '=', value: '='}, {label: '鈮�', value: '鈮�'}, {label: '>', value: '>'}, - ] + ], + temperatureShow: false, // 娓╁崌璇曢獙妫�楠岄」寮规 + temperatureTest: [], + temperatureList: [], + temperatureEngList: [], + temperatureTitle: '', + temperatureTestNum: '', + isShowInput: false, + temId: '', + sonLaboratoryList:[] } }, watch: { @@ -1112,6 +1151,9 @@ throw this.$message.error('璇峰~鍐欏畬鏁存暟鎹�') } }) + if (!o.temperatureData.some(item => item.temperaturePoint == '20')) { + throw this.$message.error(`${o.value + '娉㈤暱娌℃湁閰嶇疆20鈩冩俯搴︾偣'}`) + } }) let entrustTime = this.circulateForm.entrustTime let entrustNum = this.circulateForm.entrustNum @@ -1123,7 +1165,7 @@ o.temperatureData.unshift({temperaturePoint: 20}) o.temperatureData.forEach(t => { if (!t.askSymbol) { - const askObj = t.temperaturePoint + '鈩�' + ',' + o.value + ',' + null + const askObj = t.temperaturePoint + '鈩�(甯告俯)' + ',' + o.value + ',' + null askArr.push(askObj) } else { const askObj = t.temperaturePoint + '鈩�' + ',' + o.value + ',' + t.askSymbol + t.askNum @@ -1149,7 +1191,7 @@ }) temperaturePointList = Array.from(new Set(temperaturePointList)) temperaturePointList2 = Array.from(new Set(temperaturePointList2)) - temperaturePointList2.unshift(20 + '鈩�') + temperaturePointList2.unshift(20 + '鈩�(甯告俯)') let additionArr = [] askNum.forEach(a => { additionArr.push(temperaturePointList.join(',') + a) @@ -1163,21 +1205,93 @@ item.tell = tell } }) - console.log('ask---', ask) - console.log('tell---', tell) + this.circulateShow = false + }, + spliceTemperatureTest () { + if (this.temperatureTest.length === 0) { + this.$message.error('璇烽�夋嫨') + return + } + let askStr = '' + let askArr1 = [] + let askArr2 = '' + let ask = '' + let index = '' + this.temperatureTest.map(val => { + index = this.temperatureEngList.findIndex(item => item.label === val) + if (index > -1) { + askStr = val + ',' + this.temperatureEngList[index].value + } + askArr1.push(askStr) + }) + + if (this.temperatureTitle === '娓╁崌璇曢獙瑕佹眰濉啓') { + askArr2 = askArr1.join(';') + ask = askArr2 + ';1' + } else { + if (!this.temperatureTestNum) { + this.$message.error('璇峰~鍐欏惊鐜鏁�') + return + } + askArr2 = askArr1.join(';') + ask = askArr2 + ';' + this.temperatureTestNum + } + this.productList.forEach(item => { + if (item.id === this.temId) { + item.ask = ask + item.tell = ask + } + }) + // console.log('ask---', ask) + this.temperatureShow = false + }, + temperatureShowClose () { + if (this.temperatureTitle === '鐑惊鐜姹傚~鍐�' && !this.temperatureTestNum) { + this.$message.error('璇峰~鍐欏惊鐜鏁�') + return + } + if (this.temperatureTest.length === 0) { + this.$message.error('璇烽�夋嫨') + return + } + this.spliceTemperatureTest() + }, + cleanTemperatureTest () { + this.temperatureTest = [] + this.temperatureTestNum = '' + this.temperatureShow = false + }, + cleanSpliceData () { + this.circulateForm.entrustNum = null + this.circulateForm.entrustTime = null + this.circulateForm.entrustPoint = null + this.opticalProjectList = [] + this.$refs.multipleTable.clearSelection() + this.temperatureData = [] 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('璇峰~鍐欏畬鏁存暟鎹�') + 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('璇峰~鍐欏畬鏁存暟鎹�') + } + }) + if (!o.temperatureData.some(item => item.temperaturePoint == '20')) { + throw this.$message.error(`${o.value + '娉㈤暱娌℃湁閰嶇疆20鈩冩俯搴︾偣'}`) + } + }) + this.spliceData() + }, + + handleTemperatureTestChange (value) { + // console.log('value---', value) }, handleSelectionChange(val) { this.opticalProjectList = val; @@ -1374,9 +1488,14 @@ isHaveBushing = false } }) - console.log('isHaveBushing===', isHaveBushing) + // 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 } let sampleList = this.HaveJson(this.sampleList) @@ -1622,9 +1741,22 @@ 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)) + if (this.PROJECT === '瑁呭鐢电紗') { + if (a.modelNum) { + const index = a.modelNum.indexOf('脳') + if (index === 0) { + a.model = a.model + a.modelNum + } else if (index === -1) { + a.model = a.model + '-' + a.modelNum + } else { + a.model = a.modelNum + a.model + } + } else { + a.model = a.model + ((a.modelNum == null || a.modelNum == '' || a.modelNum == 'null') ? '' : ('-' + a.modelNum)) + } + } else { + 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 })), @@ -1695,11 +1827,16 @@ this.$message.error('鎸囨淳浜哄憳鏈~鍐�') return } + if (this.distributeData.userId&&(this.distributeData.sonLaboratory== null ||this.distributeData.sonLaboratory== '')) { + this.$message.error('璇曢獙瀹ゆ湭濉啓') + return + } this.upLoad = true; this.$axios.post(this.$api.insOrder.upInsOrder, { orderId: this.distributeData.orderId, appointed: this.distributeData.appointed, - userId: this.distributeData.userId + userId: this.distributeData.userId, + sonLaboratory:this.distributeData.sonLaboratory }).then(res => { if (res.code === 201) { this.upLoad = false @@ -1962,6 +2099,16 @@ } else if (row.inspectionItem === '娓╁害寰幆' && select[2] === '鍏夌紗' && row.state === 0) { this.circulateShow = false; } + if ((row.inspectionItem === '娓╁崌璇曢獙' || row.inspectionItem === '鐑惊鐜�') && row.state === 1) { + // console.log('row---', row) + this.temperatureTitle = `${row.inspectionItem}瑕佹眰濉啓` + this.isShowInput = row.inspectionItem === '鐑惊鐜�' + this.temId = row.id + this.temperatureShow = true; + return + } else if ((row.inspectionItem === '娓╁崌璇曢獙' || row.inspectionItem === '鐑惊鐜�') && row.state === 0) { + this.temperatureShow = false; + } this.getProNum() }, searchProject () { @@ -2133,6 +2280,20 @@ }, 200) }) this.searchProject() + this.searchTemList() + }, + searchTemList () { + this.temperatureList = [] + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "鐢靛姏娓╁害寰幆妫�楠�" + }).then(res => { + if (res.data.length > 0) { + this.temperatureEngList = res.data + res.data.forEach(item => { + this.temperatureList.push(item.label) + }) + } + }) }, changeModel() { this.sampleList.forEach(a => { @@ -2192,9 +2353,12 @@ } }, handleAll(e) { + // console.log('e---', e) if (e.length > 0) { this.productList.map(m => { - m.state = 1 + if(e.find(a=>a.id == m.id)){ + m.state = 1 + } return m }) } else { @@ -2230,6 +2394,23 @@ this.$message.error('鏍峰搧鏁伴噺涓嶈冻澶熻繘琛岄厤瀵规搷浣�') this.$refs.productTable.clearSelection() return + } + const select = this.selectTree.split(' - ') + if (p.inspectionItem === '娓╁害寰幆' && select[2] === '鍏夌紗' && p.state === 1) { + this.circulateShow = true; + return + } else if (p.inspectionItem === '娓╁害寰幆' && select[2] === '鍏夌紗' && p.state === 0) { + this.circulateShow = false; + } + if ((p.inspectionItem === '娓╁崌璇曢獙' || p.inspectionItem === '鐑惊鐜�') && p.state === 1) { + // console.log('p---', p) + this.temperatureTitle = `${p.inspectionItem}瑕佹眰濉啓` + this.isShowInput = p.inspectionItem === '鐑惊鐜�' + this.temId = p.id + this.temperatureShow = true; + return + } else if ((p.inspectionItem === '娓╁崌璇曢獙' || p.inspectionItem === '鐑惊鐜�') && p.state === 0) { + this.temperatureShow = false; } /* if (p.ask.includes('RTS')&&p.state === 1) { p.rts = '' @@ -2505,6 +2686,7 @@ 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 => { @@ -2563,6 +2745,20 @@ arr0.forEach(item => { this.total += Number(item.price) }) + let arr1 = this.totalArr.filter(item => item.state == 1) + let mySet0 = new Set(); + this.sonLaboratoryList = [] + arr1.forEach(item => { + let num1 = mySet0.size + mySet0.add(item.sonLaboratory) + let num2 = mySet0.size + if(num2>num1){ + this.sonLaboratoryList.push({ + label:item.sonLaboratory, + value:item.sonLaboratory, + }) + } + }) }, bsm2Up(val) { let list = [] @@ -2578,6 +2774,11 @@ for (let a of set) { this.bsm2Val2.push(this.HaveJson(this.bsm2Val3[a - 1])) } + }, + changeUser(){ + if(this.sonLaboratoryList.length>0){ + this.distributeData.sonLaboratory = this.sonLaboratoryList[0].value + } } } } -- Gitblit v1.9.3