From 03eca9cdec1d290be4be60d4d9d5038257b93586 Mon Sep 17 00:00:00 2001
From: xuxueyang <xuxy@fengyuntec.com>
Date: 星期六, 14 九月 2024 18:29:40 +0800
Subject: [PATCH] updat 合伙人

---
 sub_pages/supplier/print/print-list.vue |  345 ++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 265 insertions(+), 80 deletions(-)

diff --git a/sub_pages/supplier/print/print-list.vue b/sub_pages/supplier/print/print-list.vue
index d7351d4..c35c8dd 100644
--- a/sub_pages/supplier/print/print-list.vue
+++ b/sub_pages/supplier/print/print-list.vue
@@ -1,7 +1,7 @@
 <template>
 	<!-- 显示要打印的东西 -->
 	<view class="list-container order-delivery-print supplier">
-		<view class="p15">
+		<view class="p15" v-if="false">
 			<view class="m-b-24 order-sale-list list-container">
 				<view class="order-sale-item list-item">
 					<view class="title flex">
@@ -14,7 +14,11 @@
 						</image>
 						<view class="flex1">
 							<view class=" flex">
-								<view class="title">{{item.flowerName }}
+								<view class="title">
+									<span class="level"
+										v-if="item.flowerCategory">{{ item.flowerCategory || ''}}</span><span
+										class="level">{{ item.flowerLevelStr || ''}}</span>
+									{{item.flowerName }}
 								</view>
 							</view>
 							<view class="each-list ">
@@ -43,11 +47,11 @@
 					<view class="delivery-form">
 						<view class="form-item">
 							<view class="label">仓库名称</view>
-							<view class="value red">{{item.warehouseName}}</view>
+							<view class="value red">{{item.warehouseName||'待分配'}}</view>
 						</view>
 						<view class="form-item">
 							<view class="label">库位名称</view>
-							<view class="value red">{{item.warehouseLocationCode}}</view>
+							<view class="value red">{{item.warehouseLocationCode||'待分配'}}</view>
 						</view>
 
 					</view>
@@ -66,6 +70,7 @@
 
 		<view class="print-container m-t-12">
 			<button class="btn" type="primary" @click="startSearch" :loading="isScanning"> 开始搜索 </button>
+			<button class="btn m-t-12" type="default" @click="breakPrint=true"> 中断打印 </button>
 			<view v-for="(device,index) of list" :key="device.deviceId" @click="bindViewTap(device)">
 				<view class="item">
 					<div class="deviceId block">{{device.deviceId}}</div>
@@ -83,7 +88,8 @@
 	export default {
 		data() {
 			return {
-				item: {},
+				// item: {},
+				items: [],
 				services: [],
 				serviceId: 0,
 				writeCharacter: false,
@@ -114,6 +120,8 @@
 				notifyCharaterId: {},
 				notifyServiceId: '',
 				BserviceId: '',
+				buffs: [],
+				breakPrint: false
 			}
 		},
 		/**
@@ -139,23 +147,46 @@
 		async onLoad() {
 			var t = this.$storage.getItem('cache_delivery_order_print') || ''
 			if (t) {
-				this.item = JSON.parse(t)
+				this.items = JSON.parse(t)
+				var apitype = ''
+				// #ifdef PUB_SUPPLIER
+				apitype = '/supplier'
+				// #endif
+				// #ifdef PUB_PARTNER
+				// apitype = '/supplier'
+				// #endif
 				//获取详情接口
+				var ids = []
+				for (var item of this.items) {
+					ids.push(item.id)
+				}
 				this.$message.showLoading()
+				// const {
+				// 	code,
+				// 	data
+				// } = await this.$http.request('get', `/api${apitype}/delivery/list/items/view`, {
+				// 	params: {
+				// 		id: this.item.id,
+				// 		ids: ids
+				// 	}
+				// })
 				const {
 					code,
 					data
-				} = await this.$http.request('get', '/api/supplier/delivery/list/items/view', {
-					params: {
-						id: this.item.id
+				} = await this.$http.request('post', `/api${apitype}/delivery/list/items/views`, {
+					data: {
+						// id: this.item.id,
+						ids: ids
 					}
 				})
 				this.$message.hideLoading()
 				if (code == 0 && data) {
-					this.item = {
-						...this.item,
-						...data
-					}
+					// this.item = {
+					// 	...this.item,
+					// 	...data
+					// }
+					this.items = data || []
+					console.log('items len:', this.items.length)
 				}
 			} else {
 				this.$message.showToast('获取详情失败')
@@ -199,6 +230,12 @@
 									})
 								}
 							},
+							fail: function() {
+								wx.showModal({
+									title: '提示',
+									content: '蓝牙状态获取失败',
+								})
+							}
 						})
 					},
 					fail: function() {
@@ -221,13 +258,19 @@
 				} else if (platform == "android") {
 					// uni.getDeviceInfo().platform = "android"
 					console.log(uni.getDeviceInfo()) //这里是拿到安卓的系统版本名 如:Android 9
-					console.log('输出系统版本号', uni.getDeviceInfo().system.substring(uni.getDeviceInfo().system.length - (
-							uni.getDeviceInfo().system.length -
-							8), uni.getDeviceInfo().system.length - (uni.getDeviceInfo().system.length - 8) +
-						1)) //这里为了获取到系统的版本号,如 9
-					var systemVersion = uni.getDeviceInfo().system.substring(uni.getDeviceInfo().system.length - (uni
-						.getDeviceInfo().system.length -
-						8), uni.getDeviceInfo().system.length - (uni.getDeviceInfo().system.length - 8) + 1)
+					var systemVersion = 10
+					// try {
+					// 	var s = '' + (uni.getDeviceInfo().system || '')
+					// 	console.log('输出系统版本号', s.substring(s.length - (
+					// 			s.length -
+					// 			8), s.length - (s.length - 8) +
+					// 		1)) //这里为了获取到系统的版本号,如 9
+					// 	systemVersion = s.substring(s.length - (s.length -
+					// 		8), s.length - (s.length - 8) + 1)
+					// } catch (e) {
+					// 	that.$message.showToast('获取系统版本错误,版本号:' + s)
+					// 	systemVersion = 10
+					// }
 					if (systemVersion > 5) {
 						wx.getSetting({
 							success: function(res) {
@@ -237,14 +280,27 @@
 										scope: 'scope.userLocation',
 										complete: function(res) {
 											that.getBluetoothDevices()
-										}
+										},
+										fail: function(res) {
+											that.$message.showToast('获取蓝牙系统位置信息错误')
+
+										},
 									})
 								} else {
 									that.getBluetoothDevices()
 								}
-							}
+							},
+							fail: function(res) {
+								that.$message.showToast('获取系统设置错误' + (res || ''))
+
+							},
 						})
+					} else {
+						that.$message.showToast('获取系统版本过低,版本号:' + systemVersion)
+
 					}
+				} else {
+					that.$message.showToast('未知平台:' + (platform || '-'))
 				}
 			},
 
@@ -275,15 +331,23 @@
 										}
 									}
 									// 数据赋值 关闭刷新
-									that.list = devices
+									that.list = devices || []
 									that.isScanning = false
 
 									wx.hideLoading()
 									wx.stopPullDownRefresh()
 								},
+								fail(e) {
+									that.$message.showToast('获取蓝牙设备出错:' + (e || ''))
+
+								}
 							})
 						}, 3000) //到这里 都是三秒后执行的内容
 					},
+					fail(e) {
+						that.$message.showToast('扫描蓝牙报错:' + (e || ''))
+
+					}
 				})
 			},
 
@@ -291,6 +355,12 @@
 			 * 链接到某一个蓝牙设备上
 			 */
 			bindViewTap: function(device) {
+				if (this.isLabelSend) {
+					this.$message.showToast('正在打印中')
+					return
+				}
+				this.breakPrint = false
+
 				var that = this
 				wx.stopBluetoothDevicesDiscovery({ //关闭发现蓝牙设备
 					success: function(res) {
@@ -443,64 +513,138 @@
 					}
 				})
 			},
-			openControl() {
+			async openControl() {
 				//打印
-				var that = this;
+				// console.log('openControl start')
+				let that = this;
 
-				var command = tsc.jpPrinter.createNew()
-				command.setSize(48, 96)
-				command.setGap(0)
-				command.setCls()
-				// command.setText(0, 30, "TSS24.BF2", 1, 1, "图片")
-				// command.setQR(40, 120, "L", 5, "A", "www.smarnet.cc佳博智汇")
-				command.setText(60, 20, "TSS24.BF2", 1, 1, "单号:" + (that.item.orderNo || '-'))
-				if (that.item.warehouseName)
-					command.setText(10, 60, "TSS24.BF2", 1, 1, "仓库: " + that.item.warehouseName)
-				if (that.item.warehouseLocationCode)
-					command.setText(200, 60, "TSS24.BF2", 1, 1, "库位: " + that.item.warehouseLocationCode)
-
-				// command.setText(170, 50, "TSS24.BF2", 1, 1, "小程序测试")
-				// command.setText(170, 90, "TSS24.BF2", 1, 1, "测试数字12345678")
-				// command.setText(170, 120, "TSS24.BF2", 1, 1, "测试英文abcdefg")
-				// command.setText(170, 150, "TSS24.BF2", 1, 1, "测试符号/*-+!@#$")
-				command.setText(10, 100, "TSS24.BF2", 1, 1, "供应商: " + (that.item.supplierName || '-'))
-				command.setText(10, 140, "TSS24.BF2", 1, 1, "商品名称: " + (that.item.flowerName || '-'))
-				command.setText(10, 180, "TSS24.BF2", 1, 1, "等级: " + (that.item.flowerLevelStr || '-'))
-				command.setText(200, 180, "TSS24.BF2", 1, 1, "颜色: " + (that.item.flowerColor || '-'))
-				command.setText(10, 220, "TSS24.BF2", 1, 1, "价格: ¥ " + (that.item.price || '-'))
-				command.setText(200, 220, "TSS24.BF2", 1, 1, "数目: x " + (that.item.num || '0'))
-				command.setText(10, 260, "TSS24.BF2", 1, 1, "规格: " + (that.item.flowerUnit || '-'))
-				command.setText(10, 300, "TSS24.BF2", 1, 1, "花满芫")
-				command.setText(170, 300, "TSS24.BF2", 1, 1, that.$util.toDateMin(new Date()))
-				if (that.item.params) {
-					var addnum = 0
-					var hlen = 300
-					for (var p of that.item.params) {
-						if (p.value) {
-							var lef = 10
-							if (addnum % 2 == 1) {
-								lef = 190
-							} else {
-								lef = 10
-								hlen += 40
-							}
-							command.setText(lef, hlen, "TSS24.BF2", 1, 1, "" + (p.name || '') + ':' + p.value)
-							addnum += 1
-						}
-					}
+				var totalnum = 0
+				for (var each of that.items) {
+					totalnum += each.num || 1
 				}
-				// <view class="delivery-form" v-if="item.params">
-				// 	<view class="form-item" v-for="(p,k) of item.params" :key="k">
-				// 		<view class="label">{{p.name||'-'}}:</view>
-				// 		<view class="value red">{{p.value}}</view>
-				// 	</view>
-				// </view>
-				// command.setBar(170, 180, "EAN8", 64, 1, 3, 3, "1234567")
+				if (totalnum <= 0) {
+					that.$message.showToast('打印数目不能小于0')
+					return
+				}
+				if (totalnum > 3) {
+					await that.$message.confirm(`打印数目为${totalnum}张,确定打印吗`)
+				}
+				if (totalnum <= 0) {
+					that.$message.showToast('打印数目不能小于0')
+					return
+				}
+				that.buffs = []
 
-				command.setPagePrint()
+				for (var each of that.items) {
+					for (var i = 0; i < (each.num || 1); i++) {
+						var command = tsc.jpPrinter.createNew()
 
+						//根据数目不同,打印不同数目
+
+						command.setSize(48, 60)
+						command.setGap(0)
+						command.setCls()
+						// command.setText(0, 30, "TSS24.BF2", 1, 1, "图片")
+						// command.setQR(40, 120, "L", 5, "A", "www.smarnet.cc佳博智汇")
+						// command.setText(60, 20, "TSS24.BF2", 1, 1, "单号:" + (each.orderNo || '-'))
+						// 仓库:
+						// if (each.warehouseName)
+						var paramsmap = {}
+						if (each.params) {
+							for (var p of each.params) {
+								if (p.name !== '枝长' && p.name !== '成熟度') {
+									continue
+								}
+								paramsmap[p.name] = p.value || ''
+							}
+						}
+						command.setText(30, 40, "TSS24.BF2", 1, 1, "" + (each.supplierName || '-'))
+						command.setText(200, 40, "TSS24.BF2", 1, 1, "" + (each.warehouseName || '待分配'))
+						var flowerCategory = each.flowerCategory
+						if (flowerCategory) {
+							//只取二级分类
+							var tarr = flowerCategory.split("/")
+							if (tarr.length >= 2) {
+								flowerCategory = tarr[tarr.length - 1]
+							}
+						}
+						command.setText(30, 80, "TSS24.BF2", 1, 1, "" + (flowerCategory || ''))
+						command.setText(200, 80, "TSS24.BF2", 1, 1, "库位:" + (each.warehouseLocationCode || ''))
+
+						command.setText(30, 120, "TSS24.BF2", 1, 1, "等级:" + (each.flowerLevelStr || ''))
+						command.setText(200, 120, "TSS24.BF2", 1, 1, "" + (each.flowerColor || ''))
+						// 规格: 
+						command.setText(30, 160, "TSS24.BF2", 1, 1, "" + (each.flowerUnit || '-'))
+						// 成熟度: 
+						command.setText(200, 160, "TSS24.BF2", 1, 1, "" + (paramsmap['成熟度'] || '-'))
+						// 枝长: 
+						command.setText(30, 200, "TSS24.BF2", 1, 1, "" + (paramsmap['枝长'] || '-'))
+						command.setText(200, 200, "TSS24.BF2", 1, 1, that.$util.toDate(new Date()))
+
+						command.setText(60, 230, "TSS24.BF2", 1, 1, "————————————")
+
+						command.setText(30, 260, "TSS24.BF2", 1, 1, "花满芫")
+						command.setText(200, 260, "TSS24.BF2", 1, 1, `数目: ${i+1}/${each.num||1}`)
+
+						// command.setText(20, 40, "TSS24.BF2", 1, 1, "" + (that.item.warehouseName || '待分配'))
+						// // 库位: 
+						// // if (that.item.warehouseLocationCode)
+						// command.setText(200, 40, "TSS24.BF2", 1, 1, "" + (that.item.warehouseLocationCode || '待分配'))
+
+						// // command.setText(170, 50, "TSS24.BF2", 1, 1, "小程序测试")
+						// // command.setText(170, 90, "TSS24.BF2", 1, 1, "测试数字12345678")
+						// // command.setText(170, 120, "TSS24.BF2", 1, 1, "测试英文abcdefg")
+						// // command.setText(170, 150, "TSS24.BF2", 1, 1, "测试符号/*-+!@#$")
+
+						// // 供应商: 
+						// command.setText(20, 80, "TSS24.BF2", 1, 1, "" + (that.item.supplierName || '-'))
+						// // 商品名称: 
+						// command.setText(20, 120, "TSS24.BF2", 1, 1, "" + (that.item.flowerName || '-'))
+						// // 颜色: 
+						// command.setText(200, 120, "TSS24.BF2", 1, 1, "" + (that.item.flowerColor || '-'))
+						// // command.setText(10, 220, "TSS24.BF2", 1, 1, "价格: ¥ " + (that.item.price || '-'))
+						// command.setText(20, 160, "TSS24.BF2", 1, 1, "规格: " + (that.item.flowerUnit || '-'))
+						// command.setText(200, 160, "TSS24.BF2", 1, 1, `数目: ${i+1}/${that.item.num}`)
+						// // command.setText(10, 300, "TSS24.BF2", 1, 1, "花满芫")
+						// command.setText(100, 200, "TSS24.BF2", 1, 1, that.$util.toDateMin(new Date()))
+						// if (that.item.params) {
+						// 	var addnum = 0
+						// 	var hlen = 200
+						// 	for (var p of that.item.params) {
+						// 		if (p.name !== '枝长' && p.name !== '成熟度') {
+						// 			continue
+						// 		}
+						// 		if (p.value) {
+						// 			var lef = 20
+						// 			if (addnum % 2 == 1) {
+						// 				lef = 190
+						// 			} else {
+						// 				lef = 20
+						// 				hlen += 40
+						// 			}
+						// 			command.setText(lef, hlen, "TSS24.BF2", 1, 1, "" + (p.name || '') + ':' + p.value)
+						// 			addnum += 1
+						// 		}
+						// 	}
+						// }
+						// <view class="delivery-form" v-if="item.params">
+						// 	<view class="form-item" v-for="(p,k) of item.params" :key="k">
+						// 		<view class="label">{{p.name||'-'}}:</view>
+						// 		<view class="value red">{{p.value}}</view>
+						// 	</view>
+						// </view>
+						// command.setBar(170, 180, "EAN8", 64, 1, 3, 3, "1234567")
+
+						command.setPagePrint()
+						// console.log('that.buffs', that.buffs.length)
+						that.buffs.push(command.getData())
+					}
+
+				}
 				that.isLabelSend = true
-				that.prepareSend(command.getData())
+				// that.prepareSend(command.getData())
+
+				that.prepareSend(that.buffs[0])
 
 				// wx.canvasGetImageData({
 				//   canvasId: 'edit_area_canvas',
@@ -559,10 +703,13 @@
 					characteristicId: that.writeCharaterId,
 					value: buf,
 					success: function(res) {
-						console.log(res)
+						// console.log(res)
 					},
 					fail: function(e) {
 						console.log(e)
+						// wx.showToast({
+						// 	title: '打印失败:' + e,
+						// })
 					},
 					complete: function() {
 						currentTime++
@@ -574,22 +721,44 @@
 							wx.showToast({
 								title: '已打印第' + currentPrint + '张',
 							})
-							if (currentPrint == printNum) {
+							if (currentPrint == that.buffs.length || that.breakPrint) {
+								if (that.breakPrint) {
+									wx.showToast({
+										title: '中断成功',
+									})
+									that.breakPrint = false
+								}
 								that.looptime = 0
 								that.lastData = 0
 								that.currentTime = 1
 								that.isReceiptSend = false
 								that.isLabelSend = false
 								that.currentPrint = 1
+								try {
+									wx.closeBLEConnection({
+										deviceId: that.deviceId,
+										success: function(res) {
+											console.log("关闭蓝牙成功")
+										},
+									})
+								} catch (e) {
 
+								}
 							} else {
 								currentPrint++
-
 								that.currentPrint = currentPrint
 								that.currentTime = 1
-
-								that.Send(buff)
+								that.Send(that.buffs[that.currentPrint - 1])
 							}
+
+							// } else {
+							// 	currentPrint++
+
+							// 	that.currentPrint = currentPrint
+							// 	that.currentTime = 1
+
+							// 	that.Send(buff)
+							// }
 						}
 					}
 				})
@@ -688,6 +857,14 @@
 					font-size: 28rpx;
 					color: #000000;
 					line-height: 40rpx;
+
+					.level {
+						font-weight: 400;
+						font-size: 28rpx;
+						color: #20613D;
+						line-height: 40rpx;
+						margin-right: 20rpx;
+					}
 				}
 
 				.status {
@@ -717,6 +894,14 @@
 						font-size: 28rpx;
 						color: #000000;
 						line-height: 40rpx;
+
+						.level {
+							font-weight: 400;
+							font-size: 28rpx;
+							color: #20613D;
+							line-height: 40rpx;
+							margin-right: 20rpx;
+						}
 					}
 
 					.desc {}

--
Gitblit v1.9.3