<template>
	<view class="page">
		<navbar title="书城"/>

		<view class="tabs-container">
			<scroll-view scroll-x class="tabs-scroll" show-scrollbar="false">
				<view class="tabs">
					<view class="tab-item" :class="{active: activeTab === 'ranking'}">
						<text>排行榜</text>
					</view>
					<view class="tab-item">
						<text>历史</text>
					</view>
					<view class="tab-item">
						<text>科幻</text>
					</view>
					<view class="tab-item">
						<text>异能</text>
					</view>
					<view class="tab-item">
						<text>逆袭</text>
					</view>
					<view class="tab-item">
						<text>娱乐圈</text>
					</view>
				</view>
			</scroll-view>
		</view>

		<view class="category">
			<view class="left-menu">
				<view class="menu-item active">
					<text>推荐榜</text>
				</view>
				<view class="menu-item">
					<text>完本榜</text>
				</view>
				<view class="menu-item">
					<text>阅读榜</text>
				</view>
				<view class="menu-item">
					<text>口碑榜</text>
				</view>
				<view class="menu-item">
					<text>新书榜</text>
				</view>
				<view class="menu-item">
					<text>高分榜</text>
				</view>
			</view>
			
			<view class="right-content">
				<view class="novel-list">
					<view class="novel-item" v-for="(item, index) in novelList" :key="index">
						<view class="rank-number" :class="{'top-rank': index < 3}">
							{{index + 1}}
						</view>
						<view class="novel-cover">
							<image :src="item.cover" mode="aspectFill"></image>
						</view>
						<view class="novel-info">
							<view class="novel-title">{{item.title}}</view>
							<view class="novel-tags">
								<text class="tag" v-for="(tag, tagIndex) in item.tags" :key="tagIndex">{{tag}}</text>
							</view>
							<view class="novel-author">{{item.author}}</view>
						</view>
						<view class="novel-status">
							<text>{{item.status}}</text>
						</view>
					</view>
				</view>
			</view>
		</view>

		<tabber select="category" />
	</view>
</template>

<script>
	import tabber from '@/components/base/tabbar.vue'

	export default {
		components: {
			tabber,
		},
		data() {
			return {
				activeTab: 'ranking',
				novelList: [
					{
						title: '网游之绝世萧尊',
						author: '星梦辰缘',
						cover: '/static/image/novel/cover1.jpg',
						tags: ['玄幻', '校园', '热血'],
						status: '完结'
					},
					{
						title: '网游：1级的我，偷窃神明',
						author: '我是解药猫',
						cover: '/static/image/novel/cover2.jpg',
						tags: ['玄幻', '校园', '热血'],
						status: '连载中'
					},
					{
						title: '全民网游：我有神级造物主',
						author: '我吃西红柿',
						cover: '/static/image/novel/cover3.jpg',
						tags: ['玄幻', '校园', '热血'],
						status: '完结'
					},
					{
						title: '潜伏传说的我，携西罗摩修',
						author: '清风明月',
						cover: '/static/image/novel/cover4.jpg',
						tags: ['玄幻', '校园', '热血'],
						status: '完结'
					},
					{
						title: '网游之一杆定乾坤',
						author: '香蕉流文',
						cover: '/static/image/novel/cover5.jpg',
						tags: ['玄幻', '校园', '热血'],
						status: '连载中'
					},
					{
						title: '网游之一杆定乾坤',
						author: '香蕉流文',
						cover: '/static/image/novel/cover5.jpg',
						tags: ['玄幻', '校园', '热血'],
						status: '连载中'
					}
				]
			}
		},
		methods: {
			changeTab(tab) {
				this.activeTab = tab;
			}
		}
	}
</script>

<style scoped lang="scss">
	.page {
		background-color: #f5f5f5;
	}
	
	.tabs-container {
		background-color: #fff;
		position: sticky;
		top: 0;
		z-index: 10;
	}
	
	.tabs-scroll {
		white-space: nowrap;
		width: 100%;
	}
	
	.tabs {
		display: flex;
		height: 80rpx;
		line-height: 80rpx;
		padding: 0 20rpx;
		
		.tab-item {
			padding: 0 20rpx;
			font-size: 28rpx;
			color: #666;
			
			&.active {
				color: #2b5cff;
				font-weight: bold;
				position: relative;
				
				&::after {
					content: '';
					position: absolute;
					bottom: 0;
					left: 50%;
					transform: translateX(-50%);
					width: 40rpx;
					height: 4rpx;
					background-color: #2b5cff;
				}
			}
		}
	}
	
	.category {
		display: flex;
		height: calc(100vh - 240rpx);
		
		.left-menu {
			width: 180rpx;
			background-color: #f5f5f5;
			
			.menu-item {
				height: 100rpx;
				line-height: 100rpx;
				text-align: center;
				font-size: 28rpx;
				color: #666;
				
				&.active {
					background-color: #fff;
					color: #2b5cff;
					font-weight: bold;
					position: relative;
					
					&::before {
						content: '';
						position: absolute;
						left: 0;
						top: 50%;
						transform: translateY(-50%);
						width: 6rpx;
						height: 36rpx;
						background-color: #2b5cff;
					}
				}
			}
		}
		
		.right-content {
			flex: 1;
			background-color: #fff;
			padding: 20rpx;
			overflow-y: auto;
			
			.novel-list {
				.novel-item {
					display: flex;
					align-items: center;
					padding: 20rpx 0;
					border-bottom: 1px solid #eee;
					
					.rank-number {
						width: 40rpx;
						text-align: center;
						font-size: 32rpx;
						color: #999;
						font-weight: bold;
						
						&.top-rank {
							color: #ff6b00;
						}
					}
					
					.novel-cover {
						width: 120rpx;
						height: 160rpx;
						margin: 0 20rpx;
						
						image {
							width: 100%;
							height: 100%;
							border-radius: 8rpx;
						}
					}
					
					.novel-info {
						flex: 1;
						
						.novel-title {
							font-size: 28rpx;
							font-weight: bold;
							color: #333;
							margin-bottom: 10rpx;
						}
						
						.novel-tags {
							display: flex;
							margin-bottom: 10rpx;
							
							.tag {
								font-size: 22rpx;
								color: #999;
								margin-right: 10rpx;
								
								&::before {
									content: '[';
								}
								
								&::after {
									content: ']';
								}
							}
						}
						
						.novel-author {
							font-size: 24rpx;
							color: #999;
						}
					}
					
					.novel-status {
						font-size: 24rpx;
						color: #67c23a;
					}
				}
			}
		}
	}
</style>