|
|
- <template>
- <view class="page">
- <!-- 导航栏 -->
- <navbar title="优惠券" leftClick @leftClick="$utils.navigateBack" bgColor="#019245" color="#fff" />
-
- <!-- 标签页 -->
- <uv-sticky bgColor="#fff">
- <uv-tabs :list="tabs" @change="changeTab" :scrollable="false" lineColor="#019245"
- :activeStyle="{color: '#019245' }" lineWidth="80" lineHeight="6" :inactiveStyle="{color: '#333'}"
- :itemStyle="{height: '90rpx'}" />
- </uv-sticky>
-
- <!-- 优惠券列表 -->
- <view class="coupon-list">
- <template v-if="currentTab === 0">
- <coupon-item v-for="coupon in unusedCoupons" :key="coupon.id" :coupon="coupon" @use="useCoupon" />
- <uv-empty v-if="unusedCoupons.length == 0" text="暂无优惠卷" textSize="30rpx" iconSize="200rpx"
- style="padding-top: 100rpx;" icon="list" />
-
- </template>
-
- <template v-if="currentTab === 1">
- <coupon-item v-for="coupon in usedCoupons" :key="coupon.id" :coupon="coupon" />
- <uv-empty v-if="usedCoupons.length == 0" text="暂无优惠卷" textSize="30rpx" iconSize="200rpx"
- style="padding-top: 100rpx;" icon="list" />
- </template>
-
- <template v-if="currentTab === 2">
- <coupon-item v-for="coupon in expiredCoupons" :key="coupon.id" :coupon="coupon" />
- <uv-empty v-if="expiredCoupons.length == 0" text="暂无优惠卷" textSize="30rpx" iconSize="200rpx"
- style="padding-top: 100rpx;" icon="list" />
- </template>
- </view>
- </view>
- </template>
-
- <script>
- import navbar from '@/components/base/navbar.vue'
- import CouponItem from '@/components/coupon/CouponItem.vue'
- import { unusedCoupons, usedCoupons, expiredCoupons } from '@/static/js/mockCoupon.js'
-
- export default {
- components: {
- navbar,
- CouponItem
- },
- data() {
- return {
- tabs: [
- { name: '未使用' },
- { name: '已使用' },
- { name: '已过期' }
- ],
- currentTab: 0,
- unusedCoupons: [],
- usedCoupons: [],
- expiredCoupons: []
- }
- },
- onLoad() {
- // 从mock数据获取优惠券列表
- this.unusedCoupons = unusedCoupons
- this.usedCoupons = usedCoupons
- // 暂时 没有已过期的优惠卷
- // this.expiredCoupons = expiredCoupons
- this.getCoupon()
- },
- methods: {
- // 切换标签页
- changeTab(item) {
- this.currentTab = item.index
- },
-
- // 使用优惠券
- useCoupon(coupon) {
- uni.showModal({
- title: '提示',
- content: `确定使用面值${coupon.amount}元的优惠券吗?`,
- success: (res) => {
- // 模拟使用优惠券
- uni.showLoading({
- title: '使用中...'
- })
- setTimeout(() => {
- uni.hideLoading()
- uni.showToast({
- title: '使用成功',
- icon: 'success'
- })
- setTimeout(() => {
- if (res.confirm) {
- this.$utils.navigateTo('/pages/order/index')
- }
- }, 1000)
- }, 1000)
- }
- })
- },
- // 获取优惠卷
- getCoupon() {
- this.$api('queryCouponList', {
- pageNo: 1,
- pageSize: 10000
- }, res => {
- if (res.code === 200){
- console.log(res);
- }
- })
- }
- }
- }
- </script>
-
- <style lang="scss" scoped>
- .page {
- .tabs-container {
- .coupon-list {
- padding: 30rpx;
- }
-
- .empty-tip {
- text-align: center;
- color: $uni-color-third;
- padding: 100rpx 0;
- font-size: 28rpx;
- }
- }
- }
-
-
- </style>
|