From 051e5b520f0b94dd409d4fd90ea8fc350a943f9d Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期一, 14 十月 2024 16:42:31 +0800
Subject: [PATCH] 完成温湿度特殊项目
---
src/components/view/b1-inspect-order-plan.vue | 339 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 323 insertions(+), 16 deletions(-)
diff --git a/src/components/view/b1-inspect-order-plan.vue b/src/components/view/b1-inspect-order-plan.vue
index 07192f3..b10b282 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{
@@ -138,7 +152,7 @@
<div class="center">
<div class="center-options">
<el-row>
- <el-col :span="21">
+ <el-col :span="18">
<div style="display: flex;align-items: center;margin-bottom: 10px;">
<ul class="tab">
<li v-for="(m,i) in tabList" :key="i" :class="{active:i==tabIndex}" @click="handleTab(m,i)">{{m.label.replace('璇曢獙瀹�','')}}
@@ -150,8 +164,10 @@
</div>
</div>
</el-col>
- <el-col :span="3">
+ <el-col :span="6">
<div class="center-title">
+ <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>
@@ -229,6 +245,11 @@
width="160px"
></el-table-column>
<el-table-column
+ prop="submitTime"
+ label="妫�楠岀粨鏉熸椂闂�"
+ width="160px"
+ ></el-table-column>
+ <el-table-column
prop="verifyTell"
label="鐞嗙敱"
width="150px"
@@ -236,14 +257,15 @@
<el-table-column
fixed="right"
align="center" label="鎿嶄綔"
- width="250px"
+ width="320px"
>
<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))">妫�楠�</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))">浜ゆ帴</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))">澶嶆牳</el-button>
- <el-button @click="claimFun(scope.row)" type="text" size="small" :disabled="scope.row.userName != null || scope.row.checkName!=null">璁ら</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="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>
</template>
</el-table-column>
</el-table>
@@ -298,19 +320,102 @@
<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"/>
+ <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"/>
<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"
:componentData="componentDataDataLook"/>
</div>
</el-dialog>
+ <el-dialog title="鏌ョ湅璁板綍" :visible.sync="historyDialogVisible" width="50%">
+ <el-table
+ :data="historyList"
+ border
+ style="width: 100%">
+ <el-table-column
+ prop="submitTime"
+ label="鎻愪氦鏃ユ湡"
+ width="150">
+ </el-table-column>
+ <el-table-column
+ prop="submitUserName"
+ label="鎻愪氦浜�"
+ width="90">
+ </el-table-column>
+ <el-table-column
+ prop="term"
+ label="瀹為獙闃舵"
+ width="120">
+ </el-table-column>
+ <el-table-column
+ prop="note"
+ label="瀹為獙鎿嶄綔"
+ width="120">
+ </el-table-column>
+ <el-table-column
+ prop="tell"
+ label="鍐嶆妫�楠屽師鍥�"
+ width="120">
+ </el-table-column>
+ <el-table-column
+ fixed="right"
+ label="鎿嶄綔"
+ width="100">
+ <template slot-scope="scope">
+ <el-button @click="lookHistory(scope.row)" type="text" size="small">鏌ョ湅</el-button>
+ </template>
+ </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-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>
<script>
import ValueTable from '../tool/value-table.vue'
- import Inspection from '../do/b1-inspect-order-plan/Inspection.vue'
+ import Inspection from '../do/b1-inspect-order-plan/Inspection.vue'
import {
getYearAndMonthAndDays
} from '../../util/date'
@@ -324,6 +429,9 @@
},
data() {
return {
+ currentHistory:{},
+ historyDialogVisible:false,
+ historyList:[],
orderStateId:null,
version:null,
examine: null,
@@ -452,6 +560,14 @@
disabFun: (row, index) => {
return row.userName != null || row.checkName!=null
}
+ }, {
+ id: '',
+ font: '鏌ョ湅璁板綍',
+ type: 'text',
+ method: 'claimFun',
+ disabFun: (row, index) => {
+ return !row.num1 || row.num1<2
+ }
}
],
linkEvent: {
@@ -525,7 +641,25 @@
label: '鏈嚭缁撴灉',
type: 'info'
}],
- typeList:[]
+ typeList:[],
+ getInsProduct2:false,
+ claim:false,
+ review:false,
+ connect:false,
+ inspection:false,
+ isLook:false,//鏄惁鏄煡鐪嬪巻鍙查〉闈�
+ num1:null,
+ codeInfo:null,
+ startTime:null,
+ scanInsOrderState:false,
+ qrCodeVisible: false,
+ sampleCode: '',
+ storageList:[],
+ expandedKeys: [],
+ selectTree: [],
+ upLoadStorage: false,
+ exportVisible: false,
+ upLoadExport: false,
}
},
created() {
@@ -533,6 +667,7 @@
this.getTypeDicts()
this.getInsStateDicts()
this.getAuthorizedPerson()
+ this.selectList()
this.currentTime = getYearAndMonthAndDays()
},
mounted() {
@@ -542,7 +677,143 @@
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.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 = ''
+ try{
+ code = JSON.parse(this.codeInfo)
+ if(code==null||code==undefined||code==''){
+ this.$message.error('璇ヤ簩缁寸爜鏈夎')
+ }else{
+ this.sampleCode = code
+ }
+ }catch(e){
+ this.$message.error('璇ヤ簩缁寸爜鏈夎')
+ }
+ this.codeInfo = null
+ },
// 鎷栨嫿
initializeSortable() {
const tableBody = this.$refs.table0.$el.querySelector('.el-table__body-wrapper > table > tbody');
@@ -595,6 +866,8 @@
let review = false
let claim = false
let jumpTeam = false
+ // let getInsProduct2 = false
+ // let getInsOrderUserList = false
for (var i = 0; i < power.length; i++) {
if (power[i].menuMethod == 'doInsOrder') {
inspection = true
@@ -611,19 +884,33 @@
if (power[i].menuMethod == 'jumpTeam') {
jumpTeam = true
}
+ // if (power[i].menuMethod == 'getInsProduct2') {
+ // getInsProduct2 = true
+ // }
+ if (power[i].menuMethod == 'scanInsOrderState') {
+ this.scanInsOrderState = true
+ }
}
+ // if (!getInsProduct2) {
+ // this.componentData.do.splice(5, 1)
+ // }
if (!claim) {
- this.componentData.do.splice(3, 1)
+ this.componentData.do.splice(4, 1)
}
if (!review) {
- this.componentData.do.splice(2, 1)
+ this.componentData.do.splice(3, 1)
}
if (!connect) {
- this.componentData.do.splice(1, 1)
+ this.componentData.do.splice(2, 1)
}
if (!inspection) {
- this.componentData.do.splice(0, 1)
+ this.componentData.do.splice(1, 1)
}
+ // this.getInsProduct2 = getInsProduct2
+ this.claim = claim
+ this.review = review
+ this.connect = connect
+ this.inspection = inspection
this.jumpTeam = jumpTeam
},
changeCheckBox(val) {
@@ -643,7 +930,7 @@
this.sampleUserForm = {
entrustCode: row.entrustCode,
insSampleId: row.id,
- sonLaboratory: row.sonLaboratory,
+ sonLaboratory: row.sonLaboratory,
}
this.claimVisible = true
}
@@ -792,10 +1079,11 @@
inspectorList.push(user.name)
}
this.inspectorList = inspectorList
- this.state = 1;
this.orderId = row.id
this.version = row.version
this.orderStateId = row.orderStateId
+ this.state = 1;
+ this.isLook = false
},
handleConnect(row){
this.orderId = row.id
@@ -847,6 +1135,7 @@
this.orderId = row.id
this.version = row.version
this.orderStateId = row.orderStateId
+ this.isLook = false
},
getAuthorizedPerson() {
this.$axios.get(this.$api.user.getUserMenu).then(res => {
@@ -860,6 +1149,24 @@
this.personList = data
})
},
+ lookHistory0(row){
+ this.currentHistory = row
+ this.$axios.post(this.$api.insOrderPlan.getInsOrderUserList, {
+ insOrderStateId:row.orderStateId,
+ }).then(res => {
+ this.historyList = res.data
+ this.historyDialogVisible = true
+ })
+ },
+ lookHistory(row){
+ this.isLook = true
+ this.state = 2;
+ this.orderId = this.currentHistory.id
+ this.version = this.currentHistory.version
+ this.orderStateId = this.currentHistory.orderStateId
+ this.num1 = row.num
+ this.historyDialogVisible = false
+ }
}
}
</script>
--
Gitblit v1.9.3