From f2f5bac39e2f0a2dc2074503bc691d3cea9ab8c8 Mon Sep 17 00:00:00 2001 From: YeMingfei666 <1619116647@qq.com> Date: Wed, 6 Nov 2024 17:37:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AE=A2=E5=8D=95=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E8=AE=A2=E5=8D=95=E5=88=97=E8=A1=A8=E4=BB=B7=E6=A0=BC?= =?UTF-8?q?=E5=B1=95=E7=A4=BA=EF=BC=8C=E5=A2=9E=E5=8A=A0=E4=BC=9A=E5=91=98?= =?UTF-8?q?=E4=BB=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- commons/utils/goodsUtil.js | 3 + http/yskApi/Instead.js | 58 ++++ pages.json | 1 + pagesOrder/detail/components/list.vue | 131 ++++++-- pagesOrder/detail/detail.vue | 7 +- pagesOrder/index/compoents/order-item.vue | 29 +- pagesOrder/pay-order/pay-order.vue | 65 +++- pagesOrder/quan/quan.vue | 361 +++++++++++++++++++++- 8 files changed, 593 insertions(+), 62 deletions(-) diff --git a/commons/utils/goodsUtil.js b/commons/utils/goodsUtil.js index b0e821d..c919e53 100644 --- a/commons/utils/goodsUtil.js +++ b/commons/utils/goodsUtil.js @@ -19,6 +19,9 @@ export function canTuiKuan(orderInfo,item){ export function isTui(item){ return item.status=='return'||item.status=='refund'||item.status=='refunding' } +export function isGift(item){ + return !isTui(item)&&item.gift +} export function numSum(arr){ const sum=arr.reduce((a,b)=>{ return a+b*100 diff --git a/http/yskApi/Instead.js b/http/yskApi/Instead.js index 3221307..d964201 100644 --- a/http/yskApi/Instead.js +++ b/http/yskApi/Instead.js @@ -331,4 +331,62 @@ export function $returnOrder(data) { ...data } }); +} + +//获取订单可用优惠券 +export function $activateByOrderId(data) { + return request({ + url: '/api/tbShopCoupon/activateByOrderId', + method: "get", + params:{ + shopId: uni.getStorageSync("shopId"), + ...data + } + }); +} + +//会员积分列表 +export function $returnMemberPointsList(data) { + return request({ + url: '/api/points/member-points/page', + method: "get", + params:{ + shopId: uni.getStorageSync("shopId"), + ...data + } + }); +} + +// 会员积分账户信息 +export function $returnMemberPoints(memberId) { + return request({ + url: '/api/points/member-points/'+memberId, + method: "get", + params:{ + shopId: uni.getStorageSync("shopId"), + ...data + } + }); +} +//002-获取订单可用积分及抵扣金额(支付页面使用) +export function $calcUsablePoints(data) { + return request({ + url: '/api/points/member-points/calc-usable-points', + method: "get", + params:{ + shopId: uni.getStorageSync("shopId"), + ...data + } + }); +} +// 003-根据积分计算可抵扣金额 +export function $calcDeDuctionPoints(data) { + return request({ + url: '/api/points/member-points/calc-deduction-amount', + method: "get", + params:{ + shopId: uni.getStorageSync("shopId"), + ...data + } + }); } \ No newline at end of file diff --git a/pages.json b/pages.json index 0691aa5..38a9c78 100644 --- a/pages.json +++ b/pages.json @@ -878,6 +878,7 @@ }, { "path" : "quan/quan", + "pageId": "PAGES_ORDER_QUAN", "style" : { "navigationBarTitleText" : "券包" diff --git a/pagesOrder/detail/components/list.vue b/pagesOrder/detail/components/list.vue index fc3770b..53ffcca 100644 --- a/pagesOrder/detail/components/list.vue +++ b/pagesOrder/detail/components/list.vue @@ -26,7 +26,9 @@ {{item.status=='refunding'?'退款中':'已退'}} - {{item.name||item.productName}} + + {{item.name||item.productName}} @@ -54,8 +56,20 @@ ¥{{returnTotalMoney(item)}} + X{{item.number||item.num}} @@ -70,10 +84,10 @@ @@ -99,9 +113,15 @@ - - 小计¥ - {{allPrice}} + + + 已优惠¥{{youhuiAllPrice}} + + + 小计¥ + {{allPrice}} + + @@ -148,9 +168,44 @@ import { hasPermission } from '@/commons/utils/hasPermission.js' - import {isTui,canTuiKuan,canTuicai,numSum} from '@/commons/utils/goodsUtil.js' + import { + isTui,isGift, + canTuiKuan, + canTuicai, + numSum + } from '@/commons/utils/goodsUtil.js' + const props = defineProps({ + orderInfo: { + type: Object, + default: () => {} + }, + data: { + type: Array, + default: () => [] + }, + seatFee: { + type: Object, + default: () => {} + }, + user: { + type: Object, + default: () => { + return { + id: '', + isVip: false + } + } + } + }) const emits = defineEmits(['tuicai', 'tuikuan', 'printOrder']) + function returnVipMoney(item) { + if (!item.memberPrice || !props.user.isVip) { + return 0 + } + return (item.memberPrice * item.num).toFixed(2) + } + function returnTotalMoney(item) { return (item.price * item.num).toFixed(2) } @@ -177,20 +232,7 @@ function printOrder() { emits('printOrder') } - const props = defineProps({ - orderInfo: { - type: Object, - default: () => {} - }, - data: { - type: Array, - default: () => [] - }, - seatFee: { - type: Object, - default: () => {} - } - }) + const seatFeePrice = computed(() => { if (!props.seatFee.priceAmount) { @@ -199,21 +241,44 @@ const n = props.seatFee.priceAmount * (props.seatFee.status == 'return' ? 0 : 1) return n.toFixed(2) }) - - const allPrice = computed(() => { + const goodsOriginAllPrice = computed(() => { const goodsPrice = props.data.reduce((prve, cur) => { - const curTotal = cur.info.filter(v => v.gift != true && v.status !== "return").reduce((a, + const curTotal = cur.info.reduce((a, b) => { - // return a + b.priceAmount*1||(b.num*b.price+b.packAmount*1) - // return a + (b.num*b.price+b.packAmount*1) return a + (b.num * b.price) }, 0) return prve + curTotal }, 0) return goodsPrice.toFixed(2) - }) - + + const freePrice = computed(() => { + const goodsPrice = props.data.reduce((prve, cur) => { + const curTotal = cur.info.filter(v => v.gift == true || isTui(v)).reduce((a, + b) => { + return a + (b.num * b.price) + }, 0) + return prve + curTotal + }, 0) + return goodsPrice.toFixed(2) + }) + const vipDiscountPrice = computed(() => { + if (!props.user.isVip) { + return 0 + } + const goodsPrice = props.data.reduce((prve, cur) => { + const curTotal = cur.info.filter(v => v.gift != true && v.status !== "return"&&v.memberPrice&&(v.memberPrice!=v.price)).reduce((a, + b) => { + return a + (b.num * (b.price-b.memberPrice)) + }, 0) + return prve + curTotal + }, 0) + return goodsPrice.toFixed(2) + }) + const youhuiAllPrice=computed(()=>{ + console.log(freePrice.value); + return (freePrice.value*1+vipDiscountPrice.value*1).toFixed(2) + }) const packFee = computed(() => { const goodsPrice = props.data.reduce((prve, cur) => { const curTotal = cur.info.filter(v => v.gift != true && v.status !== "return").reduce((a, @@ -225,7 +290,9 @@ return goodsPrice.toFixed(2) }) - + const allPrice = computed(() => { + return (goodsOriginAllPrice.value-freePrice.value-vipDiscountPrice.value).toFixed(2) + }) const goodsNumber = computed(() => { let result = 0 diff --git a/pagesOrder/detail/detail.vue b/pagesOrder/detail/detail.vue index 18059ef..2a39559 100644 --- a/pagesOrder/detail/detail.vue +++ b/pagesOrder/detail/detail.vue @@ -6,6 +6,7 @@ {{orderDetail.info.tableName}} -->