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