From 3845f43c43252185a134566a63670de9d1c2d253 Mon Sep 17 00:00:00 2001 From: licp <lichunping@guanfang.com.cn> Date: 星期一, 28 十月 2024 15:06:45 +0800 Subject: [PATCH] Merge branch 'master' of http://114.132.189.42:9002/r/tx-lims-before into master --- src/components/do/b1-inspect-order-plan/Inspection.vue | 278 ++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 203 insertions(+), 75 deletions(-) diff --git a/src/components/do/b1-inspect-order-plan/Inspection.vue b/src/components/do/b1-inspect-order-plan/Inspection.vue index d85d83e..c2bf51b 100644 --- a/src/components/do/b1-inspect-order-plan/Inspection.vue +++ b/src/components/do/b1-inspect-order-plan/Inspection.vue @@ -260,17 +260,17 @@ <el-col :span="12" style="padding-left: 20px;text-align: left;" :class="{noShow:noBack}">妫�楠屽崟璇︽儏 </el-col> <el-col :span="12" style="text-align: right;"> - <el-button size="small" type="primary" @click="versionDialogVisible=true">妫�楠屾ā鏉垮垏鎹�</el-button> + <el-button size="small" type="primary" @click="versionDialogVisible=true" v-if="state==1&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName.includes('鐢佃矾璇曢獙')">妫�楠屾ā鏉垮垏鎹�</el-button> <el-button size="small" type="primary" @click="sampleVisible=true;uploadSample()">鏍峰搧鍒囨崲</el-button> <el-button size="small" type="primary" @click="taskVisible=true" v-show="!isLook">浠诲姟鍒囨崲</el-button> <el-button size="small" type="primary" @click="handleSubmit" v-if="state==1" :loading="submitLoading">鎻愪氦</el-button> <!-- 澶嶆牳 --> - <el-button size="small" type="primary" @click="upInsReview(1)" :loading="reviewLoading" + <el-button size="small" type="primary" @click="upInsReview(1,'缁х画璇曢獙')" :loading="reviewLoading" v-if="state>1&&!isLook">缁х画璇曢獙</el-button> - <el-button size="small" @click="upInsReview(0)" v-if="state>1&&!isLook" type="danger">鍐嶆璇曢獙</el-button> - <el-button size="small" @click="upInsReview(2)" v-if="state>1&&!isLook">缁撴潫璇曢獙</el-button> - <el-button size="small" @click="$emit('goback')" v-if="!noBack">杩斿洖</el-button> + <el-button size="small" @click="upInsReview(0,'鍐嶆璇曢獙')" v-if="state>1&&!isLook" type="danger">鍐嶆璇曢獙</el-button> + <el-button size="small" @click="upInsReview(2,'缁撴潫璇曢獙')" v-if="state>1&&!isLook">缁撴潫璇曢獙</el-button> + <el-button size="small" @click="handleBack" v-if="!noBack">杩斿洖</el-button> </el-col> </el-row> <div class="search" v-show="!isLook"> @@ -303,6 +303,9 @@ </el-form-item> <el-form-item label="褰撳墠鏍峰搧浣嶆暟:"> <el-tag v-if="currentKey">{{ `NO.${currentKey}` }}</el-tag> + </el-form-item> + <el-form-item label="" v-if="insOrder.rule"> + <el-tag>{{ !insOrder.rule.includes('涓嶈�冭檻涓嶇‘瀹氬害')?insOrder.rule.split('-')[0]+' '+insOrder.rule.split('-')[1]+'%':insOrder.rule }}</el-tag> </el-form-item> <el-form-item label="澶囨敞:"> <span style="color:red">{{ insOrder.remark?insOrder.remark:'-' }}</span> @@ -344,7 +347,7 @@ </div> --> </div> <!-- 甯歌妫�楠屽師濮嬭褰� --> - <div class="center-box" id="nav" v-loading="tableLoading" v-if="!tableLists.find(m=>m.templateId==currentTable)||(!tableLists.find(m=>m.templateId==currentTable).templateName.includes('鐢佃矾璇曢獙'))"> + <div class="center-box" id="nav" v-loading="tableLoading" v-if="!tableLists.find(m=>m.templateId==currentTable)||(!tableLists.find(m=>m.templateId==currentTable).templateName.includes('鐢佃矾璇曢獙')&&!tableLists.find(m=>m.templateId==currentTable).templateName.includes('娓╂箍搴﹁瘯楠�')&&!tableLists.find(m=>m.templateId==currentTable).templateName.includes('鍔熺巼瀹归噺'))"> <table border="1" class="tables" cellpadding="10" v-for="(item,index) in tableList" :key="index+currentTable+currentSample.id"> <tbody> <tr v-for="(m,i) in item.arr" :key="i"> @@ -453,6 +456,20 @@ <i v-if="currentFiberOptic" class="el-icon-caret-right table_caret" @click="caretOptic(1)"></i> </div> + </template> + <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='璇曢獙鍓嶆牱鍝佹鏌�'"> + <el-select class="table_input" v-model="n.v.v" + :disabled="state>1|| (n.u != userId && n.u != undefined && n.u != '')" @change="(val)=>changeSampleCheck(val, n,'鍓�')"> + <el-option label="瀹屽ソ" :value="'瀹屽ソ'"></el-option> + <el-option label="鐮存崯" :value="'鐮存崯'"></el-option> + </el-select> + </template> + <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='璇曢獙鍚庢牱鍝佹鏌�'"> + <el-select class="table_input" v-model="n.v.v" + :disabled="state>1|| (n.u != userId && n.u != undefined && n.u != '')" @change="(val)=>changeSampleCheck(val, n,'鍚�')"> + <el-option label="瀹屽ソ" :value="'瀹屽ソ'"></el-option> + <el-option label="鐮存崯" :value="'鐮存崯'"></el-option> + </el-select> </template> <span v-else :style="`font-family:${n.v.ff} !important;`" v-html="getValue(n.v)" ></span> </div> @@ -712,9 +729,18 @@ <CircuitParameters1 v-if="currentTableState==0" :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :num="currentSample.num1" :isLook="isLook" :currentNum="currentNum"></CircuitParameters1> <CircuitParameters2 v-if="currentTableState==1" :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :num="currentSample.num1" :isLook="isLook" :currentNum="currentNum"></CircuitParameters2> </div> + <!-- 娓╂箍搴﹁瘯楠� --> + <div v-else-if="tableLists.find(m=>m.templateId==currentTable).templateName.includes('娓╂箍搴﹁瘯楠�')"> + <Humidity :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :isLook="isLook" :num="currentSample.num1"/> + </div> + <!-- 鍔熺巼璇曢獙 --> + <div v-else-if="tableLists.find(m=>m.templateId==currentTable).templateName.includes('鍔熺巼瀹归噺')"> + <PowerCapacity :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :isLook="isLook" :num="currentSample.num1" /> + </div> <el-upload :action="action" :data="{ - orderId:id + orderId:id, + sonLaboratory:sonLaboratory }" v-if="state==1&&fileAdd" :on-success="handleSuccessUp" :show-file-list="false" @@ -837,19 +863,43 @@ <el-button type="primary" :loading="versionLoading" @click="saveVersion">纭� 瀹�</el-button> </span> </el-dialog> - <el-dialog title="璇曢獙淇℃伅" :visible.sync="experimentDia" width="400px"> - <div class="body" style="display: flex;padding: 10px;align-items: center;"> - <div class="search_label" style="width: 150px;"><span class="required-span">*</span>瀹為獙闃舵</div> - <div class="search_input" style="width: 100%;"> - <el-input clearable v-model="experimentInfo.term" size="small" placeholder=""></el-input> + <el-dialog title="璇曢獙淇℃伅" :visible.sync="experimentDia" width="50%"> + <div style="height: 80vh;overflow-y: auto;"> + <div class="body" style="display: flex;padding: 10px;align-items: center;" v-if="experimentDia0"> + <div class="search_label" style="width: 150px;"><span class="required-span">*</span>瀹為獙闃舵</div> + <div class="search_input" style="width: 100%;"> + <el-input clearable v-model="experimentInfo.term" size="small" placeholder=""></el-input> + </div> </div> - </div> - <div class="body" style="display: flex;padding: 10px;align-items: center;"> - <div class="search_label" style="width: 150px;"><span class="required-span">*</span>瀹為獙鎿嶄綔</div> - <div class="search_input" style="width: 100%;"> - <el-input clearable v-model="experimentInfo.note" size="small" placeholder="" type="textarea" - :rows="2"></el-input> + <div class="body" style="display: flex;padding: 10px;align-items: center;" v-if="experimentDia0"> + <div class="search_label" style="width: 150px;"><span class="required-span">*</span>瀹為獙鎿嶄綔</div> + <div class="search_input" style="width: 100%;"> + <el-input clearable v-model="experimentInfo.note" size="small" placeholder="" type="textarea" + :rows="2"></el-input> + </div> </div> + <table border="1" cellpadding="10" class="thermal-table"> + <tr style="font-size: 18px;font-weight: 500;background-color: #F0F1F5;padding: 10px 0;box-sizing: border-box;"> + <td>鏍峰搧</td> + <td>鏍峰搧缂栧彿</td> + <td>鍨嬪彿</td> + <td>妫�楠岄」</td> + <td>妫�楠屽瓙椤�</td> + <td>宸ユ椂</td> + </tr> + <template v-for="(item,index) in sampleProduct"> + <tr> + <td :rowspan="item.insProduct.length+1">{{ item.sample }}</td> + <td :rowspan="item.insProduct.length+1">{{ item.sampleCode }}</td> + <td :rowspan="item.insProduct.length+1">{{ item.model }}</td> + </tr> + <tr v-for="(m,i) in item.insProduct" :key="item.id+i"> + <td>{{ m.inspectionItem }}</td> + <td>{{ m.inspectionItemSubclass }}</td> + <td><el-input-number v-model="m.outputWorkTime" :min="0" :max="100" label="宸ユ椂" size="small"></el-input-number></td> + </tr> + </template> + </table> </div> <span slot="footer" class="dialog-footer"> <el-button @click="experimentDia = false">鍙� 娑�</el-button> @@ -859,7 +909,7 @@ <el-dialog title="鏂囦欢棰勮" :visible.sync="lookFileVisible" - width="60%" fullscreen> + width="60%" fullscreen :modal="false"> <filePreview v-if="lookFileVisible" :fileUrl="currentFile.url" :currentFile="currentFile" style="max-height: 87vh;overflow-y: auto;"/> </el-dialog> @@ -868,25 +918,28 @@ <script> import ValueTable from '../../tool/value-table.vue' - import Circuit from './circuit.vue' import file from '../../../util/file' import excelFunction from '../../../util/excelFountion' import CircuitParameters1 from './circuit-parameters1.vue' import CircuitParameters2 from './circuit-parameters2.vue' + import Humidity from './humidity.vue' + import PowerCapacity from './power-capacity.vue' import filePreview from '../../tool/file-preview.vue' export default { props: ['sonLaboratory', 'orderId', 'state','inspectorList','version','orderStateId','isLook','num1','noBack'], components: { ValueTable, - Circuit, CircuitParameters1, CircuitParameters2, - filePreview + filePreview, + Humidity, + PowerCapacity, }, data() { return { lookFileVisible:false,//棰勮鏂囦欢 experimentDia:false, + experimentDia0:false, experimentInfo:{ note:'', term:'' @@ -934,7 +987,8 @@ }, componentData0: { entity: { - insOrderId:'' + insOrderId:'', + sonLaboratory:this.sonLaboratory }, isIndex: true, showSelect: false, @@ -1149,7 +1203,9 @@ resValue: null, equipValue: [], equipName: [], - insResult: null + insResult: null, + beforeCheck:null, + afterCheck:null, } } }) @@ -2163,7 +2219,9 @@ resValue: null, equipValue: [], equipName: [], - insResult: null + insResult: null, + beforeCheck:null, + afterCheck:null, } } }) @@ -2211,7 +2269,9 @@ resValue: null, equipValue: [], equipName: [], - insResult: null + insResult: null, + beforeCheck:null, + afterCheck:null, } }) // 椤甸潰鍒楄〃鏁版嵁澶勭悊 @@ -2663,6 +2723,16 @@ }) } } + if (b.v.ps != undefined && b.v.ps.value === '璇曢獙鍓嶆牱鍝佹鏌�') { + // b.v.v = '' + this.$set(b.v, 'v', '' ) + this.param[b.i].beforeCheck = b + } + if (b.v.ps != undefined && b.v.ps.value === '璇曢獙鍚庢牱鍝佹鏌�') { + // b.v.v = '' + this.$set(b.v, 'v', '' ) + this.param[b.i].afterCheck = b + } set.add(b.r) // 濡傛灉妯℃澘鍒楄〃鐨勫嚱鏁板瓨鍦�,閭d箞鍔犲叆鍒癳xcel鍑芥暟鍒楄〃閲岄潰 if (b.v.f) { @@ -2759,10 +2829,18 @@ } catch (e) {} try { // 鏈�缁堝�艰祴鍊� - this.param[a.id].resValue.v.v = this.toFixed(a.lastValue,this.param[a.id].resValue.v.ct) + this.param[a.id].resValue = {v:{v:a.lastValue}} + // this.param[a.id].resValue.v.v = this.toFixed(a.lastValue,this.param[a.id].resValue.v.ct) // 缁撹璧嬪�� - this.param[a.id].insResult.v.v = a.insResult - } catch (e) {} + this.param[a.id].insResult = {v:{v:a.insResult}} + // this.param[a.id].insResult.v.v = a.insResult + // 妫�楠屽墠鏍峰搧妫�鏌ヨ祴鍊� + this.param[a.id].afterCheck.v.v = a.insProductResult.afterCheck + // 妫�楠屽悗鏍峰搧妫�鏌ヨ祴鍊� + this.param[a.id].beforeCheck.v.v = a.insProductResult.beforeCheck + } catch (e) { + console.log('error',e) + } }) // 瀵筫xcel鍑芥暟杩涜澶勭悊 this.handleExcelMethod() @@ -2795,6 +2873,13 @@ n.v.v = n.v.v.replace('/', '') } } + // 閫氫俊鐗规畩澶勭悊锛屾楠屽�煎~鍏ヤ箣鍚庣洿鎺ヤ繚瀛樻暟鎹紝鍒ゆ柇缁撴灉榛樿涓�3 + for (var i in this.param){ + this.param[i].insResult = {v:{v:3}} + } + this.saveInsContext(n.i) + return; + // 浠ヤ笅鏄甯哥殑鍒ゆ柇娴佺▼锛屽悗闈㈡湁闇�瑕佸垯杩涘叆姝ゆ祦绋� try { // 鍚� Worker 鍙戦�佹秷鎭紝寮�濮嬪鐞嗛�昏緫 this.worker.postMessage(JSON.stringify({ @@ -2811,7 +2896,6 @@ } catch (error) { console.log(444,error); } - // 鐩戝惉 Worker 杩斿洖鐨勭粨鏋� this.worker.onmessage = (event) => { this.result = JSON.parse(event.data); @@ -2824,6 +2908,7 @@ if(this.result.value.currentInsItemId){ currentInsItemId = this.result.value.currentInsItemId } + // console.log(this.result,123); // 鐗规畩澶勭悊涓�涓嬬粨璁�,浼氭湁杩欑鐗规畩鎯呭喌 for (var i in this.param){ if(this.param[i].insResult&&this.param[i].insResult.v&&this.param[i].insResult.v.v){ @@ -2835,33 +2920,6 @@ } } this.saveInsContext(currentInsItemId) - // 濡傛灉鏄暟閲囧彲缂栬緫杈撳叆鐨勬儏鍐�,鍙互鐩存帴淇濆瓨鏁版嵁 - // if(this.getDataType==2){ - // this.saveInsContext(currentInsItemId) - // }else{ - // if(this.isGet&&!this.dataAcquisitionEidtAble){ - // if(this.result.value.getDataTypeId==''){ - // // 濡傛灉鏄暟閲囦笉鍙紪杈戣緭鍏ョ殑鎯呭喌,涓旀渶鍚庝竴涓暟閲囨病鏈夊畬鎴�,鍒欎笉淇濆瓨鏁版嵁 - // return - // } - // // 淇濆瓨鏁版嵁 - // setTimeout(()=>{ - // this.saveInsContext(currentInsItemId) - // },2000) - // }else if(this.isGet&&this.dataAcquisitionEidtAble){ - // if(this.getDataType==1){ - // if(this.result.value.getDataTypeId==''){ - // // 濡傛灉鏄暟閲囧彲缂栬緫杈撳叆鐨勬儏鍐�,涓旀渶鍚庝竴涓暟閲囨病鏈夊畬鎴�,鍒欎笉淇濆瓨鏁版嵁 - // return - // } - // this.saveInsContext(currentInsItemId) - // }else{ - // this.saveInsContext(currentInsItemId) - // } - // }else{ - // this.saveInsContext(currentInsItemId) - // } - // } }) break; case 'tableList': @@ -3123,8 +3181,13 @@ }) }, // 澶嶆牳 - upInsReview(e) { - if (e == 1||e==2) { + upInsReview(e,type) { + this.$confirm(`鏄惁${type}?`, "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" + }).then(() => { + if (e == 1||e==2) { // 缁х画璇曢獙 this.reviewLoading = true; this.$axios.post(this.$api.insOrderPlan.verifyPlan, { @@ -3146,6 +3209,7 @@ // 鍐嶆璇曢獙 this.reviewDia = true; } + }) }, handleReviewDia() { if (this.noReason) { @@ -3170,15 +3234,30 @@ } }, submit0(){ - if(!this.experimentInfo.term){ - this.$message.error('璇疯緭鍏ュ疄楠岄樁娈�') - return + if(this.sonLaboratory === '鐢佃矾璇曢獙'){ + if(!this.experimentInfo.term){ + this.$message.error('璇疯緭鍏ュ疄楠岄樁娈�') + return + } + if(!this.experimentInfo.note){ + this.$message.error('璇疯緭鍏ュ疄楠屾搷浣�') + return + } } - if(!this.experimentInfo.note){ - this.$message.error('璇疯緭鍏ュ疄楠屾搷浣�') + let num =0 + this.sampleProduct.forEach(item=>{ + item.insProduct.forEach(a=>{ + if(!a.outputWorkTime){ + num++ + } + }) + }) + if(num>0){ + this.$message.error('璇疯緭鍏ュ畬鎴愬伐鏃�') return } this.experimentDia = false + this.experimentDia0 = false if(this.insOrder.orderType=='C'){ this.verifyUser = this.insOrder.prepareUserId this.submit() @@ -3187,15 +3266,10 @@ } }, handleSubmit(){ + this.experimentDia = true + console.log(6666,this.sampleProduct) if (this.sonLaboratory === '鐢佃矾璇曢獙') { - this.experimentDia = true - } else { - if(this.insOrder.orderType=='C'){ - this.verifyUser = this.insOrder.prepareUserId - this.submit() - }else{ - this.addVerifyDia = true - } + this.experimentDia0 = true } }, submit() { @@ -3210,14 +3284,33 @@ laboratory: this.sonLaboratory, }).then(res => { if (res.code === 200) { + let auxiliaryOutputWorkingHoursList = [] + this.sampleProduct.forEach(item=>{ + item.insProduct.forEach(a=>{ + let obj = { + inspectionItem:a.inspectionItem, + outputWorkTime:a.outputWorkTime, + inspectionItemSubclass:a.inspectionItemSubclass, + sample:item.sampleCode, + insProductId:a.id, + num:item.num1 + } + auxiliaryOutputWorkingHoursList.push(obj) + }) + }) if(!res.data||res.data.length==0){ this.$axios.post(this.$api.insOrderPlan.submitPlan, { orderId: this.orderId, laboratory: this.sonLaboratory, verifyUser: this.verifyUser, entrustCode: this.insOrder.entrustCode, + auxiliaryOutputWorkingHoursList:auxiliaryOutputWorkingHoursList, ...this.experimentInfo - }).then(res => { + }, { + headers: { + 'Content-Type': 'application/json' + }, + noQs:true}).then(res => { if (res.code === 200) { this.$message.success("鎿嶄綔鎴愬姛") this.$emit('goback') @@ -3249,8 +3342,13 @@ orderId: this.orderId, laboratory: this.sonLaboratory, verifyUser: this.verifyUser, + auxiliaryOutputWorkingHoursList:auxiliaryOutputWorkingHoursList, ...this.experimentInfo - }).then( res => { + }, { + headers: { + 'Content-Type': 'application/json' + }, + noQs:true}).then( res => { if (res.code === 200) { this.submitLoading = false; this.$message.success("鎿嶄綔鎴愬姛") @@ -3367,6 +3465,17 @@ // 淇濆瓨鏁版嵁 this.saveInsContext(n.i) }, + // 鏍峰搧妫�鏌� + changeSampleCheck(val, n,type){ + this.$set(n.v,'v',val) + if(type=='鍓�'){ + // 妫�楠屽墠 + this.saveInsContext(n.i) + }else{ + // 妫�楠屽悗 + this.saveInsContext(n.i) + } + }, getAuthorizedPerson() { this.$axios.get(this.$api.user.getUserMenu).then(res => { let data = [] @@ -3435,7 +3544,9 @@ resValue: null, equipValue: [], equipName: [], - insResult: null + insResult: null, + beforeCheck:null, + afterCheck:null, } } }) @@ -3632,6 +3743,23 @@ this.currentFile.url = this.javaApi+'/word/'+row.fileUrl } this.lookFileVisible = true + }, + handleBack(){ + try { + if(!this.isLook&&this.state==1&&this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('鐢佃矾璇曢獙')){ + this.$confirm('璇风‘璁ゅ綋鍓嶆暟鎹槸鍚﹀叏閮ㄤ繚瀛橈紝鏄惁杩斿洖锛�', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + this.$emit('goback') + }) + }else{ + this.$emit('goback') + } + } catch (error) { + this.$emit('goback') + } } } } -- Gitblit v1.9.3