From 42faa74a693ee733b477d8f31910d684a057eb6b Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期五, 07 三月 2025 14:34:19 +0800
Subject: [PATCH] 修改检验任务
---
src/components/view/b1-inspect-order-plan.vue | 239 ++++++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 203 insertions(+), 36 deletions(-)
diff --git a/src/components/view/b1-inspect-order-plan.vue b/src/components/view/b1-inspect-order-plan.vue
index fd3ede4..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>
@@ -332,7 +334,7 @@
<div style="width: 100%;height: 100%;" v-if="activeFace >0">
<Add :active="activeFace" :currentId="currentId" :examine="examine"/>
</div>
- <Inspection v-if="state>0" @goback="goback" :orderId="orderId" :inspectorList="inspectorList" :sonLaboratory="componentData.entity.sonLaboratory" :state="state" :orderStateId="orderStateId" :version="version" :isLook="isLook" :num1="num1" :orderId0="orderId0" :userInfo="userInfo" />
+ <Inspection v-if="state>0" @goback="goback" :orderId="orderId" :inspectorList="inspectorList" :sonLaboratory="componentData.entity.sonLaboratory" :state="state" :orderStateId="orderStateId" :version="version" :isLook="isLook" :num1="num1" :orderId0="orderId0" :userInfo="userInfo" ref="Inspection" />
<el-dialog title="鏁版嵁鏌ョ湅" :visible.sync="dataDialogVisible" width="80%">
<div style="height: 70vh;overflow-y: auto;" v-if="dataDialogVisible">
<ValueTable ref="ValueTableDataLook" :rowKey="'insProductId'" :url="$api.insOrder.selectSampleAndProductByOrderId"
@@ -379,12 +381,23 @@
</el-table-column>
</el-table>
</el-dialog>
- <el-dialog title="鎵爜妫�楠�" :visible.sync="qrCodeVisible" width="350px">
+ <el-dialog title="鎵爜妫�楠�" :visible.sync="qrCodeVisible" width="400px">
<el-row>
<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="sampleCode" size="small" clearable></el-input>
+ <el-input v-model="sampleCode" size="small" clearable :disabled="sampleCodeBtnDisabled">
+ <el-tooltip :content="sampleCodeBtnDisabled?'鎵嬪姩杈撳叆':'鎵爜鏋緭鍏�'" placement="top" slot="append">
+ <el-button type="primary" icon="el-icon-edit" @click="sampleCodeBtnDisabled=!sampleCodeBtnDisabled"></el-button>
+ </el-tooltip>
+ </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>
@@ -407,18 +420,58 @@
<el-button type="primary" @click="confirmStorage" :loading="upLoadStorage">纭� 瀹�</el-button>
</span>
</el-dialog>
- <el-dialog title="鍑哄簱" :visible.sync="exportVisible" width="350px">
+ <el-dialog title="鍑哄簱" :visible.sync="exportVisible" width="400px">
<el-row>
<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="sampleCode" size="small" clearable></el-input>
+ <el-input v-model="sampleCode" size="small" clearable :disabled="sampleCodeBtnDisabled">
+ <el-tooltip :content="sampleCodeBtnDisabled?'鎵嬪姩杈撳叆':'鎵爜鏋緭鍏�'" placement="top" slot="append">
+ <el-button type="primary" icon="el-icon-edit" @click="sampleCodeBtnDisabled=!sampleCodeBtnDisabled"></el-button>
+ </el-tooltip>
+ </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>
@@ -659,6 +712,7 @@
getInsProduct2:false,
claim:false,
review:false,
+ verifyPlan2:false,
connect:false,
inspection:false,
isLook:false,//鏄惁鏄煡鐪嬪巻鍙查〉闈�
@@ -668,6 +722,7 @@
scanInsOrderState:false,
qrCodeVisible: false,
sampleCode: '',
+ entrustCode:'',
storageList:[],
expandedKeys: [],
selectTree: [],
@@ -678,14 +733,23 @@
userInfo:{
name:[],
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(()=>{
@@ -694,12 +758,14 @@
}else{
// this.$message.warning('鎵爜锛氬叧闂�')
clearInterval(this.startTime)
+ this.sampleCodeBtnDisabled=true
}
},
exportVisible(newVal){
if(newVal){
// this.$message.success('鎵爜锛氭墦寮�')
this.sampleCode = null
+ this.entrustCode = null
let input = document.getElementById('ScanCodeInfo');
input.focus();
this.startTime = setInterval(()=>{
@@ -708,8 +774,22 @@
}else{
// this.$message.warning('鎵爜锛氬叧闂�')
clearInterval(this.startTime)
+ this.sampleCodeBtnDisabled=true
}
},
+ sampleCodeBtnDisabled(val){
+ if(!val){
+ this.startTime&&clearInterval(this.startTime)
+ }else if(this.exportVisible||this.qrCodeVisible){
+ // this.sampleCode = null
+ // this.entrustCode = null
+ let input = document.getElementById('ScanCodeInfo');
+ input.focus();
+ this.startTime = setInterval(()=>{
+ input.focus()
+ },1000)
+ }
+ }
},
created() {
this.getLaboratoryDicts()
@@ -732,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;
})
@@ -773,6 +870,10 @@
this.$message.error('璇峰~鍐欐牱鍝佺紪鍙�')
return
}
+ if (!this.entrustCode) {
+ this.$message.error('璇峰~鍐欒鍗曠紪鍙�')
+ return
+ }
if (this.selectTree.length < 4) {
this.$message.error('璇烽�夋嫨鏍峰搧鍏ュ簱浣嶇疆')
return
@@ -781,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('娣诲姞澶辫触')
@@ -801,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
@@ -819,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('璇疯皟鑷宠嫳鏂囬敭鐩�')
@@ -885,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++) {
@@ -896,6 +1008,9 @@
}
if (power[i].menuMethod == 'verifyPlan') {
review = true
+ }
+ if (power[i].menuMethod == 'verifyPlan2') {
+ verifyPlan2 = true
}
if (power[i].menuMethod == 'claimInsOrderPlan') {
claim = true
@@ -911,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
@@ -1133,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('鏈�夋嫨浜ゆ帴浜哄憳')
@@ -1197,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