<template>
	<view class="content">
		<view class="rank_header" :style="{ 'background-image': `url(${domain}/static/images/rank_header.png)`}">
			<view class="cate_name">
				<text class="name line1">
					<text class="title_icon icon_left" :style="{ 'background-image': `url(${domain}/static/images/rank-title.png)`}"></text>
					{{(active == 0 || !cate_name) ? '热销TOP总榜单' : `${cate_name}热卖榜`}}
					<text class="title_icon icon_right" :style="{ 'background-image': `url(${domain}/static/images/rank-title.png)`}"></text>
				</text>
			</view>
			<view class="scroll_box">
				<scroll-view scroll-x="true" style="white-space: nowrap; vertical-align: middle;" show-scrollbar="false" 
				:scroll-left="tabLeft">
					<view class="scroll_item" 
						v-for="(item,index) in categoryList" 
						:key="item.store_category_id" 
						:id="`cate${item.store_category_id}`"
						:data-index="item.store_category_id"
						@click="checkActive(item,index,true)"
						:class="active == item.store_category_id ? 'scroll_item_active' : ''">{{item.cate_name}}
					</view>
				</scroll-view>
			</view>
		</view>
		<view class="rank_list pad30">
			<swiper :interval="interval" indicator-color="rgba(255,255,255,0.6)" :current="swiperCurrent" @change="swiperChange" :style="'height:'+swiperHeight+'px;'" >
				<block v-for="(item,index) in categoryList" :key="item.store_category_id">
					<swiper-item :item-id="`${item.store_category_id}`">
						<scroll-view scroll-y="true" :style="'height:'+swiperHeight+'px'" id="goods">
							<view class='item acea-row' v-for="(itm,idx) in spuTopList" :key="itm.spu_id" @click="godDetail(itm)">
								<view class="rank" :class="'rank'+idx"
								:style="{'color': idx<3 ? '#CE8F21' : '#986561'}">
								{{idx < 9 ? '0'+(idx+1) : idx+1}}
								</view>
								<view class='pictrue on'>
									<image :src='itm.image' class="on"></image>
								</view>
								<view class='goods-msg pad16 acea-row row-column row-between'>
									<text class="name line2">{{itm.store_name}}</text>
									<view v-if="itm.sales>0" class="list"><text class="iconfont icon-goumai"></text>{{itm.sales>10000 ? (itm.sales/10000)+'万' : itm.sales}}人买过</view>
									<view class="mt-18 acea-row row-bottom">
										<BaseMoney :money="itm.price" symbolSize="26" integerSize="36" decimalSize="28"
											incolor="E93323" weight />
										<BaseMoney :money="itm.ot_price" symbolSize="22" integerSize="22" decimalSize="22"
											incolor="999999" class="ml-16" line />
									</view>
								</view>
							</view>
						</scroll-view>
					</swiper-item>
				</block>
			</swiper>
			<!-- <view class='item acea-row' v-for="(item,index) in spuTopList" :key="item.spu_id" @click="godDetail(item)">
				<view class="rank" :class="'rank'+index"
				:style="{'color': index<3 ? '#CE8F21' : '#986561'}">
				{{index < 9 ? '0'+(index+1) : index+1}}
				</view>
				<view class='pictrue on'>
					<image :src='item.image' class="on"></image>
				</view>
				<view class='goods-msg pad16 acea-row row-column row-between'>
					<text class="name line2">{{item.store_name}}</text>
					<view v-if="item.sales>0" class="list"><text class="iconfont icon-goumai"></text>{{item.sales>10000 ? (item.sales/10000)+'万' : item.sales}}人买过</view>
					<view class="mt-18 acea-row row-bottom">
						<BaseMoney :money="item.price" symbolSize="26" integerSize="36" decimalSize="28"
							incolor="E93323" weight />
						<BaseMoney :money="item.ot_price" symbolSize="22" integerSize="22" decimalSize="22"
							incolor="999999" class="ml-16" line />
					</view>
				</view>
			</view> -->
		</view>
		<!--  -->
	</view>
</template>

<script>
	 
	import { spuTop,spuTopList } from '@/api/activity.js';
	import { HTTP_REQUEST_URL } from '@/config/app';
	export default {
		data() {
			return {
				categoryList: [{
					store_category_id: 0,
					cate_name: '总榜'
				}],
				cate_name: "",
				spuTopList: [],
				active: 0,
				pro_top_banner: 'https://zhongbang-1257983696.cos.ap-beijing.myqcloud.com/uploads/def/20220801/383c0026840f70a9b4e33a43c6bd3341.png',
				scrollInto: '',
				domain: HTTP_REQUEST_URL,
				tabClick: 0,
				tabLeft: 0,
				isLeft: 0, //导航栏下划线位置
				isWidth: 0, //每个导航栏占位
				windowHeight: 0,
				swiperHeight: 0,
				swiperCur: 0,
				circular: true,
				isScroll: false,
				interval: 3000,
				currentItemId: 0,
				swiperCurrent: 0,
			}
		},
		created() {
			var that = this;
			// 获取设备宽度
			uni.getSystemInfo({
				success(e) {
					that.isWidth = e.windowWidth / 6;
					that.windowHeight = e.windowHeight;
					// that.swiperHeight = that.windowHeight - 205
					that.$set(that, 'swiperHeight', that.windowHeight-150);
				}
			});
		},
		onLoad(option) {
			this.spuTop(option.cate_id || 0)
			if(option.cate_id){
				this.active = option.cate_id
			}
		},
		methods: {
			spuTop(cate_id) {
				spuTop().then(res => {
					this.categoryList = [...this.categoryList, ...res.data]
					this.cate_name = this.getCate(cate_id,this.categoryList) || ''
					this.$nextTick(() => {
						this.getSpuTopList(cate_id)
						this.active = cate_id && this.cate_name ? cate_id : 0
						this.scrollInto = `cate${cate_id}`;
						let tabLeft = (this.swiperCur - 2) * this.isWidth; //设置下划线位置
						this.$set(this, 'tabLeft', tabLeft);
					});
				})
			},
			getSpuTopList(cate_id) {
				cate_id = this.cate_name ? cate_id : 0
				spuTopList({
					cate_pid: cate_id
				}).then(res => {
					this.spuTopList = (res.data[0] && res.data[0]['list']) || []
				})
			},
			swiperChange(e) {
				let { current, source, currentItemId } = e.detail;
				// if(this.active){
				// 	if(current == 1){
				// 		current = this.swiperCur+1
				// 	}else if(current == 0){
				// 		current = this.swiperCur-1
				// 	}
				// 	currentItemId = this.categoryList[current]['store_category_id']
				// }
				if (source === 'autoplay' || source === 'touch') {
					this.active = currentItemId;
					this.swiperCur = current
					this.checkActive(this.categoryList[this.swiperCur],this.swiperCur,false)
					if (this.categoryList.length > 6) {
						var tempIndex = this.swiperCur - 2;
						tempIndex = tempIndex <= 0 ? 0 : tempIndex;
						let tabLeft = (this.swiperCur - 2) * this.isWidth; //设置下划线位置
						this.$nextTick(function() {
							this.$set(this, 'tabLeft', tabLeft);
						});
					}
				}
			},
			checkActive(item, index, isScroll) {
				this.active = item.store_category_id;
				this.cate_name = item.cate_name
				this.swiperCurrent = index;
				this.swiperCur = index
				this.isScroll = isScroll;
				this.tabClick = index; //设置导航点击了哪一个
				this.isLeft = index * this.isWidth; //设置下划线位置
				this.spuTopList = [];
				this.getSpuTopList(item.store_category_id)
			},
			// 去商品详情页
			godDetail(item) {
				uni.navigateTo({
					url: "/pages/goods_details/index?id=" + item.product_id
				})
			},
			// 获取第一次进来的默认分类名称
			getCate(id,arr){
				for (let i = 0; i < arr.length; i++) {
					if (arr[i].store_category_id == id) {
						this.swiperCur = i
						return arr[i]['cate_name']
					}
				}
			},
		}
	}
</script>

<style lang="scss" scoped>
	.content{
		background: #171717;
		min-height: 100vh;
	}
	.rank_header {
		background-size: cover;
		height: 270rpx;
		position: fixed;
		top: 0;
		left: 0;
		display: block;
		z-index: 9999;
		background-color: #171717;
		.cate_name{
			text-align: center;
			position: relative;
			top: 80rpx;
			.name{
				color: #FFE9BE;
				font-weight: bold;
				font-size: 44rpx;
				padding: 0 64rpx;
				position: relative;
				display: inline-block;
				.title_icon{
					content: "";
					display: inline-block;
					width: 38rpx;
					height: 58rpx;
					background-repeat: no-repeat;
					background-size: 100% 100%;
					position: absolute;
					top: 0;
					&.icon_left{
						left: 0;
					}
					&.icon_right{
						right: 0;
						transform: rotateY(180deg);
					}
				}	
			}
		}
	}
	.header {
		position: relative;
		z-index: 6;
		display: flex;
		align-items: center;
		padding-right: 34rpx;
		height: 43px;
		padding-left: 33rpx;
		.head-menu {
			display: -webkit-box;
			display: -webkit-flex;
			display: flex;
			-webkit-box-align: center;
			-webkit-align-items: center;
			align-items: center;
			height: 27px;
			width: 70px;
			border-radius: 13px;
			.icon-xiangzuo {
				font-size: 32rpx;
				color: #FFFFFF;
			}
			.iconfont {
				-webkit-box-flex: 1;
				-webkit-flex: 1;
				flex: 1;
				text-align: center;
				color: #fff;
				box-sizing: border-box;
				&.icon-xiangzuo {
					border-right: 1px solid #fff;
				}
			}
		}
	}
	.head-menu {
		display: flex;
		align-items: center;
		height: 54rpx;
		width: 140rpx;
		background: transparent;
		border: 1px solid rgba(151, 151, 151, 0.2);
		border-radius: 27rpx;
		position: relative;
		z-index: 9999;
		&:after {
			content: '';
			position: absolute;
			width: 1px;
			height: 26rpx;
			background-color: #EAEAEA;
			left: 50%;
			top: 50%;
			transform: translate(-50%, -50%);
		}
		.iconfont {
			flex: 1;
			text-align: center;
			color: #fff;
			box-sizing: border-box;
		}
	}
	.scroll_box {
		width: 750rpx;
		box-sizing: border-box;
		line-height: 50rpx;
		padding-left: 32rpx;
		margin-top: 140rpx;
	}
	.scroll_item {
		display: inline-block;
		font-size: 28rpx;
		color: #6D6D6D;	
		&:last-child {
			margin-right: 40rpx;
		}	
	}
	.scroll_item_active {
		font-weight: 500;
		position: relative;
		text-align: center;
		color: #fff;
		&::after{
			content: "";
			display: block;
			margin: 10rpx auto 0;
			width: 80%;
			height:4rpx;
			border-radius: 2rpx;
			background: #fff;
		}
	}
	.scroll_item~.scroll_item {
		margin-left: 40rpx;
	}
	.rank_list {
		padding-top: 270rpx;
		padding-bottom: 32rpx;
		.item {
			border-radius: 16rpx;
			background: #fff;
			margin-top: 30rpx;
			padding: 28rpx 30rpx 32rpx;
			position: relative;
			.rank {
				position: absolute;
				top: 0;
				left: 20rpx;
				width: 50rpx;
				height: 61rpx;
				display: flex;
				justify-content: center;
				line-height: 61rpx;
				font-size: 30rpx;
				z-index: 10;
				background-size: 100% 100%;
				background-image: url('@/pages/activity/static/images/rank_num.png');
				font-family: '黑体';
				font-weight: bold;
				&.rank0,&.rank1,&.rank2{
					background-image: url('@/pages/activity/static/images/rank.png');
				}
			}
			.name {
				width: 382rpx;
				height: 76rpx;
				line-height: 38rpx;
				color: #282828;
				font-weight: 500;
				font-size: 32rpx;
			}
		}
		.mt-18 {
			margin-top: 18rpx;
		}
		.ot_price {
			font-weight: 300;
			color: #6D6D6D;
			padding-left: 16rpx;
		}
		.goods-msg {
			flex: 1;
			margin-left: 20rpx;
			.list{				
				background: #FDF8EE;
				border-radius: 6rpx;
				line-height: 57rpx;				
				color: #666666;
				font-size: 26rpx;
				padding: 0 12rpx;
				.iconfont{
					color: #FFB31C;
					margin-right: 12rpx;
				}
			}
		}
		.pictrue {
			width: 240rpx;
			height: 240rpx;
			position: relative;
			flex: 1;
			image {
				width: 100%;
				height: 100%;
				border-radius: 12rpx 0 0 12rpx;
			}
		}
	}
</style>