From 6e7bca8a67ef51e53ddcf20e0de66040b3da4572 Mon Sep 17 00:00:00 2001
From: duhe <226547893@qq.com>
Date: 星期四, 18 十二月 2025 11:11:17 +0800
Subject: [PATCH] Merge branch 'master' of http://101.37.171.70:10101/r/MES-WEB-VUEUI

---
 src/views/component/printList/barcode.vue |  100 ++++++++++++++++++++++++++++++++-----------------
 1 files changed, 65 insertions(+), 35 deletions(-)

diff --git a/src/views/component/printList/barcode.vue b/src/views/component/printList/barcode.vue
index 1aff0a0..911824d 100644
--- a/src/views/component/printList/barcode.vue
+++ b/src/views/component/printList/barcode.vue
@@ -1,13 +1,15 @@
 <template>
-  <div>
-    <button @click="getTemp">鎵撳嵃</button>
-    <div id="report_holder"> </div>
+  <div style="padding: 10px">
+    <el-button type="primary" @click="getTemp">鎵撳嵃</el-button>
+    <!-- <el-button type="primary" @click="getTempMeta">鑾峰彇鍏冩暟鎹�</el-button> -->
+    <div id="report_holder"></div>
   </div>
 </template>
 
 <script>
-import PrintJS from 'print-js'
+import PrintJS from "print-js";
 import axios from "axios";
+import { watch } from "vue";
 export default {
   name: "HBarPlanPrintWeb",
   data() {
@@ -16,7 +18,7 @@
       handleMessage: this.$route.query,
       pageSize: {
         width: 0,
-        height: 0
+        height: 0,
       },
       reportViewer: null,
       baseUrl: process.env.VUE_APP_BASE_API,
@@ -24,17 +26,28 @@
         recordset: [],
       },
       grfPath: "",
-
-    }
+      oriention: null,
+    };
   },
   async mounted() {
     // 鑾峰彇 鎵撳嵃鐨勬暟鎹�
-    await this.getPrintData()
-
+    await this.getPrintData();
+    // 鑾峰彇鎵撳嵃绾稿紶澶у皬
     rubylong.grhtml5.barcodeURL = this.baseUrl + "/Utility/Barcode.ashx";
-    this.reportViewer = rubylong.grhtml5.insertReportViewer("report_holder", this.grfPath,  this.json_data.recordset,
+    this.reportViewer = rubylong.grhtml5.insertReportViewer(
+      "report_holder",
+      this.grfPath,
+      this.json_data
     );
     this.reportViewer.start();
+  },
+  watch: {
+    // 鐩戝惉reportViewer鏄惁宸茬粡鏋勫缓瀹屾垚锛屾瀯寤哄畬鎴愬悗 鑾峰彇grf鏂囦欢鐨勬墦鍗伴〉闈㈠ぇ灏�
+    'reportViewer.generated'(newVal, oldVal) {
+      if(newVal == true) {
+        this.getTempMeta()
+      }
+    },
   },
   methods: {
     getUrlVars_JSON() {
@@ -45,6 +58,7 @@
       return datajson;
     },
     async getPrintData() {
+      // 鍦ㄥぇ鎵归噺鎵撳嵃鐨勬椂鍊� url闀垮害鍙兘瓒単et鍏佽鐨勯暱搴� 鍚庣闇�鎸夐渶姹� 鏀规垚POST璇锋眰
       let OpenTmp = decodeURIComponent(this.$route.query.OpenTmp);
       let sql = "";
       if (this.$route.query.Type == "Kf_SellOutBillList") {
@@ -91,58 +105,74 @@
             ModRightNameCheck: "",
             // , "HSubID": data[i].hsubid
           },
-        })
+        });
         // 灏� 娓叉煋鏁版嵁 鍜� 妯℃澘鍔犺浇鍒版湰鍦�
         let result = res.data;
-          this.json_data.recordset = result.data;
-          this.grfPath = "./static/grf/" + OpenTmp + ".grf"
-          console.log(this.json_data);
-      }catch(err) {
+        this.json_data.recordset = result.data;
+        this.grfPath = "./static/grf/" + OpenTmp + ".grf";
+        console.log(this.json_data);
+      } catch (err) {
         this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!" + err);
       }
-
+    },
+    getTempMeta() {
+      let grfMeta = JSON.parse(this.reportViewer.reportText);
+      console.log("grfMeta", grfMeta)
+      this.pageSize.width = grfMeta.Printer.Width * 10 + "mm";
+      this.pageSize.height = grfMeta.Printer.Height * 10 + "mm";
+      console.log("pageSize: ",this.pageSize)
+      this.oriention = grfMeta.Printer.Oriention.toLowerCase()
     },
     getTemp() {
       // 瀵规瘡涓鎵撳嵃鐨勫璞℃坊鍔犲垎椤�
-      let docs = document.querySelectorAll('[_grrecno]')
-      this.pageSize.width = docs[0].offsetWidth
-      this.pageSize.height = docs[0].offsetHeight
+      let docs = document.querySelectorAll("[_grrecno]");
+      // this.pageSize.width = docs[0].offsetWidth;
+      // this.pageSize.height = docs[0].offsetHeight;
       docs.forEach((elem, index) => {
-        elem.classList.add('printable')
-      })
-      let styles = document.querySelectorAll('[id^="_gridcss"]')
-      this.styleList.push(...styles)
+        elem.classList.add("printable");
+      });
+      let styles = document.querySelectorAll('[id^="_gridcss"]');
+      this.styleList.push(...styles);
 
-      this.execPrint()
+      this.execPrint();
     },
     execPrint() {
       PrintJS({
-        printable: 'report_holder',
+        printable: "report_holder",
         scanStyles: false,
-        type: 'html',
-        style: this.styleList[0].innerText + ` @media print {
+        type: "html",
+        style:
+          this.styleList[0].innerText +
+          `
             .printable {
               page-break-inside: avoid;
               page-break-after: always;
+              box-sizing: border-box !important; /* 鍐呰竟璺濅笉褰卞搷瀹介珮 */
             }
 
             @page {
-              size: ${this.pageSize.width + 1}px ${this.pageSize.height + 1}px;
+              size: ${this.pageSize.width} ${this.pageSize.height};
               margin: 0;
               padding: 0;
             }
+
+            table { border-collapse: collapse !important; }
 
             * {
               margin: 0;
               padding: 0;
+              color: #000 !important;
+              opacity: 1 !important;
+              filter: none !important;
+              text-shadow: none !important;
+              -webkit-print-color-adjust: exact; /* 寮哄埗杩樺師棰滆壊锛堥伩鍏嶆贰鑹诧級 */
             }
         `,
-      })
-
-
-    }
-  }
-}
+      });
+    },
+  },
+};
 </script>
 
-<style></style>
\ No newline at end of file
+<style>
+</style>

--
Gitblit v1.9.1