From b5b941ea3bf47ed36bf21ca072eb792fc3386c12 Mon Sep 17 00:00:00 2001
From: chenhaozhe <cgz@hz-kingdee.com>
Date: 星期一, 15 十二月 2025 09:55:21 +0800
Subject: [PATCH] 网页打印 纸张大小配置为 根据 模板设置的默认尺寸大小
---
.env.staging | 2
src/views/component/printList/barcode.vue | 93 ++++++++++++++++++++++++++++------------------
2 files changed, 57 insertions(+), 38 deletions(-)
diff --git a/.env.staging b/.env.staging
index 1a84e05..ceed279 100644
--- a/.env.staging
+++ b/.env.staging
@@ -9,7 +9,7 @@
ENV = 'staging'
# 鏅轰簯杩堟�滾-MOM绠$悊绯荤粺/娴嬭瘯鐜
-VUE_APP_BASE_API = 'http://192.168.0.51:81/API/'
+VUE_APP_BASE_API = 'http://localhost:81/API/'
# 璺敱鎳掑姞杞�
VUE_CLI_BABEL_TRANSPILE_MODULES = true
diff --git a/src/views/component/printList/barcode.vue b/src/views/component/printList/barcode.vue
index a640440..03101c2 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,27 @@
recordset: [],
},
grfPath: "",
-
- }
+ };
},
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 +57,7 @@
return datajson;
},
async getPrintData() {
+ // 鍦ㄥぇ鎵归噺鎵撳嵃鐨勬椂鍊� url闀垮害鍙兘瓒単et鍏佽鐨勯暱搴� 鍚庣闇�鎸夐渶姹� 鏀规垚POST璇锋眰
let OpenTmp = decodeURIComponent(this.$route.query.OpenTmp);
let sql = "";
if (this.$route.query.Type == "Kf_SellOutBillList") {
@@ -78,51 +91,59 @@
GROUP BY CEILING(CAST(t.row_num AS FLOAT) / 2)
ORDER BY orderid;`;
}
- try{
- let res = await axios.get(this.baseURL + "/CommonModel/searchMethod", {
+ try {
+ let res = await axios.get(this.baseUrl + "/CommonModel/searchMethod", {
params: {
sql: sql,
user: sessionStorage["HUserName"],
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)
},
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 +
+ ` @media print {
.printable {
page-break-inside: avoid;
page-break-after: always;
}
@page {
- size: ${this.pageSize.width + 1}px ${this.pageSize.height + 1}px;
+ size: ${this.pageSize.width} ${this.pageSize.height};
margin: 0;
padding: 0;
}
@@ -132,12 +153,10 @@
padding: 0;
}
`,
- })
-
-
- }
- }
-}
+ });
+ },
+ },
+};
</script>
-<style></style>
\ No newline at end of file
+<style></style>
--
Gitblit v1.9.1