From 85693d40e9868172b36c77876410abb13dbc7273 Mon Sep 17 00:00:00 2001
From: chenhaozhe <cgz@hz-kingdee.com>
Date: 星期二, 15 七月 2025 11:24:43 +0800
Subject: [PATCH] 蓝牙打印机组件 添加 批量打印功能, 完成 采购订单生成条码 打印
---
components/labelPrinterComponent/labelPrinterComponent.vue | 116 +++++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 82 insertions(+), 34 deletions(-)
diff --git a/components/labelPrinterComponent/labelPrinterComponent.vue b/components/labelPrinterComponent/labelPrinterComponent.vue
index f8333ba..86f6279 100644
--- a/components/labelPrinterComponent/labelPrinterComponent.vue
+++ b/components/labelPrinterComponent/labelPrinterComponent.vue
@@ -28,6 +28,9 @@
import {
CStatus
} from '@psdk/cpcl';
+ import {
+ CommonUtils
+ } from '../../utils/common';
export default {
name: "lablePrinterComponent",
@@ -60,6 +63,45 @@
popupCloseHandler() {
},
+ async batchPrint(commandList) {
+ let vm = this;
+ let binarys = [];
+ for (let command of commandList) {
+ switch (vm.printMode) {
+ case "tspl":
+ let tspl = await vm.$printer.tspl().clear();
+ tspl.raw(Raw.text(command))
+ console.log("print command锛歕n" + tspl.command().string())
+ binarys.push(tspl.command().binary());
+ break;
+ case "cpcl":
+ let cpcl = await vm.$printer.cpcl().clear();
+ cpcl.raw(Raw.text(command))
+ console.log("print command锛歕n" + cpcl.command().string())
+ binarys.push(cpcl.command().binary());
+ break;
+ case "esc":
+ let esc = await vm.$printer.esc().clear();
+ esc.raw(Raw.text(command))
+ console.log("print command锛歕n" + esc.command().string())
+ binarys.push(esc.command().binary());
+ break;
+ default:
+ return uni.showToast({
+ icon: 'none',
+ title: 'printMode绫诲瀷閿欒!'
+ })
+ }
+ }
+
+ for(let binary of binarys){
+ let sendSuccess = await this.blueToothConnector.sendMessage(binary);
+ console.log("鍙戦�佹槸鍚︽垚鍔燂細 ", sendSuccess)
+ if(sendSuccess === false) {
+ return
+ }
+ }
+ },
async execPrint() {
// 妫�鏌ヨ摑鐗欒繛鎺�
let btStatus = bluetoothTool.getBluetoothStatus()
@@ -74,48 +116,54 @@
this.showToast("鏃犺澶囪繛鎺�!")
return
}
-
+
try {
if (typeof this.printInfo === 'function') {
// 浼犲叆鐨刾rintInfo鏄嚱鏁帮紝鐩存帴鎵ц
let msg = await this.printInfo()
-
-
this.blueToothConnector.sendMessage(msg)
} else if (typeof this.printInfo === 'string') {
// 浼犲叆鐨勫弬鏁版槸瀛楃涓诧紝鍒欐牴鎹墦鍗版ā寮忚皟鐢ㄤ笉鍚岀殑鎵撳嵃API
// 杩欓噷鐨勫瓧绗︿覆闇�瑕佸搴旀墦鍗版ā寮�
-
- let printStr = this.printInfo.replace(/\n/g, "\r\n")
- let vm = this;
- let binary = null;
- switch (vm.printMode) {
- case "tspl":
- const tspl = await vm.$printer.tspl().clear();
- tspl.raw(Raw.text(printStr))
- console.log("print command锛歕n" + tspl.command().string())
- binary = tspl.command().binary();
- await vm.blueToothConnector.sendMessage(binary);
- break;
- case "cpcl":
- const cpcl = await vm.$printer.cpcl().clear();
- cpcl.raw(Raw.text(printStr))
- console.log("print command锛歕n" + cpcl.command().string())
- binary = cpcl.command().binary();
- await vm.blueToothConnector.sendMessage(binary);
- break;
- case "esc":
- const esc = await vm.$printer.esc().clear();
- esc.raw(Raw.text(printStr))
- console.log("print command锛歕n" + esc.command().string())
- binary = esc.command().binary();
- await vm.blueToothConnector.sendMessage(binary);
- break;
- default:
- return uni.showToast({
- icon: 'none',
- title: 'printMode绫诲瀷閿欒!'
- })
+ if (CommonUtils.isJson(this.printInfo) === true) {
+ // 濡傛灉闇�瑕佹壒閲忎紶杈擄紝闇�瑕佷紶JSON
+ let commandList = JSON.parse(this.printInfo)
+ for (let command of commandList) {
+ command.replace(/\n/g, "\r\n")
+ }
+ this.batchPrint(commandList)
+ } else {
+ let printStr = this.printInfo.replace(/\n/g, "\r\n")
+ let vm = this;
+ let binary = null;
+ switch (vm.printMode) {
+ case "tspl":
+ const tspl = await vm.$printer.tspl().clear();
+ tspl.raw(Raw.text(printStr))
+ console.log("print command锛歕n" + tspl.command().string())
+ binary = tspl.command().binary();
+ await vm.blueToothConnector.sendMessage(binary);
+ break;
+ case "cpcl":
+ const cpcl = await vm.$printer.cpcl().clear();
+ cpcl.raw(Raw.text(printStr))
+ console.log("print command锛歕n" + cpcl.command().string())
+ binary = cpcl.command().binary();
+ await vm.blueToothConnector.sendMessage(binary);
+ break;
+ case "esc":
+ const esc = await vm.$printer.esc().clear();
+ esc.raw(Raw.text(printStr))
+ console.log("print command锛歕n" + esc.command().string())
+ binary = esc.command().binary();
+ await vm.blueToothConnector.sendMessage(binary);
+ break;
+ default:
+ return uni.showToast({
+ icon: 'none',
+ title: 'printMode绫诲瀷閿欒!'
+ })
+ }
}
} else {
uni.showToast({
--
Gitblit v1.9.1