From c93c13d1cfe288d431109ae1eafd7a9fc6d58746 Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期二, 13 六月 2023 10:23:17 +0800
Subject: [PATCH] 1.递交

---
 src/views/produceManager/workOrder.vue |  303 ++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 280 insertions(+), 23 deletions(-)

diff --git a/src/views/produceManager/workOrder.vue b/src/views/produceManager/workOrder.vue
index 226974e..a9908d3 100644
--- a/src/views/produceManager/workOrder.vue
+++ b/src/views/produceManager/workOrder.vue
@@ -309,8 +309,8 @@
           >
             <template slot-scope="{row}">
               <div v-if="row.piroque==='1'">鐗圭骇</div>
-              <div v-if="row.piroque==='2'">绱ф��</div>
-              <div v-if="row.piroque==='3'">姝e父</div>
+              <div v-else-if="row.piroque==='2'">绱ф��</div>
+              <div v-else-if="row.piroque==='3'">姝e父</div>
               <div v-else>/</div>
             </template>
           </el-table-column>
@@ -445,10 +445,20 @@
               <div class="operationClass">
                 <el-tooltip class="item" effect="dark" content="鎵撳嵃宸ュ簭" placement="top">
                   <i
+                    v-if="tableDataDetail.length!==row.seq"
                     class="el-icon-printer"
                     :style="{color:$store.state.settings.theme}"
                     style="cursor: pointer;margin-right: 15px"
                     @click="supplementSmallClick(row)"
+                  />
+                </el-tooltip>
+                <el-tooltip class="item" effect="dark" content="琛ユ墦鐢熶骇鍏ュ簱鏉$爜" placement="top">
+                  <i
+                    v-if="tableDataDetail.length===row.seq"
+                    class="  el-icon-camera"
+                    :style="{color:$store.state.settings.theme}"
+                    style="cursor: pointer;margin-right: 15px"
+                    @click="getProductInHouseLabCode(row.wo_code)"
                   />
                 </el-tooltip>
               </div>
@@ -497,7 +507,8 @@
         </el-form-item>
 
         <el-form-item label="宸ュ崟缂栧彿" prop="mesordercode">
-          <el-input v-model="dialogForm.mesordercode" :disabled="operation!=='add'" style="width: 200px" />
+          <!--          <el-input v-model="dialogForm.mesordercode" :disabled="operation!=='add'" style="width: 200px" />-->
+          <el-input v-model="dialogForm.mesordercode" disabled style="width: 200px" />
         </el-form-item>
         <div style="display: flex">
           <el-form-item label="宸ュ崟绫诲瀷" prop="mesorderstus">
@@ -546,7 +557,7 @@
         </el-form-item>
         <el-form-item
           v-if="operation==='add'"
-          label="浜у搧鍚嶇О"
+          label="浜у搧鍚嶇О/缂栫爜"
           prop="partcode"
         >
           <el-select
@@ -561,7 +572,7 @@
             <el-option
               v-for="item in partArr"
               :key="item.partcode"
-              :label="item.partname"
+              :label="item.partname+'/'+item.partcode"
               :value="item.partcode"
             />
           </el-select>
@@ -749,7 +760,7 @@
           <!--          <el-button v-waves v-if="operation==='add'" type="primary" @click="dialogVisibleConfirmPreview('add')">棰勮</el-button>-->
 
           <el-button
-            v-if="!submitBottonIsDisabled"
+            v-if="!submitButtonIsDisabled"
             v-waves
             type="primary"
             :loading="$store.state.app.buttonIsDisabled"
@@ -758,7 +769,7 @@
           >纭� 瀹�</el-button>
 
           <el-button
-            v-if="submitBottonIsDisabled"
+            v-if="submitButtonIsDisabled"
             v-waves
             type="primary"
             disabled
@@ -1267,13 +1278,13 @@
           </div>
           <div
             id="qrCode"
-            style="width: 22%;height:97px;
+            style="width: 22%;height:90px;
             margin-top: 20px;
             overflow-y: scroll;display: flex;
             justify-content: center;
             position: relative;"
           >
-            <!--            <div id="qrCode0" ref="qrCodeDiv0" />-->
+            <div id="qrCode0" ref="qrCodeDiv0" />
           </div>
           <div style="background-color: #fff;width: 20px;height:120px; position: absolute;right: 0" />
           <div
@@ -1361,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"
@@ -1388,7 +1399,8 @@
         </div>
         <!-- 瑕佹墦鍗扮殑鍖哄煙 -->
         <!--      <div id="printMe2" :style="{paddingLeft:'10px',paddingTop: '5px'}">-->
-        <div 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;"
@@ -1450,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;"
@@ -1511,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"
@@ -1634,10 +1648,190 @@
 
           </div>
         </div>
+
+        <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>
@@ -1772,7 +1966,7 @@
   ClosedMesOrder,
   DeleteMesOrder, MesBadOrderSearch, JobCreationSonAddVison,
   MesOrderSearch, PartSelectRoute, RouteSelectWkshop, SearchWorkStep, SelectRouteOrWkshop,
-  SelectRouteStep
+  SelectRouteStep, AddMesOrderCodeSearch, ProductInHouseLabCode
 } from '@/api/produceManager'
 import { InventoryFileAssociationRoute, PartSelect, SaveInventoryFile } from '@/api/makeModel'
 import { handleDatetime, handleDatetime2, validateCode } from '@/utils/global'
@@ -2019,7 +2213,11 @@
           return time.getTime() < Date.now() - 8.64e7
         }
       },
-      submitBottonIsDisabled: false
+      submitButtonIsDisabled: false,
+
+      isLastPrint: false, // 鏄惁鏄湯閬撴墦鍗�
+      lastPrintArr: [], // 鏈亾鎵撳嵃鐨勬暟缁�(鎵�鏈�)
+      lastPrintArrSelected: []// 鏈亾鎵撳嵃鐨勬暟缁�(閫変腑)
     }
   },
   created() {
@@ -2130,6 +2328,8 @@
     },
     // 鏂板鎸夐挳
     async add(operation) {
+      const { data: res } = await AddMesOrderCodeSearch()
+      this.dialogForm.mesordercode = res
       this.operation = operation
       this.dialogVisible = true
       this.dialogForm.planstartdate = handleDatetime(new Date())
@@ -2155,7 +2355,7 @@
 
       this.dialogForm.wkshopcode = ''
 
-      this.submitBottonIsDisabled = false
+      this.submitButtonIsDisabled = false
     },
     // 宸ヨ壓璺嚎鍊兼敼鍙�
     async routecodeChange(val) {
@@ -2168,7 +2368,7 @@
       this.wkshopArr = res2
       this.dialogForm.wkshopcode = ''
 
-      this.submitBottonIsDisabled = false
+      this.submitButtonIsDisabled = false
     },
     // 鐢熶骇杞﹂棿鍊兼敼鍙樻椂
     wkshopcodeChange(val) {
@@ -2181,7 +2381,7 @@
         // console.log(res, 1)
       }).catch(err => {
         // console.log(err, 2)
-        this.submitBottonIsDisabled = true
+        this.submitButtonIsDisabled = true
       })
     },
 
@@ -2346,7 +2546,7 @@
 
       this.bomIdArr = []
       this.$refs.dialogForm.clearValidate()
-      this.submitBottonIsDisabled = false
+      this.submitButtonIsDisabled = false
     },
     // 瀵硅瘽妗嗗彇娑�
     dialogVisibleCancel() {
@@ -2473,12 +2673,12 @@
             res3.forEach(i => {
               this.bindQRCode(i.seq, i.stepqrcode, 'small')
             })
-            // this.bindQRCode('0', this.formApprove.mesordercode, 'big')
+            this.bindQRCode('0', this.formApprove.mesordercode, 'big')
 
             const div = document.getElementById('qrCode')
             // 杩欎箞澶氫唬鐮佸彧闇�瑕佽繖涓�鍙ュ疄鐜版垜浠墍闇�瑕佺殑鍔熻兘锛屽畾浣峝iv婊氬姩鏉′綅缃湪搴曢儴锛宻crollHeight璁$畻鍑篸iv鐨勯珮搴︼紝鍐峴crollTop 璁剧疆婊氬姩鏉$殑楂樺害涓哄灏�
-            // div.scrollTop = div.scrollHeight // 婊氬姩鏉′綅浜庢渶搴曢儴
-            div.scrollTop = 0 // 婊氬姩鏉′綅浜庢渶椤堕儴
+            div.scrollTop = div.scrollHeight // 婊氬姩鏉′綅浜庢渶搴曢儴
+            // div.scrollTop = 0 // 婊氬姩鏉′綅浜庢渶椤堕儴
           })
           this.dialogVisibleApprove = true
         }
@@ -2593,6 +2793,31 @@
       this.dialogVisible2 = true
       console.log(this.qrForm, 1111)
     },
+    // 琛ユ墦鐢熶骇鍏ュ簱鏉$爜
+    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 = ''
       this.qrForm.startqty = ''
@@ -2603,6 +2828,9 @@
       this.qrForm.operator = ''
       this.qrForm.operatorTime = ''
       // this.$refs.qrCodeDiv2 = ''
+      this.isLastPrint = false
+      this.lastPrintArr = []
+      this.lastPrintArrSelected = []
     },
     // 鐢熸垚浜岀淮鐮�    宸ュ簭鏍囩浜岀淮鐮�
     bindQRCode2(text) {
@@ -2828,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)
     }
   }
 }

--
Gitblit v1.9.3