商品详情:优惠劵信息的接入

pull/29/head^2
YunaiV 2023-12-16 19:16:21 +08:00
parent b422c7414f
commit 275e8a278f
4 changed files with 41 additions and 37 deletions

View File

@ -209,18 +209,21 @@
}
}
//
async function getCoupon() {
const { error, msg } = await sheep.$api.coupon.get(state.id);
if (error === 0) {
uni.showToast({
title: msg,
});
setTimeout(() => {
getCouponContent(state.id, state.couponId);
}, 1000);
const { code } = await CouponApi.takeCoupon(state.id);
if (code !== 0) {
return;
}
uni.showToast({
title: '领取成功',
});
setTimeout(() => {
getCouponContent();
}, 1000);
}
//
async function getCouponContent() {
const { code, data } = state.id > 0 ? await CouponApi.getCouponTemplate(state.id)
: await CouponApi.getCoupon(state.couponId);

View File

@ -111,7 +111,7 @@
state.currentTab = e.index;
state.type = e.value;
resetPagination(state.pagination)
if (state.currentTab == 0) {
if (state.currentTab === 0) {
getData();
} else {
getCoupon();

View File

@ -186,18 +186,16 @@
// TODO
async function onGet(id) {
const {
error,
msg
} = await sheep.$api.coupon.get(id);
if (error === 0) {
uni.showToast({
title: msg,
});
setTimeout(() => {
getCoupon();
}, 1000);
}
const { code } = await CouponApi.takeCoupon(id);
if (code !== 0) {
return;
}
uni.showToast({
title: '领取成功',
});
setTimeout(() => {
getCoupon();
}, 1000);
}
// TODO
@ -221,7 +219,14 @@
}, );
});
onLoad(async (options) => {
async function getCoupon() {
const { code, data } = await CouponApi.getCouponTemplateList(state.goodsId, 2, 10);
if (code === 0) {
state.couponInfo = data;
}
}
onLoad((options) => {
//
if (!options.id) {
state.goodsInfo = null;
@ -249,12 +254,7 @@
});
// 2.
CouponApi.getCouponTemplateList(state.goodsId, 2, 10).then((res) => {
if (res.code !== 0) {
return;
}
state.couponInfo = res.data;
});
getCoupon();
// 3.
ActivityApi.getActivityListBySpuId(state.goodsId).then((res) => {

View File

@ -1,3 +1,4 @@
<!-- 商品详情 - 优惠劵领取 -->
<template>
<su-popup
:show="show"
@ -21,13 +22,11 @@
<template #default>
<button
class="ss-reset-button card-btn ss-flex ss-row-center ss-col-center"
:class="
item.get_status != 'can_get' && item.get_status != 'can_use' ? 'boder-btn' : ''
"
:class="!item.canTake ? 'boder-btn' : ''"
@click.stop="getBuy(item.id)"
:disabled="item.get_status != 'can_get' && item.get_status != 'can_use'"
:disabled="!item.canTake"
>
{{ item.get_status_text }}
{{ item.canTake ? '立即领取' : '已领取' }}
</button>
</template>
</s-coupon-list>
@ -38,6 +37,7 @@
</template>
<script setup>
import { computed, reactive } from 'vue';
const props = defineProps({
modelValue: {
type: Object,
@ -48,16 +48,17 @@
default: false,
},
});
const emits = defineEmits(['get', 'close']);
const state = reactive({
couponInfo: computed(() => props.modelValue),
currentValue: -1,
couponId: '',
couponInfo: computed(() => props.modelValue)
});
//
const getBuy = (id) => {
emits('get', id);
};
//
</script>
<style lang="scss" scoped>
.model-box {