mirror of
https://gitee.com/liuxioabin/fengketrade.git
synced 2026-04-17 21:03:17 +08:00
'积分功能调整'
This commit is contained in:
parent
f0b937360d
commit
625c5a8358
@ -6,8 +6,8 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="md-goods-content ss-flex-col ss-row-around">
|
<view class="md-goods-content ss-flex-col ss-row-around">
|
||||||
<view class="md-goods-title ss-line-2 ss-m-x-20 ss-m-t-6 ss-m-b-16">{{ title }}</view>
|
<view class="md-goods-title ss-line-2 ss-m-x-20 ss-m-t-6 ss-m-b-16">{{ title }}</view>
|
||||||
<view class="md-goods-subtitle ss-line-1 ss-p-y-10 ss-p-20">至高90%积分抵扣</view>
|
<view class="md-goods-subtitle ss-line-1 ss-p-y-10 ss-p-20" v-if="maxUseScore > 0">至高{{ scoreDiscountPercent }}%积分抵扣</view>
|
||||||
<view class="ss-flex ss-col-center ss-row-between ss-m-b-16 ss-m-x-20">
|
<view class="ss-flex ss-col-center ss-row-between ss-m-b-16 ss-m-x-20" v-if="maxUseScore > 0">
|
||||||
<view class="md-goods-price text-price">{{ price }}</view>
|
<view class="md-goods-price text-price">{{ price }}</view>
|
||||||
<view class="goods-origin-price text-price">{{ originPrice }}</view>
|
<view class="goods-origin-price text-price">{{ originPrice }}</view>
|
||||||
<view class="sales-text">{{ maxScoreText }}</view>
|
<view class="sales-text">{{ maxScoreText }}</view>
|
||||||
@ -46,13 +46,20 @@
|
|||||||
type: [String, Number],
|
type: [String, Number],
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
|
scoreDiscountPercent: {
|
||||||
|
type: [String, Number],
|
||||||
|
default: 90,
|
||||||
|
},
|
||||||
|
maxUseScore: {
|
||||||
|
type: [String, Number],
|
||||||
|
default: 0,
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
// 计算最高可使用积分
|
// 计算最高可使用积分
|
||||||
const maxScoreText = computed(() => {
|
const maxScoreText = computed(() => {
|
||||||
if (props.price && !isNaN(props.price)) {
|
if (props.maxUseScore && !isNaN(props.maxUseScore)) {
|
||||||
const maxScore = (parseFloat(props.price) * 0.9).toFixed(3);
|
return `最高可使用${props.maxUseScore}积分`;
|
||||||
return `最高可使用${maxScore}积分`;
|
|
||||||
}
|
}
|
||||||
return '最高可使用0积分';
|
return '最高可使用0积分';
|
||||||
});
|
});
|
||||||
|
|||||||
@ -43,6 +43,17 @@
|
|||||||
{{ formatSales(state.goodsInfo.sales_show_type, state.goodsInfo.sales) }}
|
{{ formatSales(state.goodsInfo.sales_show_type, state.goodsInfo.sales) }}
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
<!-- 积分抵扣信息 -->
|
||||||
|
<view class="score-discount-box ss-flex ss-m-b-20" v-if="state.goodsInfo.max_use_score > 0">
|
||||||
|
<view class="score-discount-tag ss-m-r-10">
|
||||||
|
至高{{ state.goodsInfo.score_discount_percent }}%积分抵扣
|
||||||
|
</view>
|
||||||
|
<view class="max-score-tag">
|
||||||
|
最高可使用{{ state.goodsInfo.max_use_score }}积分
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
<view class="discounts-box ss-flex ss-row-between ss-m-b-28">
|
<view class="discounts-box ss-flex ss-row-between ss-m-b-28">
|
||||||
<div class="tag-content">
|
<div class="tag-content">
|
||||||
<view class="tag-box ss-flex">
|
<view class="tag-box ss-flex">
|
||||||
@ -309,6 +320,28 @@
|
|||||||
color: $gray-c;
|
color: $gray-c;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.score-discount-box {
|
||||||
|
.score-discount-tag {
|
||||||
|
font-size: 24rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #FF3000;
|
||||||
|
background: #ffffff;
|
||||||
|
border: 1px solid #FF3000;
|
||||||
|
border-radius: 8rpx;
|
||||||
|
padding: 4rpx 12rpx;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.max-score-tag {
|
||||||
|
display: inline-block;
|
||||||
|
font-size: 20rpx;
|
||||||
|
background: #FF3000;
|
||||||
|
color: #ffffff;
|
||||||
|
border-radius: 8rpx;
|
||||||
|
padding: 4rpx 12rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.discounts-box {
|
.discounts-box {
|
||||||
.tag-content {
|
.tag-content {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
|
|||||||
@ -90,11 +90,11 @@
|
|||||||
{{ data.title }}
|
{{ data.title }}
|
||||||
</view>
|
</view>
|
||||||
<view
|
<view
|
||||||
v-if="goodsFields.subtitle?.show"
|
v-if="goodsFields.subtitle?.show && data.max_use_score > 0"
|
||||||
class="md-goods-subtitle ss-m-t-16 ss-line-1"
|
class="md-goods-subtitle ss-m-t-16 ss-line-1"
|
||||||
:style="[{ color: subTitleColor, background: subTitleBackground }]"
|
:style="[{ color: subTitleColor, background: subTitleBackground }]"
|
||||||
>
|
>
|
||||||
至高90%积分抵扣
|
至高{{ data.score_discount_percent }}%积分抵扣
|
||||||
</view>
|
</view>
|
||||||
<slot name="activity">
|
<slot name="activity">
|
||||||
<view v-if="data.promos?.length" class="tag-box ss-flex-wrap ss-flex ss-col-center">
|
<view v-if="data.promos?.length" class="tag-box ss-flex-wrap ss-flex ss-col-center">
|
||||||
@ -127,7 +127,7 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="ss-m-t-16 ss-flex ss-col-center ss-flex-wrap">
|
<view class="ss-m-t-16 ss-flex ss-col-center ss-flex-wrap" v-if="data.max_use_score > 0">
|
||||||
<view class="sales-text">{{ maxScoreText }}</view>
|
<view class="sales-text">{{ maxScoreText }}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@ -160,11 +160,11 @@
|
|||||||
{{ data.title }}
|
{{ data.title }}
|
||||||
</view>
|
</view>
|
||||||
<view
|
<view
|
||||||
v-if="goodsFields.subtitle?.show"
|
v-if="goodsFields.subtitle?.show && data.max_use_score > 0"
|
||||||
class="lg-goods-subtitle ss-m-t-10 ss-line-1"
|
class="lg-goods-subtitle ss-m-t-10 ss-line-1"
|
||||||
:style="[{ color: subTitleColor, background: subTitleBackground }]"
|
:style="[{ color: subTitleColor, background: subTitleBackground }]"
|
||||||
>
|
>
|
||||||
至高90%积分抵扣
|
至高{{ data.score_discount_percent }}%积分抵扣
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view>
|
<view>
|
||||||
@ -193,7 +193,7 @@
|
|||||||
<view class="ss-m-l-8">{{ data.original_price }}</view>
|
<view class="ss-m-l-8">{{ data.original_price }}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ss-m-t-8 ss-flex ss-col-center ss-flex-wrap">
|
<view class="ss-m-t-8 ss-flex ss-col-center ss-flex-wrap" v-if="data.max_use_score > 0">
|
||||||
<view class="sales-text">{{ maxScoreText }}</view>
|
<view class="sales-text">{{ maxScoreText }}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@ -222,11 +222,11 @@
|
|||||||
{{ data.title }}
|
{{ data.title }}
|
||||||
</view>
|
</view>
|
||||||
<view
|
<view
|
||||||
v-if="goodsFields.subtitle?.show"
|
v-if="goodsFields.subtitle?.show && data.max_use_score > 0"
|
||||||
class="sl-goods-subtitle ss-m-t-16"
|
class="sl-goods-subtitle ss-m-t-16"
|
||||||
:style="[{ color: subTitleColor, background: subTitleBackground }]"
|
:style="[{ color: subTitleColor, background: subTitleBackground }]"
|
||||||
>
|
>
|
||||||
至高90%积分抵扣
|
至高{{ data.score_discount_percent }}%积分抵扣
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view>
|
<view>
|
||||||
@ -255,7 +255,7 @@
|
|||||||
<view class="ss-m-l-8">{{ data.original_price }}</view>
|
<view class="ss-m-l-8">{{ data.original_price }}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ss-m-t-16 ss-flex ss-flex-wrap">
|
<view class="ss-m-t-16 ss-flex ss-flex-wrap" v-if="data.max_use_score > 0">
|
||||||
<view class="sales-text">{{ maxScoreText }}</view>
|
<view class="sales-text">{{ maxScoreText }}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@ -424,11 +424,9 @@
|
|||||||
|
|
||||||
// 计算最高可使用积分
|
// 计算最高可使用积分
|
||||||
const maxScoreText = computed(() => {
|
const maxScoreText = computed(() => {
|
||||||
// 计算价格的90%作为最高可使用积分
|
// 使用商品的max_use_score字段
|
||||||
const price = isArray(props.data.price) ? props.data.price[0] : props.data.price;
|
if (props.data.max_use_score && !isNaN(props.data.max_use_score)) {
|
||||||
if (price && !isNaN(price)) {
|
return `最高可使用${props.data.max_use_score}积分`;
|
||||||
const maxScore = (parseFloat(price) * 0.9).toFixed(3);
|
|
||||||
return `最高可使用${maxScore}积分`;
|
|
||||||
}
|
}
|
||||||
return '最高可使用0积分';
|
return '最高可使用0积分';
|
||||||
});
|
});
|
||||||
|
|||||||
@ -20,11 +20,11 @@
|
|||||||
{{ data.title }}
|
{{ data.title }}
|
||||||
</view>
|
</view>
|
||||||
<view
|
<view
|
||||||
v-if="goodsFields.subtitle?.show"
|
v-if="goodsFields.subtitle?.show && data.max_use_score > 0"
|
||||||
class="md-goods-subtitle ss-m-t-16 ss-line-1"
|
class="md-goods-subtitle ss-m-t-16 ss-line-1"
|
||||||
:style="[{ color: subTitleColor }]"
|
:style="[{ color: subTitleColor }]"
|
||||||
>
|
>
|
||||||
至高90%积分抵扣
|
至高{{ data.score_discount_percent }}%积分抵扣
|
||||||
</view>
|
</view>
|
||||||
<view class="ss-col-bottom">
|
<view class="ss-col-bottom">
|
||||||
<view
|
<view
|
||||||
@ -50,7 +50,7 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="ss-m-t-16 ss-flex ss-col-center ss-flex-wrap">
|
<view class="ss-m-t-16 ss-flex ss-col-center ss-flex-wrap" v-if="data.max_use_score > 0">
|
||||||
<view class="sales-text">{{ maxScoreText }}</view>
|
<view class="sales-text">{{ maxScoreText }}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@ -77,11 +77,11 @@
|
|||||||
{{ data.title }}
|
{{ data.title }}
|
||||||
</view>
|
</view>
|
||||||
<view
|
<view
|
||||||
v-if="goodsFields.subtitle?.show"
|
v-if="goodsFields.subtitle?.show && data.max_use_score > 0"
|
||||||
class="lg-goods-subtitle ss-m-t-10 ss-line-1"
|
class="lg-goods-subtitle ss-m-t-10 ss-line-1"
|
||||||
:style="[{ color: subTitleColor }]"
|
:style="[{ color: subTitleColor }]"
|
||||||
>
|
>
|
||||||
至高90%积分抵扣
|
至高{{ data.score_discount_percent }}%积分抵扣
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view>
|
<view>
|
||||||
@ -107,7 +107,7 @@
|
|||||||
<view class="ss-m-l-8">{{ data.original_price }}</view>
|
<view class="ss-m-l-8">{{ data.original_price }}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ss-m-t-16 ss-flex ss-col-center ss-flex-wrap">
|
<view class="ss-m-t-16 ss-flex ss-col-center ss-flex-wrap" v-if="data.max_use_score > 0">
|
||||||
<view class="sales-text">{{ maxScoreText }}</view>
|
<view class="sales-text">{{ maxScoreText }}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@ -273,16 +273,9 @@
|
|||||||
|
|
||||||
// 计算最高可使用积分(针对积分商品)
|
// 计算最高可使用积分(针对积分商品)
|
||||||
const maxScoreText = computed(() => {
|
const maxScoreText = computed(() => {
|
||||||
// 优先使用商品的score字段(积分价格)
|
// 使用商品的max_use_score字段
|
||||||
if (props.data.score && !isNaN(props.data.score)) {
|
if (props.data.max_use_score && !isNaN(props.data.max_use_score)) {
|
||||||
const maxScore = (parseFloat(props.data.score) * 0.9).toFixed(3);
|
return `最高可使用${props.data.max_use_score}积分`;
|
||||||
return `最高可使用${maxScore}积分`;
|
|
||||||
}
|
|
||||||
// 如果没有score字段,用价格计算
|
|
||||||
const price = Array.isArray(props.data.price) ? props.data.price[0] : props.data.price;
|
|
||||||
if (price && !isNaN(price)) {
|
|
||||||
const maxScore = (parseFloat(price) * 0.9).toFixed(3);
|
|
||||||
return `最高可使用${maxScore}积分`;
|
|
||||||
}
|
}
|
||||||
return '最高可使用0积分';
|
return '最高可使用0积分';
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user