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

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 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="item" v-for="(user,index) in item.users" :key="index">
<view class="box">

View File

@@ -353,6 +353,20 @@
function getDetail() {
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)
Object.assign(item, res)
console.log(item)

View File

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

View File

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

View File

@@ -124,7 +124,7 @@
</image>
<text class="color-333 font-14 u-m-l-20">积分</text>
</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>
<up-icon name="arrow-down" color="#666" size="12px"></up-icon>
</view>
@@ -138,7 +138,7 @@
<view class="color-333 u-m-t-14">
<text class="font-10">¥</text>
<text class="font-16 font-700">{{
item.accountPoints || "0.00"
item.pointBalance || "0.00"
}}</text>
</view>
<view class="font-12 color-666 u-line-1">{{
@@ -147,7 +147,7 @@
</view>
</view>
<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>
</view>
@@ -163,7 +163,7 @@
</view>
<view class="my_list_item_right u-flex">
<text v-if="item.type == 'score'" class="font-12">{{
userInfo.accountPoints || 0
userInfo.pointBalance || 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>
@@ -434,7 +434,13 @@
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({
url: "/user/score/list",
});

View File

@@ -75,18 +75,18 @@
</view>
</view>
<view class="u-m-t-36" v-if="showGroup">
<view v-for="(item,index) in item.packageContent" :key="index">
<view class="">
<text>{{item.name}}</text>
<view class="" v-if="showGroup">
<view class="u-m-t-48" v-for="(item,index) in item.packageContent" :key="index">
<view class="font-bold">
<text class="">{{item.name}}</text>
<text class="u-m-l-30">{{item.packageProducts.length}}{{item.num}}</text>
</view>
<view class="u-m-t-48">
<view class="u-flex u-m-t-32 u-row-between" v-for="(goods,goodsIndex) in item.packageProducts"
<view class="">
<view class="u-flex u-m-t-24 u-row-between" v-for="(goods,goodsIndex) in item.packageProducts"
:key="goodsIndex">
<text>{{goods.name}}</text>
<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>
</view>

View File

@@ -52,7 +52,9 @@
<text class="u-font-24" v-if="isHasDiscount(item)">最低到手</text>
<text class="u-font-40 font-bold"> ¥{{minPrice(item)}}</text>
<text class="color-999 old-price"> ¥{{item.originPrice}}</text>
<view class="block">
<image class="block-img" :src="imgs.block"></image>
</view>
</view>
<view class="right">
<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 style="max-width: 336rpx;">
<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>
@@ -92,23 +94,23 @@
¥{{item.originPrice}}
</view>
</template>
<template v-else>
<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-40">{{item.finalPrice}}</text>
</view>
<view class=" main-color old-price" >
<view class=" main-color old-price">
¥{{item.originPrice}}
</view>
</template>
<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-40">{{item.price}}</text>
</view>
<view class=" main-color old-price" >
<view class=" main-color old-price">
¥{{item.originPrice}}
</view>
</template>
@@ -223,7 +225,8 @@
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',
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'))
@@ -531,7 +534,7 @@
function returnTime(item) {
nowTime.value
return getRemainingHMS(item,'expireTime')
return getRemainingHMS(item, 'expireTime')
}
function minPrice(item) {
@@ -664,20 +667,46 @@
}
.info {
background: linear-gradient(270deg, #FFF7F4 44.8%, #ffffff00 89.37%);
width: 452rpx;
height: 92rpx;
border-radius: 12rpx;
background-size: cover;
transform: translateY(-10rpx);
display: flex;
justify-content: space-between;
justify-content: flex-end;
position: relative;
overflow: hidden;
$right-width: 102rpx;
.left {
width: 306rpx;
width: 360rpx;
padding: 16rpx 22rpx;
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 {
@@ -687,17 +716,18 @@
.right {
background-color: #ED5A2E;
border-radius: 0 16rpx 16rpx 0;
padding-right: 10rpx;
padding-left: 16rpx;
width: $right-width;
display: flex;
justify-content: center;
align-items: center;
position: relative;
z-index: 1;
.pin {
width: 76rpx;
height: 54rpx;
}
}
}
}
@@ -752,6 +782,7 @@
.orders {
padding: 0 26rpx 36rpx;
margin-top: 32rpx;
.item {
padding: 32rpx 24rpx;
border-radius: 16rpx;