From 86b282043844a5c6d2624d9f18a465c08d8cfc11 Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期四, 25 五月 2023 16:32:53 +0800
Subject: [PATCH] 1.MES工单补打生产入库条码
---
src/views/qualityManager/qualityPlaning.vue | 2
src/views/produceManager/workOrder.vue | 247 +++++++++++++++++++++++++++++++++++++++++++++++--
2 files changed, 238 insertions(+), 11 deletions(-)
diff --git a/src/views/produceManager/workOrder.vue b/src/views/produceManager/workOrder.vue
index 051fe3c..ba81498 100644
--- a/src/views/produceManager/workOrder.vue
+++ b/src/views/produceManager/workOrder.vue
@@ -1372,14 +1372,14 @@
v-el-drag-dialog
title="棰勮"
:visible.sync="dialogVisible2"
- width="1140"
+ width="1000"
top="10vh"
:close-on-click-modal="false"
@close="dialogVisible2Close"
>
- <div style="height: 300px">
+ <div style="height: 650px;overflow:auto;">
<!-- 涓嬫媺妗嗛�夋嫨鎵撳嵃灏哄-->
- <div style="display: flex;align-items: center;margin: 0 0 20px 0">
+ <div v-if="!isLastPrint" style="display: flex;align-items: center;margin: 0 0 20px 0">
<div>閫夋嫨鎵撳嵃灏哄锛�</div>
<el-select
v-model="printSize"
@@ -1399,7 +1399,8 @@
</div>
<!-- 瑕佹墦鍗扮殑鍖哄煙 -->
<!-- <div id="printMe2" :style="{paddingLeft:'10px',paddingTop: '5px'}">-->
- <div v-if="!isLastPrint" id="printMe2" :style="printMe2StylePadding(printSize)">
+ <div v-if="!isLastPrint" :style="printMe2StylePadding(printSize)">
+ <!-- 80 * 50-->
<div
v-if="printSize===0"
style="display: flex;width: 280px;height: 160px;border: 1px solid #000;text-align: center;font-size: 10px;"
@@ -1461,6 +1462,7 @@
</div>
</div>
+ <!-- 78 * 60 -->
<div
v-if="printSize===1"
style="display: flex;width: 280px;height: 160px;border: 1px solid #000;text-align: center;font-size: 10px;"
@@ -1522,6 +1524,7 @@
</div>
</div>
+ <!-- 60 * 40 -->
<div
v-if="printSize===2"
style="display: flex;width: 220px;height: 130px;border: 1px solid #000;text-align: center;font-size: 12px"
@@ -1646,14 +1649,189 @@
</div>
</div>
- <div v-if="isLastPrint">
- 123
+ <div v-if="isLastPrint" style="display: flex;flex-direction: column">
+
+ <div style="display: flex;font-weight: bold;font-size: 16px;margin-bottom: 20px;">
+ <div style="width: 48%;">
+ 璇烽�夋嫨鍏ュ簱鏉$爜
+ </div>
+ <div style="width: 48%;margin-left: 4%;">
+ 宸查�変腑鐨勫叆搴撴潯鐮�
+ </div>
+ </div>
+
+ <div style="display: flex;">
+ <!-- 璇烽�夋嫨鍏ュ簱鏉$爜-->
+ <div style="display: flex;flex-direction: column;height: 600px;overflow: auto;width: 48%;">
+ <div
+ v-for="(item,index) in lastPrintArr"
+ :key="item.inbarcode"
+ :style="{marginTop:index===0?'':'15px'}"
+ style="display: flex;align-items: center;"
+ >
+
+ <!-- v-if="printSize===0"-->
+ <div style="margin-right:40px">
+ <el-checkbox
+ :key="item.inbarcode"
+ v-model="item.checked"
+ @change="val=>inbarcodeChange(val,item)"
+ />
+ </div>
+ <div
+ style="display: flex;width: 280px;height: 160px;border: 1px solid #000;text-align: center;font-size: 10px;"
+ >
+
+ <div style="width: 90px;display: flex;flex-direction: column;border-right: 1px solid #000">
+ <div
+ style="display: flex;height: 96px;border-bottom:1px solid #000;
+ justify-content: center;align-items: center;position: relative"
+ >
+ <div
+ id="qrCode2"
+ ref="qrCodeDiv2"
+ style="overflow-y: hidden;height:60px;position: absolute;left: 14px;"
+ />
+ </div>
+ <div
+ style="display: flex;height: 32px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center"
+ >
+ <div style="margin-left: 5px;width: 28px">鏁伴噺:</div>
+ {{ item.good_qty }}
+ </div>
+ <div style="display: flex;height: 32px;justify-content: flex-start;align-items: center">
+ <div style="margin-left: 5px;width: 42px">澶勭悊浜�:</div>
+ {{ item.username }}
+ </div>
+ </div>
+
+ <div style="width:190px;display: flex;flex-direction: column">
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">宸ュ崟缂栧彿:</div>
+ <div>{{ item.wo_code }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center ;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">浜у搧缂栫爜:</div>
+ <div>{{ item.partcode }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width:60px;margin-left: 5px;">浜у搧鍚嶇О:</div>
+ <div>{{ item.partname }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width:60px;margin-left: 5px;">浜у搧瑙勬牸:</div>
+ <div>{{ item.partspec ? item.partspec : '/' }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">澶勭悊鏃堕棿:</div>
+ <div>{{ item.lm_date }}</div>
+ </div>
+
+ </div>
+
+ </div>
+
+ </div>
+ </div>
+
+ <!-- 宸查�変腑鐨勫叆搴撴潯鐮�-->
+ <div
+ style="display: flex;flex-direction: column;height: 600px;overflow: auto;width: 48%;margin-left: 50px;"
+ >
+ <div id="printMe2">
+ <div
+ v-for="(item,index) in lastPrintArrSelected"
+ v-if="item.checked"
+ :key="item.inbarcode"
+ :style="{marginTop:index===0?'':'15px'}"
+ style="display: flex;align-items: center;"
+ >
+ <div
+ style="display: flex;width: 280px;height: 160px;border: 1px solid #000;text-align: center;font-size: 10px;"
+ >
+
+ <div style="width: 90px;display: flex;flex-direction: column;border-right: 1px solid #000">
+ <div
+ style="display: flex;height: 96px;border-bottom:1px solid #000;
+ justify-content: center;align-items: center;position: relative"
+ >
+ <div
+ id="qrCode3"
+ ref="qrCodeDiv3"
+ style="overflow-y: hidden;height:60px;position: absolute;left: 14px;"
+ />
+ </div>
+ <div
+ style="display: flex;height: 32px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center"
+ >
+ <div style="margin-left: 5px;width: 28px">鏁伴噺:</div>
+ {{ item.good_qty }}
+ </div>
+ <div style="display: flex;height: 32px;justify-content: flex-start;align-items: center">
+ <div style="margin-left: 5px;width: 42px">澶勭悊浜�:</div>
+ {{ item.username }}
+ </div>
+ </div>
+
+ <div style="width:190px;display: flex;flex-direction: column">
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">宸ュ崟缂栧彿:</div>
+ <div>{{ item.wo_code }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center ;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">浜у搧缂栫爜:</div>
+ <div>{{ item.partcode }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width:60px;margin-left: 5px;">浜у搧鍚嶇О:</div>
+ <div>{{ item.partname }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width:60px;margin-left: 5px;">浜у搧瑙勬牸:</div>
+ <div>{{ item.partspec ? item.partspec : '/' }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">澶勭悊鏃堕棿:</div>
+ <div>{{ item.lm_date }}</div>
+ </div>
+
+ </div>
+
+ </div>
+
+ </div>
+ </div>
+
+ </div>
+
+ </div>
+
</div>
</div>
<span slot="footer" class="dialog-footer">
<div class="footerButton">
- <el-button v-waves @click="dialogVisible2 = false">鍙� 娑�</el-button>
+ <el-button v-waves @click="dialogVisible2 = false;">鍙� 娑�</el-button>
<el-button v-waves v-print="printObj2" type="primary">鎵� 鍗�</el-button>
</div>
</span>
@@ -2037,7 +2215,9 @@
},
submitButtonIsDisabled: false,
- isLastPrint: false// 鏄惁鏄湯閬撴墦鍗�
+ isLastPrint: false, // 鏄惁鏄湯閬撴墦鍗�
+ lastPrintArr: [], // 鏈亾鎵撳嵃鐨勬暟缁�(鎵�鏈�)
+ lastPrintArrSelected: []// 鏈亾鎵撳嵃鐨勬暟缁�(閫変腑)
}
},
created() {
@@ -2614,13 +2794,29 @@
console.log(this.qrForm, 1111)
},
// 琛ユ墦鐢熶骇鍏ュ簱鏉$爜
- async getProductInHouseLabCode(ordercode) {
+ async getProductInHouseLabCode(ordercode) {
const res = await ProductInHouseLabCode({ ordercode })
console.log(res)
this.isLastPrint = true
- // 鍋氫竴浜涙墦鍗板閫夌殑鎿嶄綔
+
+ this.lastPrintArr = res.data
this.dialogVisible2 = true
+
+ // 鐢熶骇浜岀淮鐮�
+ this.$nextTick(() => {
+ this.lastPrintArr.forEach((i, index) => {
+ i.checked = false
+ new QRCode(this.$refs.qrCodeDiv2[index], {
+ text: i.inbarcode,
+ width: this.printSize !== 2 ? 60 : 55,
+ height: this.printSize !== 2 ? 60 : 55,
+ colorDark: '#000', // 浜岀淮鐮侀鑹�
+ colorLight: '#ffffff', // 浜岀淮鐮佽儗鏅壊
+ correctLevel: QRCode.CorrectLevel.L// 瀹归敊鐜囷紝L/M/H
+ })
+ })
+ })
},
dialogVisible2Close() {
this.qrForm.qrvalue = ''
@@ -2633,6 +2829,8 @@
this.qrForm.operatorTime = ''
// this.$refs.qrCodeDiv2 = ''
this.isLastPrint = false
+ this.lastPrintArr = []
+ this.lastPrintArrSelected = []
},
// 鐢熸垚浜岀淮鐮� 宸ュ簭鏍囩浜岀淮鐮�
bindQRCode2(text) {
@@ -2858,6 +3056,35 @@
if (val === 5) {
return { paddingLeft: '15px', paddingTop: '7px' }
}
+ },
+
+ inbarcodeChange(val, item) {
+ // 褰� lastPrintArrSelected涓湭鏈夊綋鍓嶅嬀閫夌殑鍊兼槸 璧皃ush item 鍚﹀垯璧拌繃婊ゆ帀item
+ if (val) {
+ this.lastPrintArrSelected.push(item)
+ } else {
+ this.lastPrintArrSelected = this.lastPrintArrSelected.filter(i => i.inbarcode !== item.inbarcode)
+ }
+
+ // 鐢熶骇浜岀淮鐮�
+ this.$nextTick(() => {
+ this.lastPrintArrSelected.forEach((i, index) => {
+ console.log(i.inbarcode, 'i.inbarcode')
+ new QRCode(this.$refs.qrCodeDiv3[index], {
+ text: i.inbarcode,
+ width: 60,
+ height: 60,
+ colorDark: '#000', // 浜岀淮鐮侀鑹�
+ colorLight: '#ffffff', // 浜岀淮鐮佽儗鏅壊
+ correctLevel: QRCode.CorrectLevel.L// 瀹归敊鐜囷紝L/M/H
+ })
+ })
+
+ // const div = document.getElementById('qrCode3')
+ // div.scrollTop = 0 // 婊氬姩鏉′綅浜庢渶搴曢儴
+
+ this.$forceUpdate()
+ }, 500)
}
}
}
diff --git a/src/views/qualityManager/qualityPlaning.vue b/src/views/qualityManager/qualityPlaning.vue
index 5c21948..25f7b9e 100644
--- a/src/views/qualityManager/qualityPlaning.vue
+++ b/src/views/qualityManager/qualityPlaning.vue
@@ -317,7 +317,7 @@
<el-input v-model="dialogForm.sampnum" oninput="value=value.replace(/[^0-9]/g,'')" style="width: 200px" />
</el-form-item>
<el-form-item v-if="dialogForm.sampmethod==='SCARE'" label="鎶芥姣斾緥" prop="sampscale">
- <el-input v-model="dialogForm.sampscale" oninput="value=value.replace(/[^0-9]/g,'')" style="width: 180px" />
+ <el-input v-model="dialogForm.sampscale" oninput="value=value.replace(/[^0-9.]/g,'')" style="width: 180px" />
%
</el-form-item>
<br>
--
Gitblit v1.9.3