修复拼团详情显示问题,增加商品下架弹窗提醒·,订单详情和结算成功增加会员折扣展示,修改用户中心页面积分列表积分余额显示字段,调整套餐商品详情商品显示样式

This commit is contained in:
2025-12-23 13:33:09 +08:00
parent 624056758d
commit 252243fa7b
7 changed files with 92 additions and 31 deletions

View File

@@ -79,7 +79,7 @@
</view> </view>
</view> </view>
<view class="members" v-if="item.status!='已退款'"> <view class="members" v-if="item.status!='已退款'&&item.status!='已核销'">
<view class="list" v-if="item.users&&item.users.length"> <view class="list" v-if="item.users&&item.users.length">
<view class="item" v-for="(user,index) in item.users" :key="index"> <view class="item" v-for="(user,index) in item.users" :key="index">
<view class="box"> <view class="box">

View File

@@ -353,6 +353,20 @@
function getDetail() { function getDetail() {
Api.wareDetail(query).then(res => { Api.wareDetail(query).then(res => {
console.log('res',res)
if(!res){
uni.showModal({
title:'提示',
content:'当前商品已下架',
showCancel:false,
success() {
uni.redirectTo({
url:'/groupBuying/index/index'
})
}
})
}
res.wareCommentImgs = res.wareCommentImgs.split(',').filter(v => v) res.wareCommentImgs = res.wareCommentImgs.split(',').filter(v => v)
Object.assign(item, res) Object.assign(item, res)
console.log(item) console.log(item)

View File

@@ -226,6 +226,11 @@
<text class="t">新客立减</text> <text class="t">新客立减</text>
<text class="price">-{{listinfo.newCustomerDiscountAmount}}</text> <text class="price">-{{listinfo.newCustomerDiscountAmount}}</text>
</view> </view>
<view class="row" v-if="listinfo.vipDiscountAmount">
<text class="t">会员折扣</text>
<text class="price">-{{listinfo.vipDiscountAmount}}</text>
</view>
</view> </view>
@@ -451,7 +456,7 @@
const showDiscount = computed(() => { const showDiscount = computed(() => {
const keys = ['productCouponDiscountAmount', 'otherCouponDiscountAmount', const keys = ['productCouponDiscountAmount', 'otherCouponDiscountAmount',
'pointsDiscountAmount', 'discountActAmount', 'newCustomerDiscountAmount' 'pointsDiscountAmount', 'discountActAmount', 'newCustomerDiscountAmount','vipDiscountAmount'
] ]
if (isObjHasPropertyAndNotNull(props.listinfo, keys)) { if (isObjHasPropertyAndNotNull(props.listinfo, keys)) {
return true return true

View File

@@ -222,6 +222,11 @@
<text class="t">新客立减</text> <text class="t">新客立减</text>
<text class="price">-{{listinfo.newCustomerDiscountAmount}}</text> <text class="price">-{{listinfo.newCustomerDiscountAmount}}</text>
</view> </view>
<view class="row" v-if="listinfo.vipDiscountAmount">
<text class="t">会员折扣</text>
<text class="price">-{{listinfo.vipDiscountAmount}}</text>
</view>
</view> </view>
@@ -402,7 +407,7 @@
const showDiscount = computed(() => { const showDiscount = computed(() => {
const keys = ['productCouponDiscountAmount', 'otherCouponDiscountAmount', const keys = ['productCouponDiscountAmount', 'otherCouponDiscountAmount',
'pointsDiscountAmount', 'discountActAmount', 'newCustomerDiscountAmount' 'pointsDiscountAmount', 'discountActAmount', 'newCustomerDiscountAmount','vipDiscountAmount'
] ]
if (isObjHasPropertyAndNotNull(props.listinfo, keys)) { if (isObjHasPropertyAndNotNull(props.listinfo, keys)) {
return true return true

View File

@@ -124,7 +124,7 @@
</image> </image>
<text class="color-333 font-14 u-m-l-20">积分</text> <text class="color-333 font-14 u-m-l-20">积分</text>
</view> </view>
<view class="u-flex color-666" @click="toCoin"> <view class="u-flex color-666" @click="toCoin()">
<text class="font-12 u-m-r-4">{{ coinTotal }}家店</text> <text class="font-12 u-m-r-4">{{ coinTotal }}家店</text>
<up-icon name="arrow-down" color="#666" size="12px"></up-icon> <up-icon name="arrow-down" color="#666" size="12px"></up-icon>
</view> </view>
@@ -138,7 +138,7 @@
<view class="color-333 u-m-t-14"> <view class="color-333 u-m-t-14">
<text class="font-10">¥</text> <text class="font-10">¥</text>
<text class="font-16 font-700">{{ <text class="font-16 font-700">{{
item.accountPoints || "0.00" item.pointBalance || "0.00"
}}</text> }}</text>
</view> </view>
<view class="font-12 color-666 u-line-1">{{ <view class="font-12 color-666 u-line-1">{{
@@ -147,7 +147,7 @@
</view> </view>
</view> </view>
<view class="u-flex u-flex-column u-flex-center" style="width: 12px" v-if="coinList.length" <view class="u-flex u-flex-column u-flex-center" style="width: 12px" v-if="coinList.length"
@click="toCoin"> @click="toCoin()">
<view class="text-center color-333 font-12">查看全部</view> <view class="text-center color-333 font-12">查看全部</view>
</view> </view>
</view> </view>
@@ -163,7 +163,7 @@
</view> </view>
<view class="my_list_item_right u-flex"> <view class="my_list_item_right u-flex">
<text v-if="item.type == 'score'" class="font-12">{{ <text v-if="item.type == 'score'" class="font-12">{{
userInfo.accountPoints || 0 userInfo.pointBalance || 0
}}</text> }}</text>
<!-- <text v-else-if="item.type=='my_coupon'" class="font-12 ">{{userInfo.couponNum || 0}}</text> --> <!-- <text v-else-if="item.type=='my_coupon'" class="font-12 ">{{userInfo.couponNum || 0}}</text> -->
<text class="font-12 color-999" v-else>查看</text> <text class="font-12 color-999" v-else>查看</text>
@@ -434,7 +434,13 @@
coinList.value = res3; coinList.value = res3;
} }
function toCoin() { function toCoin(item) {
if(item){
uni.navigateTo({
url: "/pages/user/member/billDetails?type=2&shopId="+item.shopId+"&id="+(item.id||''),
});
return
}
uni.navigateTo({ uni.navigateTo({
url: "/user/score/list", url: "/user/score/list",
}); });

View File

@@ -75,18 +75,18 @@
</view> </view>
</view> </view>
<view class="u-m-t-36" v-if="showGroup"> <view class="" v-if="showGroup">
<view v-for="(item,index) in item.packageContent" :key="index"> <view class="u-m-t-48" v-for="(item,index) in item.packageContent" :key="index">
<view class=""> <view class="font-bold">
<text>{{item.name}}</text> <text class="">{{item.name}}</text>
<text class="u-m-l-30">{{item.packageProducts.length}}{{item.num}}</text> <text class="u-m-l-30">{{item.packageProducts.length}}{{item.num}}</text>
</view> </view>
<view class="u-m-t-48"> <view class="">
<view class="u-flex u-m-t-32 u-row-between" v-for="(goods,goodsIndex) in item.packageProducts" <view class="u-flex u-m-t-24 u-row-between" v-for="(goods,goodsIndex) in item.packageProducts"
:key="goodsIndex"> :key="goodsIndex">
<text>{{goods.name}}</text> <text>{{goods.name}}</text>
<view class="u-flex text-right"> <view class="u-flex text-right">
<text class="color-666 u-m-r-42">{{goods.num}}</text> <text class="color-666 u-m-r-42">x{{goods.num}}</text>
<view style="min-width: 110rpx;">¥{{goods.price}}</view> <view style="min-width: 110rpx;">¥{{goods.price}}</view>
</view> </view>
</view> </view>

View File

@@ -52,7 +52,9 @@
<text class="u-font-24" v-if="isHasDiscount(item)">最低到手</text> <text class="u-font-24" v-if="isHasDiscount(item)">最低到手</text>
<text class="u-font-40 font-bold"> ¥{{minPrice(item)}}</text> <text class="u-font-40 font-bold"> ¥{{minPrice(item)}}</text>
<text class="color-999 old-price"> ¥{{item.originPrice}}</text> <text class="color-999 old-price"> ¥{{item.originPrice}}</text>
<view class="block">
<image class="block-img" :src="imgs.block"></image>
</view>
</view> </view>
<view class="right"> <view class="right">
<image class="pin" :src="imgs.pin"></image> <image class="pin" :src="imgs.pin"></image>
@@ -74,7 +76,7 @@
<view class="u-flex-1 u-flex u-p-l-30 u-col-center u-row-between"> <view class="u-flex-1 u-flex u-p-l-30 u-col-center u-row-between">
<view style="max-width: 336rpx;"> <view style="max-width: 336rpx;">
<view class="u-line-2 font-bold u-font-32">{{item.packageName}}</view> <view class="u-line-2 font-bold u-font-32">{{item.packageName}}</view>
<view class="u-line-1 u-m-t-10 color-666" >{{item.packageName}} <view class="u-line-1 u-m-t-10 color-666">{{item.packageName}}
</view> </view>
</view> </view>
<view> <view>
@@ -92,23 +94,23 @@
¥{{item.originPrice}} ¥{{item.originPrice}}
</view> </view>
</template> </template>
<template v-else> <template v-else>
<template v-if="item&&item.finalPrice"> <template v-if="item&&item.finalPrice">
<view class=" font-bold price main-color" > <view class=" font-bold price main-color">
<text class="u-font-26"> ¥</text> <text class="u-font-26"> ¥</text>
<text class="u-font-40">{{item.finalPrice}}</text> <text class="u-font-40">{{item.finalPrice}}</text>
</view> </view>
<view class=" main-color old-price" > <view class=" main-color old-price">
¥{{item.originPrice}} ¥{{item.originPrice}}
</view> </view>
</template> </template>
<template v-else> <template v-else>
<view class=" font-bold price main-color" > <view class=" font-bold price main-color">
<text class="u-font-26"> ¥</text> <text class="u-font-26"> ¥</text>
<text class="u-font-40">{{item.price}}</text> <text class="u-font-40">{{item.price}}</text>
</view> </view>
<view class=" main-color old-price" > <view class=" main-color old-price">
¥{{item.originPrice}} ¥{{item.originPrice}}
</view> </view>
</template> </template>
@@ -223,7 +225,8 @@
bg: 'https://cashier-oss.oss-cn-beijing.aliyuncs.com/upload/4/dd298d6a503d432f832f3c7c2bb7fb0e.png', bg: 'https://cashier-oss.oss-cn-beijing.aliyuncs.com/upload/4/dd298d6a503d432f832f3c7c2bb7fb0e.png',
bg1: 'https://cashier-oss.oss-cn-beijing.aliyuncs.com/upload/1/604c3f917daa41af9239145196c6d3f3.png', bg1: 'https://cashier-oss.oss-cn-beijing.aliyuncs.com/upload/1/604c3f917daa41af9239145196c6d3f3.png',
map: 'https://cashier-oss.oss-cn-beijing.aliyuncs.com/upload/1/0a293f6e1a6a4e7b956379a5b6701104.png', map: 'https://cashier-oss.oss-cn-beijing.aliyuncs.com/upload/1/0a293f6e1a6a4e7b956379a5b6701104.png',
pin: 'https://cashier-oss.oss-cn-beijing.aliyuncs.com/upload/5/8eaf3bdd44ce422889e5feeb30bcb2ea.png' pin: 'https://cashier-oss.oss-cn-beijing.aliyuncs.com/upload/5/8eaf3bdd44ce422889e5feeb30bcb2ea.png',
block: 'https://cashier-oss.oss-cn-beijing.aliyuncs.com/upload/2/8a978da77a4d47ff95a5a152485849fe.png'
} }
const shopInfo = ref(uni.cache.get('shopInfo')) const shopInfo = ref(uni.cache.get('shopInfo'))
@@ -531,7 +534,7 @@
function returnTime(item) { function returnTime(item) {
nowTime.value nowTime.value
return getRemainingHMS(item,'expireTime') return getRemainingHMS(item, 'expireTime')
} }
function minPrice(item) { function minPrice(item) {
@@ -664,20 +667,46 @@
} }
.info { .info {
background: linear-gradient(270deg, #FFF7F4 44.8%, #ffffff00 89.37%);
width: 452rpx; width: 452rpx;
height: 92rpx; height: 92rpx;
border-radius: 12rpx; border-radius: 12rpx;
background-size: cover; background-size: cover;
transform: translateY(-10rpx); transform: translateY(-10rpx);
display: flex; display: flex;
justify-content: space-between; justify-content: flex-end;
position: relative;
overflow: hidden;
$right-width: 102rpx;
.left { .left {
width: 306rpx; width: 360rpx;
padding: 16rpx 22rpx; padding: 16rpx 22rpx;
color: #eb532a; color: #eb532a;
flex: 1; background: linear-gradient(270deg, #FFF7F4 44.8%, #ffffff00 89.37%);
align-items: baseline;
position: absolute;
left: 0;
top: 0;
bottom: 0;
z-index: 2;
right: $right-width;
.block {
position: absolute;
right: 0;
top: 0;
bottom: 0;
z-index: 3;
background: linear-gradient(-110deg,
#eb532a 39%,
transparent 43%
);
.block-img {
height: 100%;
width: 62rpx;
}
}
} }
.old-price { .old-price {
@@ -687,17 +716,18 @@
.right { .right {
background-color: #ED5A2E; background-color: #ED5A2E;
border-radius: 0 16rpx 16rpx 0; width: $right-width;
padding-right: 10rpx;
padding-left: 16rpx;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
position: relative;
z-index: 1;
.pin { .pin {
width: 76rpx; width: 76rpx;
height: 54rpx; height: 54rpx;
} }
} }
} }
} }
@@ -752,6 +782,7 @@
.orders { .orders {
padding: 0 26rpx 36rpx; padding: 0 26rpx 36rpx;
margin-top: 32rpx; margin-top: 32rpx;
.item { .item {
padding: 32rpx 24rpx; padding: 32rpx 24rpx;
border-radius: 16rpx; border-radius: 16rpx;