From 7eeeadfd5a4c13923db680b99a4a23339a214da4 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期四, 07 十二月 2023 17:28:52 +0800
Subject: [PATCH] 	modified:   src/page/index/logo.vue 	modified:   src/views/equipment/equipment/index.vue 	modified:   src/views/plan/customerorder/sample-customerorder-form.vue 	modified:   src/views/plan/manufacturingorder/index.vue 	modified:   src/views/quality/Packaging_ledger/index.vue

---
 src/views/plan/manufacturingorder/index.vue |  180 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 175 insertions(+), 5 deletions(-)

diff --git a/src/views/plan/manufacturingorder/index.vue b/src/views/plan/manufacturingorder/index.vue
index 3e3d4fc..f1276ae 100644
--- a/src/views/plan/manufacturingorder/index.vue
+++ b/src/views/plan/manufacturingorder/index.vue
@@ -22,8 +22,9 @@
             </el-button>
             <el-dropdown-menu slot="dropdown">
               <el-dropdown-item
+                :key="index"
                 :command="item.command"
-                v-for="item in taskTypeArr"
+                v-for="(item,index) in taskTypeArr"
                 :disabled="canCreateTask"
                 >{{ item.label }}</el-dropdown-item
               >
@@ -40,8 +41,9 @@
             </el-button>
             <el-dropdown-menu slot="dropdown">
               <el-dropdown-item
+                :key="i"
                 :command="item.command"
-                v-for="item in stateTagArr"
+                v-for="(item,i) in stateTagArr"
                 :disabled="item.disabled"
                 >{{ item.label }}</el-dropdown-item
               >
@@ -104,6 +106,12 @@
             style="margin-left:10px;"
             :loading="loadingExcel"
             >瀵煎嚭
+          </el-button>
+          <el-button
+            @click="labelPrint"
+            type="primary"
+            style="margin-left:10px;"
+            >鏍囩鎵撳嵃
           </el-button>
           <!-- <el-button
             v-if="permissions.manufacturingorder_update_orderno"
@@ -190,6 +198,61 @@
         </span>
       </el-dialog>
     </basic-container>
+    <!-- 鏍囩鎵撳嵃 -->
+    <el-dialog title="鏍囩鍒楄〃" :visible.sync="diaPrintTab" width="500px" top="5vh">
+      <div style="width:100%;height: 400px;overflow-y: auto;">
+        <div class="dia_body">
+          <el-checkbox 
+          style="margin: 10px 5px;"
+          :indeterminate="isIndeterminate" 
+          v-model="checkAll" 
+          @change="handleCheckAllChange">鍏ㄩ��</el-checkbox>
+          <el-checkbox-group @change="changePrintCode()" v-model="checkIndexList">
+            <el-card class="box-card" v-for="(item, i) in qrData" :key="i" style="margin-bottom: 15px; font-size: 16px !important;">
+                  <el-checkbox :label="i" :key="i" style="position: relative;top:-20px;left:5px"><br></el-checkbox>
+                  <el-row>
+                    <el-col :span="10" :offset="3">搴忓彿锛�</el-col>
+                    <el-col :span="10" style="font-weight: bold;">{{ i + 1 }}</el-col>
+                  </el-row>
+                  <el-row>
+                    <el-col :span="10" :offset="3">杞﹂棿璁㈠崟鍙凤細</el-col>
+                    <el-col :span="10" style="font-weight: bold;">{{ item.moNo2 }}</el-col>
+                  </el-row>
+                  <el-row>
+                    <el-col :span="10" :offset="3">璁㈠崟浜岀淮鐮侊細</el-col>
+                    <el-col :span="10">
+                      <vueQr :text="JSON.stringify(item)" :size="80" :margin="2"></vueQr>
+                    </el-col>
+                  </el-row>
+            </el-card>
+          </el-checkbox-group>
+        </div>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="diaPrintTab = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="printFun">鎵� 鍗�</el-button>
+      </span>
+    </el-dialog>
+    <div class="el-dialog__body" style="width:448.8px;overflow-y: auto;position: absolute;top:9999px;padding: 0;">
+        <div id="printMOrder">
+          <el-card class="box-card" v-for="(item, i) in checkDataList" :key="i" style="margin-bottom:10px;font-size: 16px !important;">
+              <el-row>
+                <el-col :span="10" :offset="3">搴忓彿锛�</el-col>
+                <el-col :span="10" style="font-weight: bold;">{{ i + 1 }}</el-col>
+              </el-row>
+              <el-row>
+                <el-col :span="10" :offset="3">杞﹂棿璁㈠崟鍙凤細</el-col>
+                <el-col :span="10" style="font-weight: bold;">{{ item.moNo2 }}</el-col>
+              </el-row>
+              <el-row>
+                <el-col :span="10" :offset="3">璁㈠崟浜岀淮鐮侊細</el-col>
+                <el-col :span="10">
+                  <vueQr :text="JSON.stringify(item)" :size="110" :margin="2"></vueQr>
+                </el-col>
+              </el-row>
+          </el-card>
+        </div>
+      </div>
   </div>
 </template>
 
@@ -218,9 +281,17 @@
 import DelMatUnIssueVue from './DelMatUnIssue.vue'
 import { getStore } from '@/util/store.js'
 import { getObj as getSysParam } from '@/api/admin/sys-public-param'
+import vueQr from 'vue-qr'
+import PrintJS from 'print-js'
 export default {
   data() {
     return {
+      checkAll: false,
+      isIndeterminate: true,
+      checkDataList: [],
+      checkIndexList: [],
+      qrData: [],
+      diaPrintTab:false,
       showCustomerorder: false,
       paramObj: { customerList: null },
       customerOrder: null,
@@ -421,6 +492,15 @@
             minWidth: '120',
             prop: 'lengthRequirement',
             label: '鐩橀暱瑕佹眰',
+            sort: true,
+            isTrue: true,
+            isSearch: true,
+            searchInfoType: 'text'
+          },
+           {
+            minWidth: '120',
+            prop: 'scrapQty',
+            label: '鎶ュ簾鏁伴噺',
             sort: true,
             isTrue: true,
             isSearch: true,
@@ -895,7 +975,8 @@
     AutoOperationtask,
     IssueMaterialForm,
     OrderMergeForm,
-    DelMatUnIssueVue
+    DelMatUnIssueVue,
+    vueQr
   },
   created() {
     this.getManufactureAttrs()
@@ -996,7 +1077,6 @@
       }
     })
   },
-
   computed: {
     ...mapGetters(['permissions'])
   },
@@ -1006,7 +1086,97 @@
   mounted() {
     // this.initQueryParams()
   },
+  watch:{
+    diaPrintTab(newVal){
+      if(!newVal){
+        this.qrData = []
+        this.checkIndexList = []
+        this.checkDataList = []
+        this.isIndeterminate = true;
+      }
+    }
+  },
   methods: {
+    //鍏ㄩ��
+    handleCheckAllChange(val) {
+      if(val){
+        for(var i=0;i<this.qrData.length;i++){
+          this.checkIndexList.push(i)
+        }
+        this.checkDataList = this.qrData
+      }else{
+        this.checkIndexList = []
+        this.checkDataList = []
+      }
+      this.isIndeterminate = false;
+    },
+    //閫夋嫨瑕佹墦鍗扮殑浜岀淮鐮�
+    changePrintCode(){
+      let indexList = this.checkIndexList
+      let arr = []
+      indexList.forEach(i=>{
+        arr.push(this.qrData[i])
+      })
+      this.checkDataList = arr
+    },
+    //鎵撳嵃鏂规硶
+    printFun() {
+        if(this.checkDataList.length < 1){
+          this.$message.warning("璇烽�夋嫨瑕佹墦鍗扮殑浜岀淮鐮�")
+          return
+        }
+        this.diaPrintTab = false;
+        PrintJS({
+            printable: 'printMOrder',//椤甸潰
+            type: "html",//鏂囨。绫诲瀷
+              maxWidth:450,
+              targetStyles:['*'],                 
+              style: `@page {
+                margin:0;
+                size: 360px 175px;
+              }
+              html{
+                zoom:100%;
+              }
+              @media print{
+                width: 360px;
+                height: 175px;
+                margin:0;
+              }`,
+              onPrintDialogClose: this.erexcel=false,
+              targetStyles: ["*"], // 浣跨敤dom鐨勬墍鏈夋牱寮忥紝寰堥噸瑕�
+              font_size: '',
+        });
+    },
+    //鍒濆鍖栦簩缁寸爜鏍囩鏁版嵁
+    initQrData(data){
+      this.qrData = []
+      if(data){
+        let index = Number(data.qtyRequired) + Number(data.scrapQty)
+        if(index>0){
+          for(var i=1;i<= index;i++){
+            let obj = {
+              moNo: data.moNo,
+              moNo2: null,
+            }
+            let no = (i+"").padStart(3,'0')
+            obj.moNo2 = data.moNo + no
+            this.qrData.push(obj)
+          }
+        }
+      }
+    },
+    //鏍囩鎵撳嵃鎸夐挳
+    labelPrint(){
+      if(this.multipleSelection.length==0){
+          this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹�')
+          return
+      }
+      let selection = this.multipleSelection
+      let lastRow = selection[ selection.length - 1 ]
+      this.initQrData(lastRow)
+      this.diaPrintTab = true
+    },
     getManufactureAttr(row, column, cellValue) {
       this.manufactureAttrs.forEach((obj) => {
         if (obj.value === cellValue) {
@@ -1647,7 +1817,7 @@
       } else {
         this.$message.error('涓婁紶澶辫触')
       }
-    }
+    },
   }
 }
 </script>

--
Gitblit v1.9.3