diff --git a/components/print/index.js b/components/print/index.js index 58783e6..68e4beb 100644 --- a/components/print/index.js +++ b/components/print/index.js @@ -23,7 +23,7 @@ export default { success: function(res) { if (res.data.code == 200) { data1 = res.data.result - console.log('打印的数据----------',data1) + console.log('打印的数据----------', data1) that.bindViewTap(id, false, onDone) } else { uni.showToast({ @@ -41,6 +41,7 @@ export default { } }) } else { + if(uni.getStorageSync('peisongyuan')) return; uni.showModal({ title: '提示', content: '您还没有连接打印机,将无法为您打印小票!', @@ -107,79 +108,86 @@ export default { data1.deliveryType == 1 && data1.orderType == 3 ? data1.deliveryInfo.numberCode : data1.numberCode ); printerJobs.setAlign('ct').setSize(2, 2).setLineSpacing(60).print( - (data1.deliveryInfo && data1.deliveryInfo.appointmentDelivery == 1 && data1.status != 7 && data1.status == 11)? '预约单': - (data1.status == 7 || data1.status == 11)? '申请退款': - (data1.deliveryType == 1 && data1.orderType == 3) ? '面对面配送': - (data1.status == 3 && data1.deliveryType == 2 && data1.userRequireMake != 1)? '待消费': - data1.status == 5? '已完成': - data1.status == 6? '已取消': - data1.status == 8? '已退款': - data1.status == 12? '已售后': - data1.isPack == 0 && data1.otherOrder == null ? '到店-堂食': - data1.deliveryType == 1 && data1.isPack == 1 ? '配送': - data1.isPack == 1 && data1.otherOrder == null ? '到店-打包': '' - + (data1.deliveryInfo && data1.deliveryInfo.appointmentDelivery == 1 && data1.status != 7 && data1 + .status == 11) ? '预约单' : + (data1.status == 7 || data1.status == 11) ? '申请退款' : + (data1.deliveryType == 1 && data1.orderType == 3) ? '面对面配送' : + (data1.status == 3 && data1.deliveryType == 2 && data1.userRequireMake != 1) ? '待消费' : + data1.status == 5 ? '已完成' : + data1.status == 6 ? '已取消' : + data1.status == 8 ? '已退款' : + data1.status == 12 ? '已售后' : + data1.isPack == 0 && data1.otherOrder == null ? '到店-堂食' : + data1.deliveryType == 1 && data1.isPack == 1 ? '配送' : + data1.isPack == 1 && data1.otherOrder == null ? '到店-打包' : '' + ); - if(data1.deliveryInfo && data1.deliveryInfo.appointmentDelivery == 1){ + if (data1.deliveryInfo && data1.deliveryInfo.appointmentDelivery == 1) { printerJobs.setAlign('lt').print( - '要求送达时间:' + (data1.deliveryInfo == null ? ' ' : this.formatTime(data1.deliveryInfo.mustFinishTime)) + '要求送达时间:' + (data1.deliveryInfo == null ? ' ' : this.formatTime(data1.deliveryInfo + .mustFinishTime)) ); } printerJobs.setSize(1, 1).setLineSpacing(40); - printerJobs.setAlign('lt').print(data1.shopName + ((data1.deliveryType == 1 && data1.orderType == 3)? '('+data1.numberCode + ')':'')); - + printerJobs.setAlign('lt').print(data1.shopName + ((data1.deliveryType == 1 && data1.orderType == 3) ? '(' + + data1.numberCode + ')' : '')); + printerJobs.setAlign('lt').print( '下单时间:' + this.formatTime(data1.createTime) ); - if(data1.mallRefundRecord == null){ - if(data1.deliveryType == 1){ + if (data1.mallRefundRecord == null) { + if (data1.deliveryType == 1) { printerJobs.setAlign('lt').print( - '预计送达时间:' + (data1.deliveryInfo == null ? ' ' : this.formatTime(data1.deliveryInfo.mustFinishTime)) + '预计送达时间:' + (data1.deliveryInfo == null ? ' ' : this.formatTime(data1.deliveryInfo + .mustFinishTime)) ); - }else if(data1.userRequireMake == 1){ + } else if (data1.userRequireMake == 1) { printerJobs.setAlign('lt').print( '核销时间:' + this.formatTime(data1.createTime) ); } } - if(data1.mallRefundRecord != null){ - if(data1.userRequireMake == 1 && data1.deliveryType == 2){ + if (data1.mallRefundRecord != null) { + if (data1.userRequireMake == 1 && data1.deliveryType == 2) { printerJobs.setAlign('lt').print( '核销时间:' + this.formatTime(data1.createTime) ); } printerJobs.setAlign('lt').print( - '申请退款时间:' + (data1.mallRefundRecord == null ? ' ' : this.formatTime(data1.mallRefundRecord[0].createTime)) + '申请退款时间:' + (data1.mallRefundRecord == null ? ' ' : this.formatTime(data1.mallRefundRecord[0] + .createTime)) ); - + } printerJobs.print(printerUtil.fillLine('-', 1, 32)); - if(data1.deliveryType == 1 && data1.status != 7 && data1.status != 11 && data1.status != 5 && data1.status != 6 && data1.status != 8 && data1.status != 12){ + if (data1.deliveryType == 1 && data1.status != 7 && data1.status != 11 && data1.status != 5 && data1 + .status != 6 && data1.status != 8 && data1.status != 12) { printerJobs.setAlign('lt').setSize(2, 2).setLineSpacing(60).print( - data1.receiverName == null ? ' ' : data1.receiverName + data1.deliveryInfo == null ? ' ' : data1.deliveryInfo.receiverName ); } printerJobs.setSize(1, 1).setLineSpacing(40); printerJobs.setAlign('lt').print('联系电话: ' + this.maskPhoneLastFour(data1.receiverPhone)); - if(data1.deliveryType == 1 && data1.status != 7 && data1.status != 11 && data1.status != 5 && data1.status != 6 && data1.status != 8 && data1.status != 12){ + if (data1.deliveryType == 1 && data1.status != 7 && data1.status != 11 && data1.status != 5 && data1 + .status != 6 && data1.status != 8 && data1.status != 12) { printerJobs.setAlign('lt').setSize(2, 2).setLineSpacing(60).print( - '地址:' + (data1.receiverAddress == null ? ' ' : data1.receiverAddress) + '地址:' + (data1.deliveryInfo == null ? ' ' : data1.deliveryInfo.receiverAddress) ); } printerJobs.setSize(1, 1).setLineSpacing(40); printerJobs.setAlign('lt').print('顾客电话已被隐藏,您可登录商家端或骑手端查看'); printerJobs.print(printerUtil.fillLine('-', 1, 32)); for (var i = 0; i < data1.goodsList.length; i++) { - if(i != 0){ + if (i != 0) { printerJobs.setSize(1, 1).print(" "); } var productName = this.removeEmojis(data1.goodsList[i].productName) printerJobs.setAlign('lt').setSize(2, 2).print(productName); - + if (data1.goodsList[i].specs.indexOf(',') != -1) { printerJobs.setSize(1, 1).setLineSpacing(10).print(' '); printerJobs.setSize(1, 1).print(this.delNode(data1.goodsList[i].specs)); - + } printerJobs.setSize(1, 1).setLineSpacing(10).print(' '); printerJobs.setAlign('lt').setSize(2, 2) @@ -189,27 +197,29 @@ export default { } printerJobs.setLineSpacing(30).setSize(1, 1).print(printerUtil.fillLine('-', 1, 32)); printerJobs.setAlign('lt').print('配 送 费:' + data1.deliveryFee); - if(data1.packageFee > 0){ + if (data1.packageFee > 0) { printerJobs.print('打 包 费:' + data1.packageFee); } printerJobs.print('商品金额:' + data1.goodsAmount); - if(data1.userCoupon && data1.userCoupon.length >0){ + if (data1.userCoupon && data1.userCoupon.length > 0) { printerJobs.print('优 惠 券:-' + data1.userCoupon[0].discountAmount); } - if(data1.freeAmount > 0){ + if (data1.freeAmount > 0) { printerJobs.print('锦鲤免单:-' + data1.freeAmount); } printerJobs.print('合计金额:' + ((data1.goodsAmount + data1.deliveryFee + data1.packageFee).toFixed(2))); - if(data1.mallRefundRecord != null){ + if (data1.mallRefundRecord != null) { printerJobs.print('应退金额:' + data1.totalAmount); - }else{ + } else { printerJobs.print('实付金额:' + data1.totalAmount); } printerJobs.setSize(2, 2).print('备注:' + data1.remark); printerJobs.lineFeed(1); - if(data1.mallRefundRecord != null){ + if (data1.mallRefundRecord != null) { printerJobs.setAlign('lt').setLineSpacing(30).print( - '退款原因:' + (data1.mallRefundRecord == null ? ' ' : data1.mallRefundRecord[0].reason) + '退款原因:' + (data1.mallRefundRecord == null ? ' ' : this.getCancelReasonDescription(data1.mallRefundRecord[0].reason) + ' ' + this + .getRefundTypeText(data1.mallRefundRecord[0]) + '|' + this.getRefundReasonTypeText(data1 + .mallRefundRecord[0])) ); } printerJobs.setSize(1, 1).setLineSpacing(30).print(printerUtil.fillLine('-', 1, 32)); @@ -218,6 +228,39 @@ export default { let buffer = printerJobs.buffer(); this.sendPrint(buffer, onDone); }, + getCancelReasonDescription(reason) { + // 处理空值和null + if (reason == null || reason === '') { + return ''; + } + + // 尝试查找中文冒号(:) + const chineseColonIndex = reason.indexOf(':'); + + // 确定实际存在的冒号位置(取第一个出现的冒号) + let colonIndex = -1; + if (chineseColonIndex !== -1) { + colonIndex = chineseColonIndex; + } else if (englishColonIndex !== -1) { + colonIndex = englishColonIndex; + } + return colonIndex !== -1 ? reason.substring(colonIndex +1) : ''; + }, + getRefundTypeText(item) { + if (!item) return ''; + if (item.refundType == 1) return '退商品'; + if (item.refundType == 2) return '退配送费'; + return '全额退款'; + }, + getRefundReasonTypeText(item) { + if (!item) return ''; + if (item.refundTypeStatus == 1) return '商家原因'; + if (item.refundTypeStatus == 2) return '配送员原因'; + if (item.refundTypeStatus == 3) { + return item.linkId && String(item.linkId).indexOf('W') != -1 ? '配送员原因' : '商家原因'; + } + return '平台退款'; + }, // 去除字符串中的 Emoji 表情 removeEmojis(str) { if (!str) return ''; diff --git a/components/tab-bar/myCenter.vue b/components/tab-bar/myCenter.vue index 785973d..5a61f92 100644 --- a/components/tab-bar/myCenter.vue +++ b/components/tab-bar/myCenter.vue @@ -57,7 +57,7 @@ --> - +