From 7abdb24968bcb88f177851a30e41f282b9189a98 Mon Sep 17 00:00:00 2001
From: tj <1378534974@qq.com>
Date: 星期三, 21 五月 2025 19:11:47 +0800
Subject: [PATCH] 初步框架

---
 pages/home/home.vue |  142 ++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 132 insertions(+), 10 deletions(-)

diff --git a/pages/home/home.vue b/pages/home/home.vue
index 30eade4..0e20280 100644
--- a/pages/home/home.vue
+++ b/pages/home/home.vue
@@ -4,14 +4,39 @@
 		<view class="main-content">
 			<!-- 主要内容展示 -->
 			<HomeMain></HomeMain>
-			<!-- <view class="row">
-				<u-icon name="star" size="40" color="yellow" />
-				<text class="theme-text">内容精选</text>
-			</view> -->
-			<section-title title="内容精选" optitle="查看全部" goUrl="/pages/home/home-more" />
-			<trip-card v-for="(item, index) in tripCardList" :key="index" :tag="item.tag" :title="item.title"
-				:subtitle="item.subtitle" :score="item.score" :imageUrl="item.imageUrl" :detailUrl="item.detailUrl" />
-			
+			<!-- 	
+			<section-title-btn title="内容精选" optitle="查看全部" goUrl="/pages/home/home-more" /> -->
+			<view class="section">
+				<u-row>
+					<u-col span="6">
+						<view class="row">
+							<!-- <u-icon v-if="iconName" :name="iconName" :size="iconSize" :color="iconColor" /> -->
+							<text class="theme-text left-text">内容精选</text>
+						</view>
+					</u-col>
+					<u-col span="3"></u-col>
+					<u-col span="3">
+						<view class="row-right">
+							<u-icon name="/static/common/left-arrow-dark.png" size="80" @click="prevPage" />
+							<u-icon name="/static/common/right-arrow-dark.png" size="80" @click="nextPage" />
+						</view>
+					</u-col>
+				</u-row>
+			</view>
+
+			<view class="trip-card-swiper">
+				<swiper :current="currentPage" @change="onSwiperChange" circular style="min-height: 1500rpx;">
+					<swiper-item v-for="(group, pageIndex) in pagedTripCards" :key="pageIndex">
+						<trip-card v-for="(item, index) in group" :key="index" :tag="item.tag" :title="item.title"
+							:subtitle="item.subtitle" :score="item.score" :imageUrl="item.imageUrl"
+							:detailUrl="item.detailUrl" />
+					</swiper-item>
+				</swiper>
+			</view>
+
+			<!-- <trip-card v-for="(item, index) in visibleTripCards" :key="index" :tag="item.tag" :title="item.title"
+				:subtitle="item.subtitle" :score="item.score" :imageUrl="item.imageUrl" :detailUrl="item.detailUrl" /> -->
+
 			<section-title title="全球影视地标" optitle="查看全部" goUrl="/pages/home/home-more" />
 			<global-geo />
 
@@ -53,6 +78,22 @@
 				return state.currentInfo || {}
 			},
 		}),
+		visibleTripCards() {
+			const start = this.currentPage * this.pageSize;
+			const end = start + this.pageSize;
+			return this.tripCardList.slice(start, end);
+		},
+		totalPages() {
+			return Math.ceil(this.tripCardList.length / this.pageSize);
+		},
+		pagedTripCards() {
+			const pageSize = 3;
+			const pages = [];
+			for (let i = 0; i < this.tripCardList.length; i += pageSize) {
+				pages.push(this.tripCardList.slice(i, i + pageSize));
+			}
+			return pages;
+		},
 	},
 	components: {
 		HomeMain,
@@ -91,8 +132,34 @@
 					score: 4.7,
 					imageUrl: 'https://ai-public.mastergo.com/ai/img_res/f2262cda01488f5f44f6eabf63e5dc5a.jpg',
 					detailUrl: '/pages/detail?id=125'
+				},
+				{
+					tag: '史诗邮轮2',
+					title: '《权力的游戏》君临城朝圣之旅',
+					subtitle: '克罗地亚杜布罗夫尼克5日深度游',
+					score: 4.9,
+					imageUrl: 'https://ai-public.mastergo.com/ai/img_res/6a226f9e9652c51cd535c3490535dfeb.jpg',
+					detailUrl: '/pages/detail?id=123'
+				},
+				{
+					tag: '经典路线2',
+					title: '冰岛极光探索之旅',
+					subtitle: '冬季极地风光6日深度体验',
+					score: 4.8,
+					imageUrl: 'https://ai-public.mastergo.com/ai/img_res/1a65e5ff6452efb1e6db001fcefd0b42.jpg',
+					detailUrl: '/pages/detail?id=124'
+				},
+				{
+					tag: '文化探秘2',
+					title: '日本京都文化巡游',
+					subtitle: '探访古都名刹5日行程',
+					score: 4.7,
+					imageUrl: 'https://ai-public.mastergo.com/ai/img_res/f2262cda01488f5f44f6eabf63e5dc5a.jpg',
+					detailUrl: '/pages/detail?id=125'
 				}
 			],
+			currentPage: 0,
+			pageSize: 3,
 			cardList: [
 				{
 					image: 'https://ai-public.mastergo.com/ai/img_res/6a226f9e9652c51cd535c3490535dfeb.jpg',
@@ -149,7 +216,22 @@
 		this.theme = theme
 	},
 	methods: {
-
+		nextPage() {
+			if (this.currentPage < this.totalPages - 1) {
+				this.currentPage++;
+			}
+			// else{
+			// 	this.currentPage = 0;
+			// }
+		},
+		prevPage() {
+			if (this.currentPage > 0) {
+				this.currentPage--;
+			}
+		},
+		onSwiperChange(e) {
+			this.currentPage = e.detail.current;
+		},
 
 	}
 }
@@ -157,7 +239,7 @@
 
 <style scoped>
 .main-content {
-	margin: 40rpx;
+	margin: 30rpx;
 }
 
 .row {
@@ -166,4 +248,44 @@
 	margin-top: 20rpx;
 	margin-bottom: 20rpx;
 }
+</style>
+
+<style scoped lang="scss">
+.section {
+	// margin-top: 30rpx;
+
+	.space-between {
+		justify-content: space-between;
+	}
+
+	.row {
+		display: flex;
+		align-items: center;
+		padding: 20rpx 0;
+	}
+
+	.row-right {
+		display: flex;
+		align-items: center;
+		padding: 20rpx 0;
+		// justify-content: end;
+		justify-content: space-between;
+	}
+
+	.left-text {
+		font-size: 40rpx;
+		font-weight: bold;
+		color: var(--icon-color);
+		letter-spacing: 5rpx;
+	}
+
+	.right-text {
+		font-size: 25rpx;
+		margin-right: 10rpx;
+	}
+
+	.theme-text {
+		margin-left: 10rpx;
+	}
+}
 </style>
\ No newline at end of file

--
Gitblit v1.9.3