From 8c9a6b5a627b04e329bfccf2b1f5f192432a650d Mon Sep 17 00:00:00 2001 From: licp <lichunping@guanfang.com.cn> Date: 星期四, 26 九月 2024 13:50:30 +0800 Subject: [PATCH] Merge branch 'master' of http://114.132.189.42:9002/r/tx-lims-before into master --- src/components/tool/excel.vue | 12 ++ src/components/do/b1-inspect-order-plan/Inspection.vue | 11 ++ src/components/view/b2-standard-template.vue | 4 src/components/view/b1-inspect-order-plan.vue | 216 ++++++++++++++++++++++++++++++++++++++----- src/components/view/custom_manage.vue | 5 src/assets/api/controller.js | 1 6 files changed, 220 insertions(+), 29 deletions(-) diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js index 78e0867..48680e7 100644 --- a/src/assets/api/controller.js +++ b/src/assets/api/controller.js @@ -217,6 +217,7 @@ scanInsOrderState: "/insOrderPlan/scanInsOrderState", // 鎵爜鎶ユ鎺ュ彛 getInsOrderUserList: "/insOrderPlan/getInsOrderUserList", // 鏌ョ湅妫�楠屽巻鍙插垪琛� preview: "/insOrderPlan/preview", // csv鏂囦欢棰勮 + outInsOrderState: "/insOrderPlan/outInsOrderState", // 妫�楠屼换鍔℃壂鐮佸嚭搴� } const systemLog = { diff --git a/src/components/do/b1-inspect-order-plan/Inspection.vue b/src/components/do/b1-inspect-order-plan/Inspection.vue index 636d99e..d85d83e 100644 --- a/src/components/do/b1-inspect-order-plan/Inspection.vue +++ b/src/components/do/b1-inspect-order-plan/Inspection.vue @@ -3187,7 +3187,16 @@ } }, handleSubmit(){ - this.experimentDia = true + if (this.sonLaboratory === '鐢佃矾璇曢獙') { + this.experimentDia = true + } else { + if(this.insOrder.orderType=='C'){ + this.verifyUser = this.insOrder.prepareUserId + this.submit() + }else{ + this.addVerifyDia = true + } + } }, submit() { if (this.verifyUser === null || this.verifyUser === '') { diff --git a/src/components/tool/excel.vue b/src/components/tool/excel.vue index cb972e4..956fa10 100644 --- a/src/components/tool/excel.vue +++ b/src/components/tool/excel.vue @@ -33,6 +33,16 @@ #luckysheet .save:active { opacity: .7; } + #luckysheet .returnView { + width: 50px; + height: 26px; + background-color: #fff; + border: 1px solid #DCDFE6; + color: #606266; + border-radius: 4px; + margin-right: 12px; + cursor: pointer; + } </style> <template> <div id="luckysheet"></div> @@ -120,7 +130,7 @@ }, option.myFolderUrl = this.LOCATIONVUE + '/', // option.functionButton = '<i class="save_i el-icon-info" title="绯荤粺鏀寔鐨勫彉閲忥細
鏍峰搧缂栧彿
鏍峰搧鍨嬪彿
搴忓彿
妫�楠岄」
妫�楠屽瓙椤�
璁惧鍚嶇О
璁惧缂栫爜
鍗曚綅
瑕佹眰鍊�
璇曢獙鏂规硶 | 妫�娴嬫柟娉�
鏈�缁堝��
缁撹
璁$畻鍊�
妫�楠屽��"></i><button onClick="excelExport()" class="save">瀵煎嚭</button><button onClick="excelClosed()" class="save">淇濆瓨</button>' - option.functionButton = '<i class="save_i el-icon-info" title="绯荤粺鏀寔鐨勫彉閲忥細
鏍峰搧缂栧彿
鏍峰搧鍨嬪彿
搴忓彿
妫�楠岄」
妫�楠屽瓙椤�
璁惧鍚嶇О
璁惧缂栫爜
鍗曚綅
瑕佹眰鍊�
璇曢獙鏂规硶 | 妫�娴嬫柟娉�
鏈�缁堝��
缁撹
璁$畻鍊�
妫�楠屽��"></i><button onClick="excelClosed()" class="save">淇濆瓨</button>' + option.functionButton = '<i class="save_i el-icon-info" title="绯荤粺鏀寔鐨勫彉閲忥細
鏍峰搧缂栧彿
鏍峰搧鍨嬪彿
搴忓彿
妫�楠岄」
妫�楠屽瓙椤�
璁惧鍚嶇О
璁惧缂栫爜
鍗曚綅
瑕佹眰鍊�
璇曢獙鏂规硶 | 妫�娴嬫柟娉�
鏈�缁堝��
缁撹
璁$畻鍊�
妫�楠屽��"></i><button onClick="returnView()" class="returnView">鍙栨秷</button><button onClick="excelClosed()" class="save">淇濆瓨</button>' console.log(luckysheet) luckysheet.create(option) }, diff --git a/src/components/view/b1-inspect-order-plan.vue b/src/components/view/b1-inspect-order-plan.vue index d2b2b07..4bbe7a5 100644 --- a/src/components/view/b1-inspect-order-plan.vue +++ b/src/components/view/b1-inspect-order-plan.vue @@ -101,6 +101,20 @@ 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{ @@ -152,7 +166,8 @@ </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> @@ -348,6 +363,48 @@ </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> @@ -589,7 +646,15 @@ num1:null, codeInfo:null, startTime:null, - scanInsOrderState:false + scanInsOrderState:false, + qrCodeVisible: false, + sampleCode: '', + storageList:[], + expandedKeys: [], + selectTree: [], + upLoadStorage: false, + exportVisible: false, + upLoadExport: false, } }, created() { @@ -597,6 +662,7 @@ this.getTypeDicts() this.getInsStateDicts() this.getAuthorizedPerson() + this.selectList() this.currentTime = getYearAndMonthAndDays() }, mounted() { @@ -606,40 +672,138 @@ 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('璇ヤ簩缁寸爜鏈夎') diff --git a/src/components/view/b2-standard-template.vue b/src/components/view/b2-standard-template.vue index 87881a2..2d17800 100644 --- a/src/components/view/b2-standard-template.vue +++ b/src/components/view/b2-standard-template.vue @@ -132,6 +132,7 @@ this.entityCopy = this.HaveJson(this.componentData.entity) this.getPower() window.excelClosed = this.closed + window.returnView = this.returnView // window.excelExport = this.excelExport }, methods: { @@ -181,6 +182,9 @@ this.isShow = true }) }, + returnView () { + this.isShow = false + }, closed() { this.loading = true let data = luckysheet.toJson() diff --git a/src/components/view/custom_manage.vue b/src/components/view/custom_manage.vue index f323754..7c45ee4 100644 --- a/src/components/view/custom_manage.vue +++ b/src/components/view/custom_manage.vue @@ -61,7 +61,7 @@ <ValueTable ref="ValueTable" :url="$api.user.selectCustomPageList" :delUrl="$api.user.delCustomById" :componentData="componentData" :key="upIndex" :upUrl="$api.user.upCustom"/> </div> - <el-dialog title="鏂板瀹㈡埛" :visible.sync="addDia" width="450px"> + <el-dialog title="鏂板瀹㈡埛" :visible.sync="addDia" width="450px" @close="resetUser"> <div style="margin-bottom: 15px;"> <el-row style="line-height: 50px;"> <el-col :span="7" style="text-align: right;padding-right: 8px;"><span class="required-span">* @@ -296,6 +296,9 @@ this.addDia = false }) }, + resetUser () { + this.user = {} + }, // 鏉冮檺鍒嗛厤 getPower() { let power = JSON.parse(sessionStorage.getItem('power')) -- Gitblit v1.9.3