| | |
| | | cursor: move; |
| | | position: relative; |
| | | } |
| | | .node_i { |
| | | color: orange; |
| | | font-size: 18px; |
| | | } |
| | | .custom-tree-node .el-button { |
| | | opacity: 0; |
| | | } |
| | | |
| | | .custom-tree-node:hover .el-button { |
| | | opacity: 1; |
| | | } |
| | | .el-dialog { |
| | | position: relative; |
| | | } |
| | | </style> |
| | | <style> |
| | | .ins-order-plan-main .el-form-item__label{ |
| | |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <div class="center-title"> |
| | | <el-button size="small" type="primary" @click="handleCode" style="margin-right: 16px;">扫码报检</el-button> |
| | | <el-button size="small" type="primary" @click="qrCodeVisible=true">扫码报检</el-button> |
| | | <el-button size="small" type="primary" @click="exportVisible=true" style="margin-right: 16px;">出库</el-button> |
| | | <span>总计任务数量:</span> |
| | | <span>{{total}}</span> |
| | | </div> |
| | |
| | | </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-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> |
| | | </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" |
| | | @node-collapse="nodeClose" :default-expanded-keys="expandedKeys" v-if="qrCodeVisible" |
| | | empty-text="暂无数据"> |
| | | <div class="custom-tree-node" slot-scope="{ node, data }"> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <span><i |
| | | :class="`node_i ${data.warehouseShelfList != undefined ? 'el-icon-folder-opened' : 'el-icon-tickets'}`"></i> |
| | | {{ data.name }}</span> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </el-tree> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="qrCodeVisible = false">取 消</el-button> |
| | | <el-button type="primary" @click="confirmStorage" :loading="upLoadStorage">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="出库" :visible.sync="exportVisible" width="350px"> |
| | | <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> |
| | | </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> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | num1:null, |
| | | codeInfo:null, |
| | | startTime:null, |
| | | scanInsOrderState:false |
| | | scanInsOrderState:false, |
| | | qrCodeVisible: false, |
| | | sampleCode: '', |
| | | storageList:[], |
| | | expandedKeys: [], |
| | | selectTree: [], |
| | | upLoadStorage: false, |
| | | exportVisible: false, |
| | | upLoadExport: false, |
| | | } |
| | | }, |
| | | created() { |
| | |
| | | this.getTypeDicts() |
| | | this.getInsStateDicts() |
| | | this.getAuthorizedPerson() |
| | | this.selectList() |
| | | this.currentTime = getYearAndMonthAndDays() |
| | | }, |
| | | mounted() { |
| | |
| | | this.initializeSortable(); |
| | | } |
| | | }, |
| | | methods: { |
| | | // 扫码报检 |
| | | handleCode(){ |
| | | let input = document.getElementById('ScanCodeInfo'); |
| | | // console.log(1234567,input,this.startTime) |
| | | input.focus(); |
| | | this.startTime&&clearInterval(this.startTime) |
| | | this.startTime = setInterval(()=>{ |
| | | watch:{ |
| | | qrCodeVisible(newVal){ |
| | | if(newVal){ |
| | | // this.$message.success('扫码:打开') |
| | | let input = document.getElementById('ScanCodeInfo'); |
| | | input.focus(); |
| | | this.startTime = setInterval(()=>{ |
| | | input.focus() |
| | | },1000) |
| | | },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.warehouse = res.data |
| | | 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++){ |
| | | warehouseShelfList0.push({ |
| | | name:j+' 列', |
| | | id:j, |
| | | }) |
| | | } |
| | | warehouseShelfList.push({ |
| | | name:i+' 层', |
| | | id:i, |
| | | warehouseShelfList:warehouseShelfList0 |
| | | }) |
| | | } |
| | | m.warehouseShelfList = warehouseShelfList; |
| | | return m; |
| | | }) |
| | | return item; |
| | | }) |
| | | }) |
| | | }, |
| | | filterNode(value, data) { |
| | | if (!value) return true; |
| | | return data.label.indexOf(value) !== -1; |
| | | }, |
| | | handleNodeClick(val, node, el) { //树的值 |
| | | this.selectTree[node.level-1] = val.id; |
| | | }, |
| | | nodeOpen(data, node, el) { |
| | | $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder-opened') |
| | | this.selectTree[node.level-1] = data.id; |
| | | }, |
| | | nodeClose(data, node, el) { |
| | | $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder') |
| | | }, |
| | | // 扫码报检 |
| | | confirmStorage() { |
| | | if (!this.sampleCode) { |
| | | this.$message.error('请填写样品编号') |
| | | return |
| | | } |
| | | if (this.selectTree.length < 4) { |
| | | this.$message.error('请选择样品入库位置') |
| | | return |
| | | } |
| | | this.upLoadStorage = true; |
| | | this.$axios.post(this.$api.insOrderPlan.scanInsOrderState, { |
| | | trees: this.selectTree.join('-'), |
| | | sampleCode:this.sampleCode, |
| | | sonLaboratory: this.componentData.entity.sonLaboratory |
| | | }).then(res => { |
| | | this.upLoadStorage = false; |
| | | this.qrCodeVisible = false |
| | | this.sampleCode = ''; |
| | | this.selectTree = [] |
| | | if (res.code == 201) { |
| | | this.$message.error('添加失败') |
| | | return |
| | | } |
| | | this.$message.success('添加成功') |
| | | this.refreshTable() |
| | | }) |
| | | }, |
| | | // 确认出库 |
| | | confirmExport () { |
| | | if (!this.sampleCode) { |
| | | this.$message.error('请填写样品编号') |
| | | return |
| | | } |
| | | this.upLoadExport = true; |
| | | this.$axios.post(this.$api.insOrderPlan.outInsOrderState, { |
| | | sampleCode:this.sampleCode, |
| | | sonLaboratory: this.componentData.entity.sonLaboratory |
| | | }).then(res => { |
| | | this.upLoadExport = false; |
| | | this.exportVisible = false |
| | | this.sampleCode = ''; |
| | | if (res.code == 201) { |
| | | this.$message.error('出库失败') |
| | | return |
| | | } |
| | | this.$message.success('出库成功') |
| | | this.handleShelf(this.entity.shelfId) |
| | | }) |
| | | }, |
| | | // 扫码枪按下 |
| | | keyup(e){ |
| | | var code = '' |
| | | console.log(3333,this.codeInfo) |
| | | try{ |
| | | code = JSON.parse(this.codeInfo) |
| | | if(code==null||code==undefined||code==''){ |
| | | this.$message.error('该二维码有误') |
| | | }else{ |
| | | this.$axios.post(this.$api.insOrderPlan.scanInsOrderState, |
| | | { |
| | | sonLaboratory: this.componentData.entity.sonLaboratory, |
| | | sampleCode: code |
| | | } |
| | | ).then(res => { |
| | | if(res.code==200){ |
| | | this.$message({ |
| | | type: 'success', |
| | | message: '报检成功' |
| | | }) |
| | | } |
| | | this.refreshTable() |
| | | }) |
| | | this.sampleCode = code |
| | | console.log(3333,this.sampleCode) |
| | | } |
| | | }catch(e){ |
| | | this.$message.error('该二维码有误') |