| | |
| | | </el-select> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing"> |
| | | <div class="search_label">样品编号:</div> |
| | | <div class="search_input"> |
| | | <el-input size="small" placeholder="请输入" clearable |
| | | v-model="componentData.entity.sampleCOde" @keyup.enter.native="refreshTable()"></el-input> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="padding-left: 30px;"> |
| | | <el-button size="small" @click="refresh()">重 置</el-button> |
| | | <el-button size="small" type="primary" @click="refreshTable()">查 询</el-button> |
| | |
| | | width="100px" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="sampleCode" |
| | | label="样品编号" |
| | | width="170px" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="type" |
| | | label="紧急程度" |
| | | width="100px" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-tag :type="typeList.find(m=>m.value==scope.row.type).type" size="small">{{ typeList.find(m=>m.value==scope.row.type).label }}</el-tag> |
| | | <el-tag :type="typeList.find(m=>m.value==scope.row.type)?typeList.find(m=>m.value==scope.row.type).type:''" size="small">{{ typeList.find(m=>m.value==scope.row.type)?typeList.find(m=>m.value==scope.row.type).label:'' }}</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | |
| | | <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="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" :disabled="!scope.row.num1 || scope.row.num1<1">查看记录</el-button> |
| | | <el-button @click="lookHistory0(scope.row)" type="text" size="small">查看记录</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <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"/> |
| | | <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" |
| | |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-dialog> |
| | | <input type="text" id="ScanCodeInfo" v-model="codeInfo" @keyup.enter="keyup" style="opacity: 0;height: 0px;margin: 0px;padding: 0px;position: absolute;top: 0;" autocomplete="off"></input> |
| | | <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> |
| | |
| | | <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"></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> |
| | |
| | | <el-button type="primary" @click="confirmExport" :loading="upLoadExport">确 定</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> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | entity: { |
| | | sonLaboratory: null, |
| | | insState: null, |
| | | userId: null |
| | | userId: null, |
| | | sampleCode:null, |
| | | }, |
| | | sortable:true, |
| | | isIndex: true, |
| | |
| | | activeFace: 0, //1:下单,2:查看,3:审核,默认为0 |
| | | currentId: null, |
| | | entityCopy: {}, |
| | | orderId: 0, |
| | | orderId: null, |
| | | orderId0:null, |
| | | personList:[], |
| | | connectVisible:false, |
| | | connect:{ |
| | |
| | | scanInsOrderState:false, |
| | | qrCodeVisible: false, |
| | | sampleCode: '', |
| | | entrustCode:'', |
| | | storageList:[], |
| | | expandedKeys: [], |
| | | selectTree: [], |
| | | upLoadStorage: false, |
| | | exportVisible: false, |
| | | upLoadExport: false, |
| | | selectWarehouse:false |
| | | selectWarehouse:false, |
| | | userInfo:{ |
| | | name:[], |
| | | ids:[] |
| | | }, |
| | | sampleCodeBtnDisabled:true, |
| | | } |
| | | }, |
| | | 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(()=>{ |
| | | input.focus() |
| | | },1000) |
| | | }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(()=>{ |
| | | input.focus() |
| | | },1000) |
| | | }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() |
| | | this.getTypeDicts() |
| | |
| | | this.initializeSortable(); |
| | | } |
| | | }, |
| | | watch:{ |
| | | qrCodeVisible(newVal){ |
| | | if(newVal){ |
| | | // this.$message.success('扫码:打开') |
| | | let input = document.getElementById('ScanCodeInfo'); |
| | | input.focus(); |
| | | this.startTime = setInterval(()=>{ |
| | | input.focus() |
| | | },1000) |
| | | }else{ |
| | | // this.$message.warning('扫码:关闭') |
| | | clearInterval(this.startTime) |
| | | this.sampleCode = '' |
| | | } |
| | | }, |
| | | exportVisible(newVal){ |
| | | if(newVal){ |
| | | // this.$message.success('扫码:打开') |
| | | let input = document.getElementById('ScanCodeInfo'); |
| | | input.focus(); |
| | | this.startTime = setInterval(()=>{ |
| | | input.focus() |
| | | },1000) |
| | | }else{ |
| | | // this.$message.warning('扫码:关闭') |
| | | clearInterval(this.startTime) |
| | | this.sampleCode = '' |
| | | } |
| | | }, |
| | | }, |
| | | methods: { |
| | | selectList () { |
| | | this.$axios.get(this.$api.warehouse.selectWarehouse).then(res => { |
| | |
| | | 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; |
| | | }) |
| | |
| | | this.$message.error('请填写样品编号') |
| | | return |
| | | } |
| | | if (!this.entrustCode) { |
| | | this.$message.error('请填写订单编号') |
| | | return |
| | | } |
| | | if (this.selectTree.length < 4) { |
| | | this.$message.error('请选择样品入库位置') |
| | | return |
| | |
| | | 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('添加失败') |
| | |
| | | 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 |
| | |
| | | }, |
| | | // 扫码枪按下 |
| | | keyup(e){ |
| | | var code = '' |
| | | var codeInfo = null |
| | | try{ |
| | | // console.log(2222,this.codeInfo) |
| | | 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('请调至英文键盘') |
| | |
| | | if (power[i].menuMethod == 'scanInsOrderState') { |
| | | this.scanInsOrderState = true |
| | | } |
| | | if (power[i].menuMethod == 'selectWarehouse') { |
| | | if (power[i].menuMethod == 'scanInsOrderState') { |
| | | this.selectWarehouse = true |
| | | this.selectList() |
| | | } |
| | | } |
| | | // if (!getInsProduct2) { |
| | |
| | | if (row) { |
| | | this.sampleUserForm = { |
| | | entrustCode: row.entrustCode, |
| | | insSampleId: row.id, |
| | | insSampleId: row.sampleId, |
| | | sonLaboratory: row.sonLaboratory, |
| | | } |
| | | this.claimVisible = true |
| | |
| | | }, |
| | | confirmClaim() { |
| | | this.loading = true; |
| | | // this.sampleUserForm.insSampleId = this.orderId |
| | | this.$axios.post(this.$api.insOrderPlan.claimInsOrderPlan, this.sampleUserForm, { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | } |
| | | }).then(res => { |
| | | }, |
| | | noQs:true |
| | | },).then(res => { |
| | | if (res.code === 200 && res.data) { |
| | | this.loading = false; |
| | | this.$message.success("认领成功") |
| | |
| | | inspectorList.push(user.name) |
| | | } |
| | | this.inspectorList = inspectorList |
| | | this.orderId = row.id |
| | | this.orderId = row.sampleId |
| | | this.orderId0 = row.id |
| | | this.version = row.version |
| | | this.orderStateId = row.orderStateId |
| | | this.state = 1; |
| | | this.userInfo.name = row.userName.split(',') |
| | | this.userInfo.ids = row.userNameId.split(',') |
| | | this.isLook = false |
| | | }, |
| | | handleConnect(row){ |
| | | this.orderId = row.id |
| | | this.orderId = row.sampleId |
| | | this.orderId0 = row.id |
| | | this.connect = {} |
| | | this.connectVisible=true; |
| | | // this.$axios.post(this.$api.insOrderPlan.upPlanUser2, { |
| | |
| | | // } |
| | | // }) |
| | | }, |
| | | 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('未选择交接人员') |
| | |
| | | // } |
| | | this.loading = true; |
| | | this.$axios.post(this.$api.insOrderPlan.upPlanUser, { |
| | | orderId:this.orderId, |
| | | sampleId:this.orderId, |
| | | userId:this.connect.connectPerson, |
| | | sonLaboratory:this.componentData.entity.sonLaboratory, |
| | | }).then(res => { |
| | |
| | | }, |
| | | handleReview(row){ |
| | | this.state = 2; |
| | | this.orderId = row.id |
| | | this.orderId = row.sampleId |
| | | this.orderId0 = row.id |
| | | this.version = row.version |
| | | this.orderStateId = row.orderStateId |
| | | this.isLook = false |
| | |
| | | lookHistory(row){ |
| | | this.isLook = true |
| | | this.state = 2; |
| | | this.orderId = this.currentHistory.id |
| | | this.orderId = this.currentHistory.sampleId |
| | | this.orderId0 = this.currentHistory.id |
| | | this.version = this.currentHistory.version |
| | | this.orderStateId = this.currentHistory.orderStateId |
| | | this.num1 = row.num |