From b87075597989e9a7de543967d54be4780be27de7 Mon Sep 17 00:00:00 2001 From: spring <2396852758@qq.com> Date: 星期三, 19 二月 2025 10:15:51 +0800 Subject: [PATCH] Merge branch 'master' of http://114.132.189.42:9002/r/tx-lims-before --- src/components/view/b1-inspect-order-plan.vue | 206 +++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 175 insertions(+), 31 deletions(-) diff --git a/src/components/view/b1-inspect-order-plan.vue b/src/components/view/b1-inspect-order-plan.vue index c96f0ae..2cfc34e 100644 --- a/src/components/view/b1-inspect-order-plan.vue +++ b/src/components/view/b1-inspect-order-plan.vue @@ -269,13 +269,15 @@ <el-table-column fixed="right" align="center" label="鎿嶄綔" - width="320px" + width="340px" > <template slot-scope="scope"> <el-button @click="handleDataLook(scope.row)" type="text" size="small">鏁版嵁鏌ョ湅</el-button> <el-button @click="handleInspection(scope.row)" type="text" size="small" :disabled="scope.row.userName == null || scope.row.insState == 3 || scope.row.insState == 5||scope.row.insState == 6||(scope.row.userName&&!scope.row.userName.includes(userName))" v-if="inspection">妫�楠�</el-button> <el-button @click="handleConnect(scope.row)" type="text" size="small" :disabled="scope.row.userName == null || scope.row.insState == 5 || scope.row.insState == 3||scope.row.insState == 6||(scope.row.userName&&!scope.row.userName.includes(userName))" v-if="connect">浜ゆ帴</el-button> + <el-button @click="cancelSubmitPlan(scope.row)" type="text" size="small" :disabled="scope.row.userName == null || scope.row.insState != 3 ||(scope.row.userName&&!scope.row.userName.includes(userName))" v-if="inspection">鎾ら攢</el-button> <el-button @click="handleReview(scope.row)" type="text" size="small" :disabled="scope.row.userName == null || scope.row.insState != 3 ||(scope.row.checkName&&!scope.row.checkName.includes(userName))" v-if="review">澶嶆牳</el-button> + <el-button @click="handleReview0(scope.row)" type="text" size="small" :disabled="scope.row.userName == null || (scope.row.insState != 4&&scope.row.insState != 5&&scope.row.insState != 6) " v-if="verifyPlan2">绾犳澶嶆牳</el-button> <el-button @click="claimFun(scope.row)" type="text" size="small" :disabled="scope.row.userName != null || scope.row.checkName!=null" v-if="claim">璁ら</el-button> <el-button @click="lookHistory0(scope.row)" type="text" size="small">鏌ョ湅璁板綍</el-button> </template> @@ -391,6 +393,13 @@ </el-input> </div> </el-col> + <el-col class="search_thing" :span="24"> + <div class="search_label" style="width: 90px"><span class="required-span">* </span>璁㈠崟缂栧彿锛�</div> + <div class="search_input"> + <el-input v-model="entrustCode" size="small" clearable :disabled="sampleCodeBtnDisabled"> + </el-input> + </div> + </el-col> </el-row> <el-tree :data="storageList" ref="tree" :props="{ children: 'warehouseShelfList', label: 'name' }" node-key="id" :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current @node-expand="nodeOpen" @@ -423,10 +432,46 @@ </el-input> </div> </el-col> + <el-col class="search_thing" :span="24"> + <div class="search_label" style="width: 90px"><span class="required-span">* </span>濮旀墭缂栧彿锛�</div> + <div class="search_input"> + <el-input v-model="entrustCode" size="small" clearable :disabled="sampleCodeBtnDisabled"> + </el-input> + </div> + </el-col> </el-row> <span slot="footer" class="dialog-footer"> <el-button @click="exportVisible = false">鍙� 娑�</el-button> <el-button type="primary" @click="confirmExport" :loading="upLoadExport">纭� 瀹�</el-button> + </span> + </el-dialog> + <el-dialog title="绾犳澶嶆牳" :visible="upInsReviewDia" width="600px" :close-on-click-modal="false" :show-close="false"> + <el-radio-group + v-model="verifyPlanInfo.type" + style="display: flex;flex-direction: column" + v-if="upInsReviewDia" + > + <el-radio :label="1" style="margin: 10px 0; " + :inert="false">缁х画娴嬭瘯涓嬩竴涓牱鍝佹垨鍏朵粬绔欑偣浠诲姟</el-radio + > + <el-radio :label="0" style="margin: 10px 0; " :inert="false">鍐嶆妫�楠岃鏍峰搧</el-radio> + <el-radio :label="2" style="margin: 10px 0; " :inert="false">姝ゅ鎵樺崟缁撴潫</el-radio> + <p style="font-size: 12px;color:red"> + 鎱庨噸锛氬鏋滆繕鏈夊叾浠栨牱鍝佸湪妫�锛岀偣鍑荤粨鏉熷彲鑳戒細涓柇锛岃纭繚鎵�鏈夋牱鍝侀兘妫�楠屼笖澶嶆牳瀹屾垚鍐嶇偣鍑� + </p> + </el-radio-group> + <p style="margin-top: 16px;margin-bottom: 6px;"><span style="color:red;margin-right: 4px;">*</span>绾犳鍘熷洜锛�</p> + <el-input + type="textarea" + :rows="2" + placeholder="璇疯緭鍏�" + v-model="verifyPlanInfo.tell"> + </el-input> + <span slot="footer" class="dialog-footer"> + <el-button @click="upInsReviewDia = false">鍙� 娑�</el-button> + <el-button type="primary" @click="upInsReview" :loading="reviewLoading" + >纭� 瀹�</el-button + > </span> </el-dialog> <input id="ScanCodeInfo" v-model="codeInfo" @keyup.enter="keyup" style="opacity: 0;height: 0px;margin: 0px;padding: 0px;position: absolute;top: 0;"></input> @@ -667,6 +712,7 @@ getInsProduct2:false, claim:false, review:false, + verifyPlan2:false, connect:false, inspection:false, isLook:false,//鏄惁鏄煡鐪嬪巻鍙查〉闈� @@ -676,6 +722,7 @@ scanInsOrderState:false, qrCodeVisible: false, sampleCode: '', + entrustCode:'', storageList:[], expandedKeys: [], selectTree: [], @@ -688,13 +735,21 @@ ids:[] }, sampleCodeBtnDisabled:true, + upInsReviewDia:false, + verifyPlanInfo:{ + tell:null, + type:null + }, + reviewLoading:false } }, watch:{ qrCodeVisible(newVal){ if(newVal){ // this.$message.success('鎵爜锛氭墦寮�') + this.selectList() this.sampleCode = null + this.entrustCode = null let input = document.getElementById('ScanCodeInfo'); input.focus(); this.startTime = setInterval(()=>{ @@ -710,6 +765,7 @@ if(newVal){ // this.$message.success('鎵爜锛氭墦寮�') this.sampleCode = null + this.entrustCode = null let input = document.getElementById('ScanCodeInfo'); input.focus(); this.startTime = setInterval(()=>{ @@ -725,7 +781,8 @@ if(!val){ this.startTime&&clearInterval(this.startTime) }else if(this.exportVisible||this.qrCodeVisible){ - this.sampleCode = null + // this.sampleCode = null + // this.entrustCode = null let input = document.getElementById('ScanCodeInfo'); input.focus(); this.startTime = setInterval(()=>{ @@ -755,20 +812,37 @@ this.storageList = this.HaveJson(res.data).map(item=>{ item.warehouseShelfList&&item.warehouseShelfList.length>0&&item.warehouseShelfList.map(m=>{ let warehouseShelfList = []; - for (let i=1;i<m.row+1;i++){ - let warehouseShelfList0 = [] - for (let j=1;j<m.col+1;j++){ + let warehouseShelfList0 = [] + let warehouseCellList = m.warehouseCellList?m.warehouseCellList:[] + warehouseCellList.forEach(a=>{ + if(warehouseShelfList.find(n=>n.id==a.row)){ warehouseShelfList0.push({ - name:j+' 鍒�', - id:j, + name:a.col+'鍒�', + id:a.col + }) + }else if(warehouseShelfList.length==0){ + warehouseShelfList.push({ + name:a.row+'灞�', + id:a.row + }) + warehouseShelfList0.push({ + name:a.col+'鍒�', + id:a.col + }) + }else if(!warehouseShelfList.find(n=>n.id==a.row)){ + warehouseShelfList[warehouseShelfList.length-1].warehouseShelfList = JSON.parse(JSON.stringify(warehouseShelfList0)) + warehouseShelfList0 = [] + warehouseShelfList.push({ + name:a.row+'灞�', + id:a.row + }) + warehouseShelfList0.push({ + name:a.col+'鍒�', + id:a.col }) } - warehouseShelfList.push({ - name:i+' 灞�', - id:i, - warehouseShelfList:warehouseShelfList0 - }) - } + }) + warehouseShelfList[warehouseShelfList.length-1].warehouseShelfList = JSON.parse(JSON.stringify(warehouseShelfList0)) m.warehouseShelfList = warehouseShelfList; return m; }) @@ -796,6 +870,10 @@ this.$message.error('璇峰~鍐欐牱鍝佺紪鍙�') return } + if (!this.entrustCode) { + this.$message.error('璇峰~鍐欒鍗曠紪鍙�') + return + } if (this.selectTree.length < 4) { this.$message.error('璇烽�夋嫨鏍峰搧鍏ュ簱浣嶇疆') return @@ -804,11 +882,13 @@ this.$axios.post(this.$api.insOrderPlan.scanInsOrderState, { trees: this.selectTree.join('-'), sampleCode:this.sampleCode, + entrustCode:this.entrustCode, sonLaboratory: this.componentData.entity.sonLaboratory }).then(res => { this.upLoadStorage = false; this.qrCodeVisible = false this.sampleCode = ''; + this.entrustCode = ''; this.selectTree = [] if (res.code == 201) { this.$message.error('娣诲姞澶辫触') @@ -824,14 +904,20 @@ this.$message.error('璇峰~鍐欐牱鍝佺紪鍙�') return } + if (!this.entrustCode) { + this.$message.error('璇峰~鍐欒鍗曠紪鍙�') + return + } this.upLoadExport = true; this.$axios.post(this.$api.insOrderPlan.outInsOrderState, { sampleCode:this.sampleCode, + entrustCode:this.entrustCode, sonLaboratory: this.componentData.entity.sonLaboratory }).then(res => { this.upLoadExport = false; this.exportVisible = false this.sampleCode = ''; + this.entrustCode = ''; if (res.code == 201) { this.$message.error('鍑哄簱澶辫触') return @@ -842,13 +928,15 @@ }, // 鎵爜鏋寜涓� keyup(e){ - var code = '' + var codeInfo = null try{ - code = this.codeInfo.substring() - if(code==null||code==undefined||code==''){ - this.$message.error('璇ヤ簩缁寸爜鏈夎') + console.log(2222,this.codeInfo) + codeInfo = JSON.parse(this.codeInfo) + if(!codeInfo||codeInfo.sampleCode==undefined||codeInfo.entrustCode==undefined){ + this.$message.error('璇ヤ簩缁寸爜鏈夎') }else{ - this.sampleCode = code + this.sampleCode = codeInfo.sampleCode + this.entrustCode = codeInfo.entrustCode } }catch(e){ this.$message.error('璇疯皟鑷宠嫳鏂囬敭鐩�') @@ -908,6 +996,7 @@ let review = false let claim = false let jumpTeam = false + let verifyPlan2 = false // let getInsProduct2 = false // let getInsOrderUserList = false for (var i = 0; i < power.length; i++) { @@ -919,6 +1008,9 @@ } if (power[i].menuMethod == 'verifyPlan') { review = true + } + if (power[i].menuMethod == 'verifyPlan2') { + verifyPlan2 = true } if (power[i].menuMethod == 'claimInsOrderPlan') { claim = true @@ -934,27 +1026,27 @@ } if (power[i].menuMethod == 'scanInsOrderState') { this.selectWarehouse = true - this.selectList() } } // if (!getInsProduct2) { // this.componentData.do.splice(5, 1) // } - if (!claim) { - this.componentData.do.splice(4, 1) - } - if (!review) { - this.componentData.do.splice(3, 1) - } - if (!connect) { - this.componentData.do.splice(2, 1) - } - if (!inspection) { - this.componentData.do.splice(1, 1) - } + // if (!claim) { + // this.componentData.do.splice(4, 1) + // } + // if (!review) { + // this.componentData.do.splice(3, 1) + // } + // if (!connect) { + // this.componentData.do.splice(2, 1) + // } + // if (!inspection) { + // this.componentData.do.splice(1, 1) + // } // this.getInsProduct2 = getInsProduct2 this.claim = claim this.review = review + this.verifyPlan2 =verifyPlan2 this.connect = connect this.inspection = inspection this.jumpTeam = jumpTeam @@ -1156,6 +1248,23 @@ // } // }) }, + cancelSubmitPlan(row){ + this.$confirm('纭畾鎾ら攢姝ゆ妫�楠屾彁浜�?', "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" + }).then(() => { + this.$axios.post(this.$api.insOrderPlan.cancelSubmitPlan, { + orderStateId: row.orderStateId + }).then(res => { + if(res.code==201){ + return + } + this.$message.success("鎿嶄綔鎴愬姛") + this.refreshTable('page') + }).catch(() => {}) + }).catch(() => {}) + }, confirmConnect(){ if(this.connect.connectPerson==null||this.connect.connectPerson==''||this.connect.connectPerson==undefined){ this.$message.error('鏈�夋嫨浜ゆ帴浜哄憳') @@ -1220,6 +1329,41 @@ this.orderStateId = this.currentHistory.orderStateId this.num1 = row.num this.historyDialogVisible = false + }, + // 绾犳澶嶆牳 + upInsReview(){ + if(this.verifyPlanInfo.type!=0&&this.verifyPlanInfo.type!=1&&this.verifyPlanInfo.type!=2){ + return this.$message.error("璇烽�夋嫨澶嶆牳鐘舵��"); + } + if(!this.verifyPlanInfo.tell){ + return this.$message.error("璇疯緭鍏ョ籂姝e鏍哥殑鍘熷洜"); + } + this.reviewLoading = true; + this.$axios + .post(this.$api.insOrderPlan.verifyPlan2, { + sampleId: this.verifyPlanInfo.sampleId, + type: this.verifyPlanInfo.type, + laboratory: this.componentData.entity.sonLaboratory, + tell: this.verifyPlanInfo.tell + }) + .then(res => { + if (res.code === 200) { + this.$message.success("鎿嶄綔鎴愬姛"); + this.upInsReviewDia = false; + this.refreshTable() + } + this.reviewLoading = false; + }) + .catch(error => { + console.error(error); + this.reviewLoading = false; + }); + }, + handleReview0(row){ + this.verifyPlanInfo = JSON.parse(JSON.stringify(row)); + this.$set(this.verifyPlanInfo,'tell',null) + this.$set(this.verifyPlanInfo,'type',null) + this.upInsReviewDia = true } } } -- Gitblit v1.9.3