From d18a571aa4dacab6928dbc8c6c45d5aa3f291afb Mon Sep 17 00:00:00 2001 From: xuxueyang <xuxy@fengyuntec.com> Date: 星期三, 31 七月 2024 23:34:01 +0800 Subject: [PATCH] update --- sub_pages/supplier/print/print-list.vue | 323 ++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 219 insertions(+), 104 deletions(-) diff --git a/sub_pages/supplier/print/print-list.vue b/sub_pages/supplier/print/print-list.vue index 4fa77ed..2bebd11 100644 --- a/sub_pages/supplier/print/print-list.vue +++ b/sub_pages/supplier/print/print-list.vue @@ -17,23 +17,23 @@ <view class="title">{{item.flowerName }} </view> </view> - <view class="each-list flex"> - <view class="each-item"> + <view class="each-list "> + <view class="each-item flex1 flex"> <view class="label">颜色</view> <view class="value">{{ item.flowerColor || '-' }}</view> </view> - <view class="each-item"> + <view class="each-item flex1 flex"> <view class="label">规格</view> <view class="value">{{ item.flowerUnit || '-' }}</view> </view> </view> </view> <view class="each-list price"> - <view class="each-item"> + <view class="each-item flex1"> <view class="value">¥{{ item.price || '-' }}</view> </view> - <view class="each-item"> + <view class="each-item flex1"> <view class="value">x {{ item.num || 0 }}</view> </view> </view> @@ -51,6 +51,15 @@ </view> </view> + <!-- 罗列详细参数 --> + <view class="line" v-if="item.params"></view> + <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> + </view> </view> </view> @@ -69,6 +78,7 @@ <script> var tsc = require("@/plugins/tsc.js"); + // var app = uni.getApp() export default { data() { @@ -80,6 +90,7 @@ readCharacter: false, notifyCharacter: false, isScanning: false, + deviceId: '', //打印的 sendContent: "", looptime: 0, @@ -96,13 +107,71 @@ printerNum: 1, currentPrint: 1, isReceiptSend: false, - isLabelSend: false + isLabelSend: false, + //写入的 + writeServiceId: '', + writeCharaterId: '', + notifyCharaterId: {}, + notifyServiceId: '', + BserviceId: '', } }, - onLoad() { + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function() { + var list = [] + var numList = [] + var j = 0 + for (var i = 20; i < 200; i += 10) { + list[j] = i; + j++ + } + for (var i = 1; i < 10; i++) { + numList[i - 1] = i + } + let that = this + that.buffSize = list + that.oneTimeData = list[0] + that.printNum = numList + that.printerNum = numList[0] + }, + async onLoad() { var t = this.$storage.getItem('cache_delivery_order_print') || '' - if (t) + if (t) { this.item = JSON.parse(t) + //获取详情接口 + this.$message.showLoading() + const { + code, + data + } = await this.$http.request('get', '/api/supplier/delivery/list/items/view', { + params: { + id: this.item.id + } + }) + this.$message.hideLoading() + if (code == 0 && data) { + this.item = { + ...this.item, + ...data + } + } + } else { + this.$message.showToast('获取详情失败') + } + }, + onUnload() { + try { + wx.closeBLEConnection({ + deviceId: that.deviceId, + success: function(res) { + console.log("关闭蓝牙成功") + }, + }) + } catch (e) { + + } }, methods: { /** @@ -145,17 +214,20 @@ */ checkPemission: function() { //android 6.0以上需授权地理位置权限 var that = this - var platform = app.BLEInformation.platform + var platform = uni.getDeviceInfo().platform if (platform == "ios") { - app.globalData.platform = "ios" + // uni.getDeviceInfo().platform = "ios" that.getBluetoothDevices() } else if (platform == "android") { - app.globalData.platform = "android" - console.log(app.getSystem()) //这里是拿到安卓的系统版本名 如:Android 9 - console.log('输出系统版本号', app.getSystem().substring(app.getSystem().length - (app.getSystem().length - - 8), app.getSystem().length - (app.getSystem().length - 8) + 1)) //这里为了获取到系统的版本号,如 9 - var systemVersion = app.getSystem().substring(app.getSystem().length - (app.getSystem().length - - 8), app.getSystem().length - (app.getSystem().length - 8) + 1) + // 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) if (systemVersion > 5) { wx.getSetting({ success: function(res) { @@ -185,9 +257,7 @@ wx.showLoading({ title: '获取蓝牙设备中', }) - that.setData({ - isScanning: true - }) + that.isScanning = true wx.startBluetoothDevicesDiscovery({ success: function(res) { console.log(res) //输出蓝牙设备列表查找的结果,是否成功 @@ -204,10 +274,10 @@ num++ } } - that.setData({ - list: devices, - isScanning: false - }) // 数据赋值 关闭刷新 + // 数据赋值 关闭刷新 + that.list = devices + that.isScanning = false + wx.hideLoading() wx.stopPullDownRefresh() }, @@ -227,23 +297,23 @@ console.log(res) }, }) - that.setData({ - serviceId: 0, - writeCharacter: false, - readCharacter: false, - notifyCharacter: false - }) - console.log("e", e) + + that.serviceId = 0 + that.writeCharacter = false + that.readCharacter = false + that.notifyCharacter = false + + console.log("e", device) // console.log(e.currentTarget.dataset.title) wx.showLoading({ title: '正在建立连接', }) // 与蓝牙设备建立链接 wx.createBLEConnection({ - deviceId: e.deviceId, + deviceId: device.deviceId, success: function(res) { console.log('连接蓝牙设备成功', res) - app.BLEInformation.deviceId = e.deviceId + that.deviceId = device.deviceId that.getSeviceId() //获取服务ID }, fail: function(e) { @@ -262,10 +332,11 @@ getSeviceId: function() { var that = this - var platform = app.BLEInformation.platform //获取平台信息 - console.log(app.BLEInformation.deviceId) // 获取设备ID + var platform = uni.getDeviceInfo().platform //获取平台信息 + console.log(that.deviceId) // 获取设备ID + console.log('info getSeviceId', uni.getDeviceInfo()) wx.getBLEDeviceServices({ - deviceId: app.BLEInformation.deviceId, + deviceId: that.deviceId, success: function(res) { console.log(res) // 注释内容为方便调试特意直接赋值的一些信息,可以跳过 @@ -287,10 +358,9 @@ // } // } } - app.BLEInformation.serviceId = realId - that.setData({ - services: res.services - }) //将服务信息赋值到公共数据缓存 + that.BserviceId = realId + that.services = res.services + that.getCharacteristics() //获取特征 }, fail: function(e) { @@ -307,13 +377,13 @@ */ getCharacteristics: function() { var that = this - var list = that.data.services - var num = that.data.serviceId - var write = that.data.writeCharacter - var read = that.data.readCharacter - var notify = that.data.notifyCharacter + var list = that.services + var num = that.serviceId + var write = that.writeCharacter + var read = that.readCharacter + var notify = that.notifyCharacter wx.getBLEDeviceCharacteristics({ //获取蓝牙设备的特征信息 - deviceId: app.BLEInformation.deviceId, + deviceId: that.deviceId, serviceId: list[num].uuid, success: function(res) { console.log('获取特征成功的结果', res) @@ -322,34 +392,35 @@ var item = res.characteristics[i].uuid if (!notify) { if (properties.notify) { - app.BLEInformation.notifyCharaterId = item - app.BLEInformation.notifyServiceId = list[num].uuid + that.notifyCharaterId = item + that.notifyServiceId = list[num].uuid notify = true } } if (!write) { if (properties.write) { - app.BLEInformation.writeCharaterId = item - app.BLEInformation.writeServiceId = list[num].uuid + that.writeCharaterId = item + that.writeServiceId = list[num].uuid write = true } } if (!read) { if (properties.read) { - app.BLEInformation.readCharaterId = item - app.BLEInformation.readServiceId = list[num].uuid + that.readCharaterId = item + that.readServiceId = list[num].uuid read = true } } } if (!write || !notify || !read) { num++ - that.setData({ - writeCharacter: write, - readCharacter: read, - notifyCharacter: notify, - serviceId: num - }) + + that.writeCharacter = write + that.readCharacter = read + that.notifyCharacter = notify + that.serviceId = num + + if (num == list.length) { wx.showModal({ title: '提示', @@ -366,34 +437,69 @@ console.log(e) }, complete: function(e) { - console.log("write:" + app.BLEInformation.writeCharaterId) - console.log("read:" + app.BLEInformation.readCharaterId) - console.log("notify:" + app.BLEInformation.notifyCharaterId) + console.log("write:" + that.writeCharaterId) + console.log("read:" + that.readCharaterId) + console.log("notify:" + that.notifyCharaterId) } }) }, openControl() { //打印 var that = this; - // var canvasWidth = that.data.canvasWidth - // var canvasHeight = that.data.canvasHeight + var command = tsc.jpPrinter.createNew() - command.setSize(48, 40) + 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, 90, "TSS24.BF2", 1, 1, "佳博智汇") - 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.setBar(170, 180, "EAN8", 64, 1, 3, 3, "1234567") + // 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(20, 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(20, 100, "TSS24.BF2", 1, 1, "供应商: " + (that.item.supplierName || '-')) + command.setText(20, 140, "TSS24.BF2", 1, 1, "商品名称: " + (that.item.flowerName || '-')) + command.setText(20, 180, "TSS24.BF2", 1, 1, "等级: " + (that.item.flowerLevelStr || '-')) + command.setText(200, 180, "TSS24.BF2", 1, 1, "颜色: " + (that.item.flowerColor || '-')) + command.setText(20, 220, "TSS24.BF2", 1, 1, "价格: ¥ " + (that.item.price || '-')) + command.setText(200, 220, "TSS24.BF2", 1, 1, "数目: x " + (that.item.num || '0')) + command.setText(20, 260, "TSS24.BF2", 1, 1, "规格: " + (that.item.flowerUnit || '-')) + command.setText(20, 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 = 20 + if (addnum % 2 == 1) { + lef = 200 + } 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() - that.setData({ - isLabelSend: true - }) + + that.isLabelSend = true that.prepareSend(command.getData()) // wx.canvasGetImageData({ @@ -413,25 +519,24 @@ prepareSend: function(buff) { //准备发送,根据每次发送字节数来处理分包数量 console.log(buff) var that = this - var time = that.data.oneTimeData + var time = that.oneTimeData var looptime = parseInt(buff.length / time); var lastData = parseInt(buff.length % time); console.log(looptime + "---" + lastData) - that.setData({ - looptime: looptime + 1, - lastData: lastData, - currentTime: 1, - }) + + that.looptime = looptime + 1 + that.lastData = lastData + that.currentTime = 1 that.Send(buff) }, Send: function(buff) { //分包发送 var that = this - var currentTime = that.data.currentTime - var loopTime = that.data.looptime - var lastData = that.data.lastData - var onTimeData = that.data.oneTimeData - var printNum = that.data.printerNum - var currentPrint = that.data.currentPrint + var currentTime = that.currentTime + var loopTime = that.looptime + var lastData = that.lastData + var onTimeData = that.oneTimeData + var printNum = that.printerNum + var currentPrint = that.currentPrint var buf var dataView if (currentTime < loopTime) { @@ -449,9 +554,9 @@ } console.log("第" + currentTime + "次发送数据大小为:" + buf.byteLength) wx.writeBLECharacteristicValue({ - deviceId: app.BLEInformation.deviceId, - serviceId: app.BLEInformation.writeServiceId, - characteristicId: app.BLEInformation.writeCharaterId, + deviceId: that.deviceId, + serviceId: that.writeServiceId, + characteristicId: that.writeCharaterId, value: buf, success: function(res) { console.log(res) @@ -462,29 +567,27 @@ complete: function() { currentTime++ if (currentTime <= loopTime) { - that.setData({ - currentTime: currentTime - }) + that.currentTime = currentTime + that.Send(buff) } else { wx.showToast({ title: '已打印第' + currentPrint + '张', }) if (currentPrint == printNum) { - that.setData({ - looptime: 0, - lastData: 0, - currentTime: 1, - isReceiptSend: false, - isLabelSend: false, - currentPrint: 1 - }) + that.looptime = 0 + that.lastData = 0 + that.currentTime = 1 + that.isReceiptSend = false + that.isLabelSend = false + that.currentPrint = 1 + } else { currentPrint++ - that.setData({ - currentPrint: currentPrint, - currentTime: 1, - }) + + that.currentPrint = currentPrint + that.currentTime = 1 + that.Send(buff) } } @@ -538,6 +641,18 @@ margin-bottom: 20rpx; padding: 22rpx; + .each-item { + .label { + min-width: 120rpx; + + } + + .label:after { + content: ":"; + margin-right: 10rpx; + } + } + .buttons { display: flex; margin-left: auto; -- Gitblit v1.9.3