<template>
	<view class="Coupon">
		<!-- 分类 -->
		<view class="scroll-top">
			<scroll-view class="scroll-view_H" scroll-x="true" :scroll-into-view='"nav"+selectNavId'
				scroll-with-animation="true">
				<view v-for="(item,index) in navList" :key="index" :id="'nav'+item.id" @click="selectNav(item.id)"
					:class="['scroll-view-item_H',selectNavId === item.id ?'scroll-view-item_H_selected':'']">
					{{item.name}}
					<block v-if='index === 0'>({{count.all}})</block>
					<block v-if='index === 1'>({{count.services}})</block>
					<block v-if='index === 2'>({{count.reductions}})</block>
					<block v-if='index === 3'>({{count.exchanges}})</block>
				</view>
			</scroll-view>
			<scroll-view class="scroll-view_H-1" scroll-x="true" :scroll-into-view='"nav"+selectCategoryId'
				scroll-with-animation="true">
				<view v-for="(item,index) in categroyList" :key="index" :id="'nav'+item.id"
					@click="selectCategory(item.id)"
					:class="['scroll-view-item_H-1',selectCategoryId === item.id ?'scroll-view-item_H_selected-1':'']">
					{{item.name}}
				</view>
			</scroll-view>
		</view>

		<!-- 有优惠券列表 -->
		<view class="coupon-content">
			<couponTemplate v-for="(item,index) in lists" :key='index' :item="{...item}" :action="actions" />
		</view>

		<!-- 没有优惠券列表 -->
		<no-list v-if="lists.length === 0" name='no-counpon' :txt="showTxt" />

		<!-- <u-toast ref="uToast" /> -->
		<u-toast ref="uToast" />

	</view>
</template>

<script>
	import {
		myCoupon
	} from '@/apis/interfaces/coupon'
	import couponTemplate from '@/components/coupon-template/coupon-template-1'
	export default {
		data() {
			return {
				actions: {
					name: '去使用',
					type: 'toUsed'
				},
				lists:[],
				count:{
					all:0,
					services:0,
					reductions:0,
					exchanges:0,
				},
				navList: [{
						id: '',
						name: '全部'
					}, {
						id: '1',
						name: '服务券'
					},
					{
						id: '2',
						name: '代金券'
					},
					{
						id: '3',
						name: '提货券'
					}
				],
				categroyList: [{
						id: '4',
						name: '新到'
					},
					{
						id: '5',
						name: '即将到期'
					},
					{
						id: '1',
						name: '待使用'
					}, {
						id: '2',
						name: '已使用'
					}, {
						id: '3',
						name: '已过期'
					}
				],
				selectCategoryId: '', // 默认选择分类 默认第一个
				selectNavId: '',
				showTxt: '没有任何优惠券哦~',
			};
		},
		components: {
			couponTemplate
		},
		onLoad(e) {
			this.getMyCoupon()
		},
		onShow() {
			if (wx.getStorageSync('refresh')) {
				this.lists = []
				this.getMyCoupon()
			}
		},
		onPullDownRefresh() {
			this.lists = []
			this.getMyCoupon()
		},
		methods: {
			// 优惠券列表
			getMyCoupon() {
				let data = {
					type: this.selectNavId
				}
				if(this.selectCategoryId==='4' || this.selectCategoryId==='5'){
					data.status = ''
					if(this.selectCategoryId === '4'){
						data.time = 'new'
					}else{
						data.time = 'expire'
					}
				}else{
					data.status = this.selectCategoryId
				}
				console.log(data)
				myCoupon(data).then(res => {
					console.log(res)
					this.lists = res.lists
					this.count = res.count
					uni.stopPullDownRefresh()
					wx.setStorageSync('refresh', false)
				}).catch(err => {
					this.$refs.uToast.show({
						title: err.message,
						duration: 3000
					})
				})
			},
			// 切换商品分类
			selectNav(id) {
				console.log(id)
				this.selectNavId = id
				this.getMyCoupon()
			},
			selectCategory(id) {
				console.log(id)
				this.selectCategoryId = id
				this.getMyCoupon()
			}
		}
	}
</script>

<style lang="scss" scoped>
	.Coupon {
		width: 100%;
		min-height: 100vh;
		box-sizing: border-box;
		padding-bottom: 20rpx;
		background-color: #F7F7F7;

		.coupon-nav {
			display: flex;
			flex-direction: row;
			align-items: center;
			justify-content: space-around;
			box-sizing: border-box;
			background-color: #fff;
			padding: 30rpx 60rpx 0 60rpx;
			color: #cacaca;

			.nav-item {
				padding: 20rpx 30rpx 30rpx 30rpx;
				border-bottom: solid 4rpx #fff;
				font-size: 36rpx;
				font-weight: bold;
			}

			.nav-item-select {
				border-bottom: solid 6rpx $main-color;
				color: $main-color;
			}
		}

		.scroll-top {
			position: sticky;
			top: 0;
			z-index: 1000;

			.scroll-view_H {
				display: flex;
				flex-direction: row;
				align-items: center;
				justify-content: flex-start;
				box-sizing: border-box;
				white-space: nowrap;
				width: 100%;
				padding: 30rpx 30rpx 0 30rpx;
				background-color: #fff;

				.scroll-view-item_H {
					margin-right: 60rpx;
					padding: 20rpx 0 40rpx 0;
					// height: 100rpx;
					display: inline-block;
					min-width: 120rpx;
					font-size: 28rpx;
					border-bottom: #fff;
					background-color: #fff;
					transition: .1s;
					text-align: center;
				}

				.scroll-view-item_H_selected {
					// border-bottom: solid $main-color 4rpx;
					color: $main-color;
					font-weight: bold;
					// font-size: 36rpx;
					// transition: .3s;
					text-shadow: 6rpx 8rpx 30rpx rgba($color: $main-color, $alpha: .5);
					position: relative;

					&:after {
						// content: '';
						// position: absolute;
						// bottom: 10rpx;
						// left: 0;
						// height: 8rpx;
						// width: 100%;
						// background-color: $main-color;
					}
				}
			}

			.scroll-view_H-1 {
				display: flex;
				flex-direction: row;
				align-items: center;
				justify-content: flex-start;
				box-sizing: border-box;
				white-space: nowrap;
				width: 100%;
				padding: 0 30rpx 30rpx 30rpx;
				background-color: #fff;
				// position: sticky;
				// top: 100rpx;
				// z-index: 1000;

				.scroll-view-item_H-1 {
					display: inline-block;
					min-width: 120rpx;
					font-size: 24rpx;
					border-bottom: #fff;
					background-color: #f7f7f7;
					margin-left: 20rpx;
					padding: 10rpx 30rpx;
					text-align: center;
					border-radius: 40rpx;
				}

				.scroll-view-item_H_selected-1 {
					// border-bottom: solid $main-color 4rpx;
					color: #fff;
					font-weight: bold;
					background-image: linear-gradient(to left, $main-color, $main-color-light);
					// font-size: 36rpx;
					// transition: .3s;
					// text-shadow: 6rpx 8rpx 30rpx rgba($color: $main-color, $alpha: .5);
					position: relative;

					&:after {
						// content: '';
						// position: absolute;
						// bottom: 10rpx;
						// left: 0;
						// height: 8rpx;
						// width: 100%;
						// background-color: $main-color;
					}
				}
			}

		}

	}
</style>
