From ee83c4a32e09a99a7c324d9aa592f2ae3950d094 Mon Sep 17 00:00:00 2001
From: xuxueyang <xuxy@fengyuntec.com>
Date: 星期三, 11 九月 2024 16:00:00 +0800
Subject: [PATCH] 1
---
sub_pages/customer/coupon/good-self.vue | 139 ++++++++++++++++++++++++++++++++++++++++------
1 files changed, 120 insertions(+), 19 deletions(-)
diff --git a/sub_pages/customer/coupon/good-self.vue b/sub_pages/customer/coupon/good-self.vue
index 2c981b9..440d59d 100644
--- a/sub_pages/customer/coupon/good-self.vue
+++ b/sub_pages/customer/coupon/good-self.vue
@@ -1,14 +1,15 @@
<template>
<view class="coupon-container">
- <view class="p10">
+ <view class="p10" v-if="source!=='shopping'">
<top-tabs :tabs="tabs" :flg="flg" @change="changeTab" type="coupon">
</top-tabs>
</view>
- <view class="">
- <no-data v-if="!list||list.length==0" style="width: 100%;"></no-data>
+ <no-data v-if="!list||list.length==0" style="width: 100%;"></no-data>
+
+ <view class="p10">
- <view v-for="(item,index) of list" :key="index" class="coupont-item" :class="[query.status]">
+ <view v-for="(item,index) of list" :key="index" class="good-item" :class="[query.status]">
<view class="flex container img100">
<view class="info-price">
<image :lazy-load="true" :src="item.cover" class="cover" mode="scaleToFill"></image>
@@ -16,27 +17,45 @@
<view class="info flex1">
<view class="title">
{{item.name||''}}
+ <radio :checked="isIngood(item)" @click.stop="updateSelectGood(item)" v-if="source==='shopping'" class="select-coupon"></radio>
+
</view>
<view class="time word-e">
{{item.description||''}}
</view>
- <view class="button" @click="getPointGood(item)">
+ <view class="button m-l-a m-r-10" @click="getPointGood(item)" v-if="source!=='shopping'">
查看详情
</view>
+ <!-- <view class="button" @click="updateSelectGood(item)" v-if="source=='shopping'">
+ {{isIngood(item)?'移除':'添加'}}
+ </view> -->
</view>
</view>
- <view class="tip">
+ <!-- <view class="tip">
<span class="t-red">*</span>此券每人限领1张。仅限用于花满芜鲜花交易平台鲜切花花款满额使用,不可与其他优惠同享、不可叠加使用
- </view>
+ </view> -->
</view>
</view>
- <view style="min-height: 130rpx;"></view>
- <view class="bottom-button" @click="toGoodAll">前往兑换</view>
+ <view style="min-height: 140rpx;" v-if="source=='shopping'"></view>
+ <view class="bottom-button" @click="backpage()" v-if="source=='shopping'">返回订单结算</view>
+
+ <!-- <view class="bottom-button" @click="toGoodAll">前往兑换</view> -->
</view>
</template>
<script>
+ import {
+ mapState
+ } from 'vuex'
export default {
+ computed: {
+ ...mapState({
+ cache_goods: state => {
+ return state.cache.goods || []
+ },
+ }),
+ },
+
data() {
return {
flg: 0,
@@ -62,16 +81,68 @@
query: {
status: 'A'
},
- list: []
+ list: [],
+ source: ''
+
}
},
- async onLoad() {
- this.listApi = '/api/customer/point/goods/exchange/list'
+ onReachBottom() {
+ this.getMore()
+ },
+ async onLoad(options) {
+ if (options.source) {
+ this.source = options.source || ''
+ }
+ if (this.source === 'shopping') {
+ //只展示可用的
+ this.page.size = 100
+ this.listApi = '/api/customer/point/goods/exchange/list'
+ } else {
+ this.listApi = '/api/customer/point/goods/exchange/list'
+ }
this.getList()
},
methods: {
+ isIngood(item) {
+ for (var tmp of this.cache_goods) {
+ if (tmp.id == item.id) {
+ return true
+ }
+ }
+
+ return false
+ },
+ async updateSelectGood(item) {
+ var has = false
+ for (var tmp of this.cache_goods) {
+ if (tmp.id == item.id) {
+ has = true
+ break
+ }
+ }
+ var arr = []
+
+ if (has) {
+ //移除
+ var arr = []
+ for (var tmp of this.cache_goods) {
+ if (tmp.id == item.id) {} else {
+ arr.push(tmp)
+ }
+ }
+ } else {
+ //添加
+ for (var tmp of this.cache_goods) {
+ arr.push(tmp)
+ }
+ arr.push(item)
+ }
+ await this.$store.dispatch('cache_goods_select', arr)
+ this.$forceUpdate()
+
+ },
changeTab(flg) {
this.flg = '' + flg
this.query.status = this.tabs[flg].status
@@ -79,7 +150,7 @@
},
getPointGood(item) {
uni.navigateTo({
- url: `/sub_pages/customer/coupon/good-detail?id=${item.id}`
+ url: `/sub_pages/customer/coupon/good-detail?id=${item.goodsId}`
})
},
toGoodAll() {
@@ -106,10 +177,12 @@
@import './coupon.scss';
.coupon-container {
- .coupont-item {
+ .good-item {
+ height: unset;
+ padding: 20rpx;
+ margin-top: 0rpx;
.container {
- background-image: unset;
-
+ background-color: #fff;
.info-price {
.cover {
width: 150rpx;
@@ -118,9 +191,33 @@
}
.info {
- .time {
- margin-top: 0rpx;
+ margin-left: 20rpx;
+ position: relative;
+ .title {
+ font-weight: 600;
+ font-size: 36rpx;
+ color: #333333;
+ line-height: 60rpx;
+ text-align: left;
+ position: relative;
+ .select-coupon{
+ position: absolute;
+ right: 10rpx;
+ top: -6rpx;
+ }
}
+
+ .time {
+ font-weight: 400;
+ font-size: 28rpx;
+ color: #666666;
+ line-height: 40rpx;
+ text-align: left;
+ margin-top: 10rpx;
+ word-break: break-all;
+ }
+
+
.button {
width: 150rpx;
@@ -133,7 +230,10 @@
color: rgba(68, 119, 90, 1);
line-height: 46rpx;
text-align: center;
- margin-top: 10rpx;
+ // margin-top: 10rpx;
+ position: absolute;
+ right: 10rpx;
+ bottom: 20rpx;
}
}
}
@@ -155,6 +255,7 @@
color: #20613D;
text-align: center;
line-height: 90rpx;
+ background-color: #fff;
}
}
</style>
\ No newline at end of file
--
Gitblit v1.9.3