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