From 1625b684412694851576dc2f2812b4d20c577803 Mon Sep 17 00:00:00 2001
From: xuxueyang <xuxy@fengyuntec.com>
Date: 星期二, 03 九月 2024 15:34:39 +0800
Subject: [PATCH] update 兑换券的(之后还有会员价格)

---
 sub_pages/customer/coupon/good-detail.vue         |  179 ++++++++++++
 sub_pages/customer/coupon/coupon-all.vue          |   49 --
 sub_pages/customer/coupon/coupon-self.vue         |   13 
 common/global.scss                                |    1 
 pages.json                                        |   20 +
 static/images/customer/coupon/icon-rule.png       |    0 
 sub_pages/customer/coupon/good-all.vue            |  355 +++++++++++++++++++++++++
 static/images/customer/coupon/good-point-icon.png |    0 
 static/images/customer/coupon/icon-point.png      |    0 
 /dev/null                                         |   22 -
 sub_pages/customer/coupon/coupon.scss             |   30 ++
 static/images/customer/coupon/good-top-bg.png     |    0 
 pages/order/order-detail.vue                      |    1 
 sub_pages/customer/coupon/good-self.vue           |  160 +++++++++++
 pages/user/supplier-user.vue                      |    2 
 15 files changed, 766 insertions(+), 66 deletions(-)

diff --git a/common/global.scss b/common/global.scss
index 0baa73e..2cddd3b 100644
--- a/common/global.scss
+++ b/common/global.scss
@@ -72,6 +72,7 @@
     height: 100;
     height: 100%;
     z-index: -1;
+	background-size: 100% 100%;
 }
 .component-popup_input_all{
 	margin: 0 auto;
diff --git a/pages.json b/pages.json
index d3ba1cd..6cb6d79 100644
--- a/pages.json
+++ b/pages.json
@@ -447,9 +447,10 @@
 					}
 				},
 				{
-					"path": "coupon/point-self",
+					"path": "coupon/good-self",
 					"style": {
-						"navigationBarTitleText": "我的兑换券"
+						"navigationBarTitleText": "我的兑换券",
+						"enablePullDownRefresh": true
 					}
 				},
 				{
@@ -457,6 +458,21 @@
 					"style": {
 						"navigationBarTitleText": "积分明细"
 					}
+				},
+				{
+					"path": "coupon/good-all",
+					"style": {
+						"navigationBarTitleText": "积分兑换",
+						"navigationStyle": "custom",
+						"enablePullDownRefresh": false
+					}
+				},
+				{
+					"path" : "coupon/good-detail",
+					"style" : 
+					{
+						"navigationBarTitleText" : "详情"
+					}
 				}
 				// #endif
 			]
diff --git a/pages/order/order-detail.vue b/pages/order/order-detail.vue
index a7e0920..4ff01fd 100644
--- a/pages/order/order-detail.vue
+++ b/pages/order/order-detail.vue
@@ -223,6 +223,7 @@
 								id: this.id,
 							}
 						})
+						
 						this.$message.hideLoading()
 						if (code === 0) {
 							//微信接口
diff --git a/pages/user/supplier-user.vue b/pages/user/supplier-user.vue
index f0c97da..bc63022 100644
--- a/pages/user/supplier-user.vue
+++ b/pages/user/supplier-user.vue
@@ -183,7 +183,7 @@
 						<view>优惠券</view>
 					</view>
 
-					<view class="service-icons" @click="goto('/sub_pages/customer/coupon/point-self',true)">
+					<view class="service-icons" @click="goto('/sub_pages/customer/coupon/good-self',true)">
 						<image src="../../static/images/customer/service/service-icon-9.png" class="t2 service-icon ">
 						</image>
 						<view>兑换券</view>
diff --git a/static/images/customer/coupon/good-point-icon.png b/static/images/customer/coupon/good-point-icon.png
new file mode 100644
index 0000000..9412986
--- /dev/null
+++ b/static/images/customer/coupon/good-point-icon.png
Binary files differ
diff --git a/static/images/customer/coupon/good-top-bg.png b/static/images/customer/coupon/good-top-bg.png
new file mode 100644
index 0000000..fdfb444
--- /dev/null
+++ b/static/images/customer/coupon/good-top-bg.png
Binary files differ
diff --git a/static/images/customer/coupon/icon-point.png b/static/images/customer/coupon/icon-point.png
new file mode 100644
index 0000000..460964a
--- /dev/null
+++ b/static/images/customer/coupon/icon-point.png
Binary files differ
diff --git a/static/images/customer/coupon/icon-rule.png b/static/images/customer/coupon/icon-rule.png
new file mode 100644
index 0000000..c709112
--- /dev/null
+++ b/static/images/customer/coupon/icon-rule.png
Binary files differ
diff --git a/sub_pages/customer/coupon/coupon-all.vue b/sub_pages/customer/coupon/coupon-all.vue
index 0b09762..f5c6d16 100644
--- a/sub_pages/customer/coupon/coupon-all.vue
+++ b/sub_pages/customer/coupon/coupon-all.vue
@@ -1,18 +1,22 @@
 <template>
 	<view class="coupon-container">
 		<view class="">
+			<no-data v-if="!list||list.length==0" style="width: 100%;"></no-data>
+
 			<view v-for="(item,index) of list" :key="index" class="coupont-item all">
 				<view class="flex container img100">
 					<view class="info-price">
-						<view class="price1">¥7.70</view>
-						<view class="price2">满¥100可用</view>
+						<view class="price1">
+							{{item.maxDiscountAmount?(`${item.maxDiscountAmount}折`):(`¥${item.couponDiscountValue}`)}}
+						</view>
+						<view class="price2">{{item.minOrderAmount?(`满¥${item.minOrderAmount}可用`):'无门槛'}}</view>
 					</view>
 					<view class="info flex1">
 						<view class="title">
-							七夕专属福利券
+							{{item.couponName||'-'}}
 						</view>
 						<view class="time">
-							有效期至2024-07-26 09:58:30
+							领取后{{item.usageTimeNum||''}}{{item.usageTimeTypeName||''}}有效
 						</view>
 						<view class="button" @click="getCoupon(item)">
 							立即领取
@@ -50,9 +54,10 @@
 				const {
 					code,
 					data
-				} = await this.$http.request('post', '/api/v2/coupon/point/exchange', {
+				} = await this.$http.request('post', '/api/v2/coupon/app/receive', {
 					data: {
-						couponId: item.id
+						couponId: item.id,
+						num: 1
 					}
 				})
 				if (code == 0) {
@@ -74,35 +79,5 @@
 <style lang="scss" scoped>
 	@import './coupon.scss';
 
-	.coupon-container {
-
-		.coupont-item.all {
-			margin-top: 20rpx;
-
-			.container {
-				.info {
-					.time {
-						margin-top: 0rpx;
-					}
-
-					.button {
-						width: 150rpx;
-						height: 46rpx;
-						// box-shadow: 0rpx 4rpx 16rpx 0rpx rgba(0,0,0,0.14);
-						border-radius: 24rpx;
-						border: 2rpx solid rgba(68, 119, 90, 1);
-						font-weight: 400;
-						font-size: 24rpx;
-						color: rgba(68, 119, 90, 1);
-						line-height: 46rpx;
-						text-align: center;
-						margin-top: 10rpx;
-					}
-				}
-			}
-		}
-
-
-
-	}
+	.coupon-container {}
 </style>
\ No newline at end of file
diff --git a/sub_pages/customer/coupon/coupon-self.vue b/sub_pages/customer/coupon/coupon-self.vue
index ab9131d..086df04 100644
--- a/sub_pages/customer/coupon/coupon-self.vue
+++ b/sub_pages/customer/coupon/coupon-self.vue
@@ -6,18 +6,22 @@
 			</top-tabs>
 		</view>
 		<view class="">
+			<no-data v-if="!list||list.length==0" style="width: 100%;"></no-data>
+			
 			<view v-for="(item,index) of list" :key="index" class="coupont-item" :class="[query.status]">
 				<view class="flex container img100">
 					<view class="info-price">
-						<view class="price1">¥7.70</view>
-						<view class="price2">满¥100可用</view>
+						<view class="price1">
+							{{item.maxDiscountAmount?(`${item.maxDiscountAmount}折`):(`¥${item.couponDiscountValue}`)}}
+						</view>
+						<view class="price2">{{item.minOrderAmount?(`满¥${item.minOrderAmount}可用`):'无门槛'}}</view>
 					</view>
 					<view class="info flex1">
 						<view class="title">
-							七夕专属福利券
+							{{item.couponName||'-'}}
 						</view>
 						<view class="time">
-							有效期至2024-07-26 09:58:30
+							有效期至{{item.usageEndDate||'-'}}
 						</view>
 					</view>
 				</view>
@@ -70,6 +74,7 @@
 
 		methods: {
 			changeTab(flg) {
+				this.flg = '' + flg
 				this.query.status = this.tabs[flg].status
 				this.listApi = '/api/v2/coupon/app' + `/mine/${this.query.status}/list`
 				this.refreshList()
diff --git a/sub_pages/customer/coupon/coupon.scss b/sub_pages/customer/coupon/coupon.scss
index 0d195e8..09cf692 100644
--- a/sub_pages/customer/coupon/coupon.scss
+++ b/sub_pages/customer/coupon/coupon.scss
@@ -96,4 +96,34 @@
 
 		}
  
+	}
+	// 列表页面
+	.coupont-item.all {
+		margin-top: 20rpx;
+	
+		.container {
+			.info {
+				.time {
+					margin-top: 0rpx;
+				}
+	
+				.button {
+					width: 150rpx;
+					height: 46rpx;
+					// box-shadow: 0rpx 4rpx 16rpx 0rpx rgba(0,0,0,0.14);
+					border-radius: 24rpx;
+					border: 2rpx solid rgba(68, 119, 90, 1);
+					font-weight: 400;
+					font-size: 24rpx;
+					color: rgba(68, 119, 90, 1);
+					line-height: 46rpx;
+					text-align: center;
+					margin-top: 10rpx;
+				}
+			}
+		}
+	}
+	// 兑换的页面,不需要tip
+	.coupont-item.exchange{
+		height: 220rpx;
 	}
\ No newline at end of file
diff --git a/sub_pages/customer/coupon/good-all.vue b/sub_pages/customer/coupon/good-all.vue
new file mode 100644
index 0000000..24d6818
--- /dev/null
+++ b/sub_pages/customer/coupon/good-all.vue
@@ -0,0 +1,355 @@
+<template>
+	<view class="good-list-container">
+		<view class="top-bg img100 relative" :style="{'padding-top':(StatusBar)+'px','line-height':CustomBar+'rpx' }">
+			<image class="component-bg" src="../../../static/images/customer/coupon/good-top-bg.png"
+				mode="scaleToFill" />
+
+			<view class="title">
+				<uni-icons class="icon" type="left" size="24"></uni-icons>
+				积分兑换
+			</view>
+			<view class="flex point-info">
+				<view class="point-record m-r-a">
+					<view class="text-center title">我的积分</view>
+					<view class="flex">
+						<image src="../../../static/images/customer/coupon/icon-point.png" class="point-icon">
+						</image>
+						1552
+						<uni-icons class="icon" type="right" size="32"></uni-icons>
+					</view>
+				</view>
+				<view class="m-l-a m-r-0 rule">
+					<view class="flex w-fit m-l-a m-r-15">
+						<view class="m-r-10">规则</view>
+						<image src="../../../static/images/customer/coupon/icon-rule.png" class="rule-icon">
+						</image>
+					</view>
+					<image class="good-point-icon" src="../../../static/images/customer/coupon/good-point-icon.png"
+						mode="scaleToFill" />
+				</view>
+			</view>
+		</view>
+		<view class="p10">
+			<top-tabs :tabs="tabs" :flg="flg" @change="changeTab" type="coupon">
+
+			</top-tabs>
+		</view>
+		<!-- 商品 -->
+		<view v-if="flg==0">
+			<view class="query-scores flex flex-wrap-normal p15">
+				<view class="item" v-for="(item,index) of scores" :key="index" @click="changeScore(item)"
+					:class="[(!item.min||query.pointLower==item.min)&&(!item.max || query.pointUpper==item.max)?'active':'']">
+					{{item.max?(item.min?`${item.min}~${item.max}`:`${item.max}以下`):`${item.min}以上`}}
+				</view>
+			</view>
+			<no-data v-if="!list||list.length==0" style="width: 100%;"></no-data>
+
+			<view class="good-container p15 flex">
+				<view v-for="(item,index) of list" :key="index" class="good-item" @click="toDetail(item)">
+					<image class="cover" :src="item.cover" :lazy-load="true" mode="scaleToFill">
+
+					</image>
+					<view class="title">
+						{{item.name}}
+					</view>
+					<view class="flex score-info">
+						<view><span class="score">{{item.point||'-'}}</span>积分</view>
+						<view class="button m-l-a m-r-0" @click.stop="exchange('good',item)">兑换</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		<!-- 优惠券 -->
+		<view v-if="flg==1" class="coupon-container">
+			<no-data v-if="!list||list.length==0" style="width: 100%;"></no-data>
+			<view v-for="(item,index) of list" :key="index" class="coupont-item all exchange">
+				<view class="flex container img100">
+					<view class="info-price">
+						<!-- 优惠券类型(COUPON_TYPE)满减和无门槛 -->
+						<view class="price1">
+							{{item.maxDiscountAmount?(`${item.maxDiscountAmount}折`):(`¥${item.couponDiscountValue}`)}}
+						</view>
+						<view class="price2">{{item.minOrderAmount?(`满¥${item.minOrderAmount}可用`):'无门槛'}}</view>
+					</view>
+					<view class="info flex1">
+						<view class="title">
+							{{item.couponName||'-'}}
+						</view>
+						<view class="time">
+							领取后{{item.usageTimeNum||''}}{{item.usageTimeTypeName||''}}有效
+						</view>
+						<view class="flex">
+							<view class="t-red">
+								{{item.point||'0'}}积分
+							</view>
+							<view class="button m-l-a m-r-0" @click="exchange('coupon',item)">
+								兑换
+							</view>
+						</view>
+					</view>
+				</view>
+
+			</view>
+		</view>
+
+	</view>
+</template>
+
+<script>
+	export default {
+		methods: {
+			changeTab(flg) {
+				this.flg = '' + flg
+				this.listApi = this.tabs[flg].api
+				this.refreshList()
+			},
+			async exchange(type, item) {
+				var api = ''
+				if (type == 'good') {
+					api = '/api/customer/point/goods/exchange'
+				}
+				if (type == 'coupon') {
+					api = '/api/v2/coupon/point/exchange'
+				}
+				await this.$message.confirm('确定兑换吗')
+				this.$message.showLoading()
+				const {
+					code,
+					data
+				} = await this.$http.request('post', api, {
+					data: {
+						couponId: item.id,
+						goodsId: item.id, //兼容2个
+					}
+				})
+				this.$message.hideLoading()
+				if (code == 0) {
+					this.$message.showToast('兑换成功')
+				}
+			},
+			toDetail(item) {
+				uni.navigateTo({
+					url: '/sub_pages/customer/coupon/good-detail?id=' + item.id
+				})
+			},
+			changeScore(item){
+				this.query.pointLower = item.min || undefined
+				this.query.pointUpper = item.max || undefined
+				this.refreshList()
+			}
+		},
+		data() {
+			return {
+				CustomBar: uni.getStorageSync('CustomBar'),
+				StatusBar: uni.getStorageSync('StatusBar'),
+				flg: 0,
+
+				tabs: [{
+						name: '商品',
+						api: '/api/customer/point/goods/list',
+
+					},
+					{
+						name: '优惠券',
+						api: '/api/v2/coupon/app/activy/list',
+
+					},
+				],
+				query: {
+					pointLower: 1001,
+					pointUpper: 3000
+				},
+				scores: [{
+						min: 0,
+						max: 1000
+					},
+					{
+						min: 1001,
+						max: 3000
+					},
+					{
+						min: 3001,
+						max: 5000
+					},
+					{
+						min: 5001,
+						max: 10000
+					},
+					{
+						min: 10001,
+						max: 0
+					},
+				]
+			}
+		},
+		onLoad() {
+			this.listApi = '/api/customer/point/goods/list'
+		},
+
+		onReachBottom() {
+			this.getMore()
+		},
+	}
+</script>
+
+<style lang="scss" scoped>
+	.good-list-container {
+		.good-container {
+			.good-item {
+				background: #FFFFFF;
+				border-radius: 12rpx;
+				width: 330rpx;
+				margin-bottom: 30rpx;
+
+				.cover {
+					width: 330rpx;
+					height: 330rpx;
+					background-size: 100% 100%;
+				}
+
+				.title {
+					padding-top: 18rpx;
+					padding-bottom: 18rpx;
+					font-weight: 600;
+					font-size: 32rpx;
+					color: #000000;
+					line-height: 44rpx;
+					text-align: center;
+				}
+
+				.score-info {
+
+					line-height: 50rpx;
+					font-weight: 400;
+					font-size: 24rpx;
+					color: #44775A;
+					padding-bottom: 28rpx;
+
+					.score {
+						font-weight: 600;
+						font-size: 36rpx;
+						color: #44775A;
+					}
+				}
+
+				.button {
+					width: 106rpx;
+					height: 46rpx;
+					border-radius: 24rpx;
+					border: 2rpx solid #44775A;
+					font-weight: 400;
+					font-size: 24rpx;
+					color: #44775A;
+				}
+			}
+
+			.good-item:nth-child(2n+1) {
+				margin-left: 0rpx;
+				margin-right: auto;
+			}
+
+			.good-item:nth-child(2n) {
+				margin-right: 0rpx;
+				margin-left: auto;
+			}
+		}
+
+		.query-scores {
+			overflow-x: scroll;
+			width: max-content;
+			.item {
+				padding-left: 16rpx;
+				padding-right: 16rpx;
+				text-align: center;
+				font-weight: 400;
+				font-size: 28rpx;
+				color: #333333;
+				line-height: 50rpx;
+				height: 50rpx;
+				border-radius: 26rpx;
+				// width: fit-content;
+				
+			}
+
+			.item.active {
+				background: #E1F0E7;
+				font-weight: 600;
+				color: #1A8B4C;
+			}
+		}
+
+		.top-bg {
+			padding: 32rpx;
+			padding-top: 40rpx;
+			height: 320rpx;
+			max-height: 320rpx;
+
+			.point-info {
+
+				.point-record {
+					// margin-left: 40rpx;
+					font-weight: 600;
+					font-size: 60rpx;
+					color: #44775A;
+					line-height: 84rpx;
+
+					.title {
+						font-weight: 400;
+						font-size: 32rpx;
+						color: #000000;
+						line-height: 44rpx;
+						margin-top: 40rpx;
+						margin-bottom: 20rpx;
+					}
+
+					.point-icon {
+						width: 42rpx;
+						height: 42rpx;
+						margin-top: 20rpx;
+						margin-right: 10rpx;
+						display: inline-block;
+						vertical-align: middle;
+					}
+				}
+
+				.rule {
+					font-weight: 400;
+					font-size: 24rpx;
+					color: #44775A;
+					line-height: 30rpx;
+
+					.good-point-icon {
+						width: 192rpx;
+						height: 162rpx;
+						margin-right: 120rpx;
+						margin-top: 10rpx;
+					}
+
+					.rule-icon {
+						width: 30rpx;
+						height: 30rpx;
+
+						display: inline-block;
+						vertical-align: middle;
+					}
+				}
+
+
+			}
+
+			.title {
+				text-align: center;
+				font-weight: 600;
+				font-size: 32rpx;
+				position: relative;
+
+				.icon {
+					position: absolute;
+					left: 20rpx;
+					z-index: 1;
+				}
+			}
+
+		}
+	}
+</style>
\ No newline at end of file
diff --git a/sub_pages/customer/coupon/good-detail.vue b/sub_pages/customer/coupon/good-detail.vue
new file mode 100644
index 0000000..47fb628
--- /dev/null
+++ b/sub_pages/customer/coupon/good-detail.vue
@@ -0,0 +1,179 @@
+<template>
+	<view class="travel-detail">
+		<view v-if="dto.id">
+			<!-- 标题、价格、时间、地点 -->
+			<view class="infos">
+				<view class="name">{{dto.name||dto.title||'暂无标题'}}</view>
+				<view class="flex score-info">
+					<view><span class="score">{{dto.point||'-'}}</span>积分</view>
+					<view class="m-l-a m-r-0">库存:{{dto.stock||'0'}}</view>
+				</view>
+			</view>
+			<view style="background: #F5F5F5;height: 24rpx;">
+
+			</view>
+			
+			<view class="bg-white p10">
+				<image :src="dto.cover" v-if="dto.cover" mode="aspectFit" class="m-t-8"
+					style="display: block;margin: 0 auto;" @click="previewImg(dto.cover)"></image>
+
+			</view>
+			<uni-swiper-dot class="uni-swiper-dot-box" :mode="'dot'" field="content"
+				v-if="dto.pictureList&&dto.pictureList.length>0">
+				<swiper class="swiper-box" :interval="10000" :circular="true" :current="0" :autoplay="true">
+					<swiper-item v-for="(url, index) in dto.pictureList" :key="index">
+						<view class="swiper-item" :class="'swiper-item' + index">
+							<image class="home-banner-image" mode="scaleToFill" @click="previewImg(url)" :src="url">
+							</image>
+						</view>
+					</swiper-item>
+				</swiper>
+			</uni-swiper-dot>
+
+			<view style="background: #F5F5F5;height: 24rpx;">
+
+			</view>
+
+			<view class="info-desc">
+				<view class="title">商品描述</view>
+				<view v-html="dto.description||'暂无'" class="rich" style="overflow: scroll;">
+
+				</view>
+			</view>
+
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				dto: {
+
+				},
+				id: ''
+			};
+		},
+		async onLoad(options) {
+			this.id = options.id || ''
+			await this.init()
+
+		},
+		async onPullDownRefresh() {
+			await this.init()
+			uni.stopPullDownRefresh()
+		},
+		methods: {
+			async init() {
+				this.$message.showLoading()
+				const {
+					data
+				} = await this.$http.request('get', '/api/pub/announcement/page/view?id=' + this.id, {
+
+				})
+				this.$message.hideLoading()
+				this.dto = {
+					...data
+				}
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.travel-detail {
+
+		.info-desc {
+			padding: 24rpx 30rpx;
+			background: #fff;
+
+			.title {
+				margin-bottom: 20rpx;
+				font-weight: 600;
+				font-size: 32rpx;
+				color: #000000;
+			}
+
+			/deep/ img {
+				max-width: 600rpx;
+
+			}
+		}
+
+
+
+		.infos {
+			padding: 24rpx 30rpx;
+			background: #fff;
+
+			.score-info {
+
+				line-height: 50rpx;
+				font-weight: 400;
+				font-size: 24rpx;
+				color: #44775A;
+				padding-bottom: 28rpx;
+
+				.score {
+					font-weight: 600;
+					font-size: 36rpx;
+					color: #44775A;
+				}
+			}
+
+
+			.name {
+				font-weight: 600;
+				font-size: 40rpx;
+				color: #000000;
+			}
+
+
+			.price {
+				font-weight: 600;
+				line-height: 72rpx;
+				font-size: 50rpx;
+				color: #000000;
+
+				.dot {
+					font-size: 40rpx;
+					line-height: 56rpx;
+				}
+			}
+
+			.status {
+				width: 132rpx;
+				height: 50rpx;
+				border-radius: 26rpx;
+				border: 2rpx solid #999999;
+				color: #999999;
+				line-height: 50rpx;
+				font-size: 24rpx;
+
+				text-align: center;
+				margin-left: 16rpx;
+			}
+
+			.status.A,
+			.status.J {
+				border: 2rpx solid #04BA97;
+				color: #04BA97;
+			}
+
+			.icon-loc {
+				width: 24rpx;
+				height: 30rpx;
+				background-size: 100% 100%;
+
+			}
+
+			.icon-clock {
+				width: 24rpx;
+				height: 26rpx;
+				background-size: 100% 100%;
+
+			}
+		}
+	}
+</style>
\ No newline at end of file
diff --git a/sub_pages/customer/coupon/good-self.vue b/sub_pages/customer/coupon/good-self.vue
new file mode 100644
index 0000000..2c981b9
--- /dev/null
+++ b/sub_pages/customer/coupon/good-self.vue
@@ -0,0 +1,160 @@
+<template>
+	<view class="coupon-container">
+		<view class="p10">
+			<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>
+
+			<view v-for="(item,index) of list" :key="index" class="coupont-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>
+					</view>
+					<view class="info flex1">
+						<view class="title">
+							{{item.name||''}}
+						</view>
+						<view class="time word-e">
+							{{item.description||''}}
+						</view>
+						<view class="button" @click="getPointGood(item)">
+							查看详情
+						</view>
+					</view>
+				</view>
+				<view class="tip">
+					<span class="t-red">*</span>此券每人限领1张。仅限用于花满芜鲜花交易平台鲜切花花款满额使用,不可与其他优惠同享、不可叠加使用
+				</view>
+			</view>
+		</view>
+		<view style="min-height: 130rpx;"></view>
+		<view class="bottom-button" @click="toGoodAll">前往兑换</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				flg: 0,
+
+				tabs: [{
+						name: '未使用',
+						status: 'A',
+						// unused
+					},
+					{
+						name: '已使用',
+						status: 'U',
+
+						// used
+					},
+					{
+						name: '已过期',
+						status: 'E',
+
+						// expired
+					},
+				],
+				query: {
+					status: 'A'
+				},
+				list: []
+			}
+		},
+		async onLoad() {
+			this.listApi = '/api/customer/point/goods/exchange/list'
+
+			this.getList()
+		},
+
+		methods: {
+			changeTab(flg) {
+				this.flg = '' + flg
+				this.query.status = this.tabs[flg].status
+				this.refreshList()
+			},
+			getPointGood(item) {
+				uni.navigateTo({
+					url: `/sub_pages/customer/coupon/good-detail?id=${item.id}`
+				})
+			},
+			toGoodAll() {
+				uni.navigateTo({
+					url: `/sub_pages/customer/coupon/good-all`
+				})
+			}
+		},
+		// async onShow() {
+		// 	if (this.sign['coupon']) {
+		// 		this.$store.dispatch('sign_clear', 'coupon');
+		// 		this.refreshList()
+		// 	}
+		// },
+		async onPullDownRefresh() {
+			await this.refreshList()
+			uni.stopPullDownRefresh()
+
+		},
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import './coupon.scss';
+
+	.coupon-container {
+		.coupont-item {
+			.container {
+				background-image: unset;
+
+				.info-price {
+					.cover {
+						width: 150rpx;
+						height: 150rpx;
+					}
+				}
+
+				.info {
+					.time {
+						margin-top: 0rpx;
+					}
+
+					.button {
+						width: 150rpx;
+						height: 46rpx;
+						// box-shadow: 0rpx 4rpx 16rpx 0rpx rgba(0,0,0,0.14);
+						border-radius: 24rpx;
+						border: 2rpx solid rgba(68, 119, 90, 1);
+						font-weight: 400;
+						font-size: 24rpx;
+						color: rgba(68, 119, 90, 1);
+						line-height: 46rpx;
+						text-align: center;
+						margin-top: 10rpx;
+					}
+				}
+			}
+		}
+
+
+
+		.bottom-button {
+			width: 690rpx;
+			height: 90rpx;
+			border-radius: 46rpx;
+			border: 2rpx solid #20613D;
+			position: fixed;
+			bottom: 30rpx;
+			left: 50%;
+			transform: translateX(-50%);
+			font-weight: 400;
+			font-size: 32rpx;
+			color: #20613D;
+			text-align: center;
+			line-height: 90rpx;
+		}
+	}
+</style>
\ No newline at end of file
diff --git a/sub_pages/customer/coupon/point-self.vue b/sub_pages/customer/coupon/point-self.vue
deleted file mode 100644
index 8183fd0..0000000
--- a/sub_pages/customer/coupon/point-self.vue
+++ /dev/null
@@ -1,22 +0,0 @@
-<template>
-	<view>
-		
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				
-			}
-		},
-		methods: {
-			
-		}
-	}
-</script>
-
-<style>
-
-</style>

--
Gitblit v1.9.3