✨ 指定满减送的活动列表:100%
This commit is contained in:
@@ -38,17 +38,6 @@ export default {
|
||||
},
|
||||
}),
|
||||
|
||||
// 商品评价列表
|
||||
comment: (id, params = {}) =>
|
||||
request2({
|
||||
url: 'product/comment/list?spuId=' + id,
|
||||
method: 'GET',
|
||||
params,
|
||||
custom: {
|
||||
showLoading: false,
|
||||
showError: false,
|
||||
},
|
||||
}),
|
||||
// 商品查询
|
||||
activity: (params = {}) =>
|
||||
request({
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
import request from '@/sheep/request';
|
||||
|
||||
const RewardActivityApi = {
|
||||
// 获得满减送活动
|
||||
getRewardActivity: (id) => {
|
||||
return request({
|
||||
url: '/app-api/promotion/reward-activity/get',
|
||||
method: 'GET',
|
||||
params: { id },
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
export default RewardActivityApi;
|
||||
@@ -12,15 +12,9 @@
|
||||
<view v-for="item in state.activityInfo" :key="item.id">
|
||||
<view class="ss-flex ss-col-top ss-m-b-40" @tap="onGoodsList(item)">
|
||||
<view class="model-content-tag ss-flex ss-row-center">满减</view>
|
||||
<!-- TODO 芋艿:先简单做;未来再搞成满 xxx 减 yyy 元 -->
|
||||
<!-- <view class="ss-m-l-20 model-content-title ss-flex-1">-->
|
||||
<!-- <view class="ss-m-b-24" v-for="text in item.texts" :key="text">-->
|
||||
<!-- {{ text }}-->
|
||||
<!-- </view>-->
|
||||
<!-- </view>-->
|
||||
<view class="ss-m-l-20 model-content-title ss-flex-1">
|
||||
<view class="ss-m-b-24">
|
||||
{{ item.name }}
|
||||
<view class="ss-m-b-24" v-for="rule in state.activityMap[item.id]?.rules" :key="rule">
|
||||
{{ formatRewardActivityRule(state.activityMap[item.id], rule) }}
|
||||
</view>
|
||||
</view>
|
||||
<text class="cicon-forward" />
|
||||
@@ -32,7 +26,10 @@
|
||||
</template>
|
||||
<script setup>
|
||||
import sheep from '@/sheep';
|
||||
import { computed, reactive } from 'vue';
|
||||
import { computed, reactive, watch } from 'vue';
|
||||
import RewardActivityApi from '@/sheep/api/promotion/rewardActivity';
|
||||
import { formatRewardActivityRule } from '@/sheep/hooks/useGoods';
|
||||
|
||||
const props = defineProps({
|
||||
modelValue: {
|
||||
type: Object,
|
||||
@@ -46,7 +43,26 @@
|
||||
const emits = defineEmits(['close']);
|
||||
const state = reactive({
|
||||
activityInfo: computed(() => props.modelValue),
|
||||
activityMap: {}
|
||||
});
|
||||
|
||||
watch(
|
||||
() => props.show,
|
||||
() => {
|
||||
// 展示的情况下,加载每个活动的详细信息
|
||||
if (props.show) {
|
||||
state.activityInfo?.forEach(activity => {
|
||||
RewardActivityApi.getRewardActivity(activity.id).then(res => {
|
||||
if (res.code !== 0) {
|
||||
return;
|
||||
}
|
||||
state.activityMap[activity.id] = res.data;
|
||||
})
|
||||
});
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
function onGoodsList(e) {
|
||||
sheep.$router.go('/pages/activity/index', {
|
||||
activityId: e.id,
|
||||
|
||||
@@ -368,3 +368,20 @@ export function convertProductPropertyList(skus) {
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 格式化满减送活动的规则
|
||||
*
|
||||
* @param activity 活动信息
|
||||
* @param rule 优惠规格
|
||||
* @returns {string} 规格字符串
|
||||
*/
|
||||
export function formatRewardActivityRule(activity, rule) {
|
||||
if (activity.conditionType === 10) {
|
||||
return `满 ${fen2yuan(rule.limit)} 元减 ${fen2yuan(rule.discountPrice)} 元`;
|
||||
}
|
||||
if (activity.conditionType === 20) {
|
||||
return `满 ${rule.limit} 件减 ${fen2yuan(rule.discountPrice)} 元`;
|
||||
}
|
||||
return '';
|
||||
}
|
||||
Reference in New Issue
Block a user