This commit is contained in:
2026-01-23 16:47:05 +08:00
parent 73498128dd
commit b634c762b3
15 changed files with 13273 additions and 3019 deletions

View File

@@ -13,9 +13,11 @@
<view class="nav-icons">
<view class="icon-item" @click="navigateToMessages">
<text class="icon">💬</text>
<text v-if="unreadMessageCount > 0" class="message-badge">{{ unreadMessageCount }}</text>
</view>
<view class="icon-item" @click="navigateToCart">
<text class="icon">🛒</text>
<text v-if="cartCount > 0" class="cart-badge">{{ cartCount }}</text>
</view>
</view>
</view>
@@ -107,35 +109,12 @@
<view class="action-icon brand">🏷️</view>
<text class="action-text">品牌特卖</text>
</view>
<view class="action-item" @click="navigateToGroupBuy">
<view class="action-icon group">👥</view>
<text class="action-text">拼团购</text>
</view>
</view>
<!-- 限时秒杀 -->
<view class="flash-sale-section">
<view class="section-header">
<view class="header-content">
<view class="title-with-icon">
<text class="flash-icon">⚡</text>
<text class="section-title">限时秒杀</text>
</view>
<view class="countdown-wrapper">
<text class="countdown-label">距结束</text>
<view class="time-box">
<text class="time">{{ countdown.hours }}</text>
<text class="colon">:</text>
<text class="time">{{ countdown.minutes }}</text>
<text class="colon">:</text>
<text class="time">{{ countdown.seconds }}</text>
</view>
</view>
<view class="more-link" @click="navigateToFlashSale">
<text>更多</text>
<text class="arrow"></text>
</view>
</view>
</view>
<!-- 限时秒杀商品网格 -->
@@ -175,16 +154,6 @@
<text class="recommend-icon">❤️</text>
<text class="section-title">为你推荐</text>
</view>
<view class="sort-options">
<text
v-for="option in sortOptions"
:key="option.id"
:class="['sort-option', { active: activeSort === option.id }]"
@click="switchSort(option.id)"
>
{{ option.name }}
</text>
</view>
</view>
<!-- 瀑布流容器 -->
@@ -301,6 +270,8 @@ const activeSort = ref<string>('recommend')
const statusBarHeight = ref<number>(0)
const scrollViewHeight = ref<number>(0)
const scrollLeft = ref<number>(0)
const cartCount = ref<number>(0)
const unreadMessageCount = ref<number>(3)
// 倒计时数据
const countdown = reactive({
@@ -548,6 +519,9 @@ onMounted(() => {
// 加载数据
loadMockData()
setupCountdown()
// 模拟获取购物车数量和未读消息数
cartCount.value = Math.floor(Math.random() * 5) + 1
})
onUnmounted(() => {
@@ -659,7 +633,7 @@ const loadMore = () => {
}
}
// 导航函数
// 导航函数 - 修改消息为跳转到消息tab页
const navigateToSearch = () => uni.navigateTo({ url: '/pages/mall/consumer/search' })
const navigateToCategory = (category?: any) => {
if (category) {
@@ -672,7 +646,7 @@ const navigateToProduct = (product: any) => {
uni.navigateTo({ url: `/pages/mall/consumer/product-detail?id=${product.id}` })
}
const navigateToCoupons = () => uni.navigateTo({ url: '/pages/mall/consumer/coupons' })
const navigateToMessages = () => uni.navigateTo({ url: '/pages/mall/consumer/messages' })
const navigateToMessages = () => uni.switchTab({ url: '/pages/mall/consumer/messages' })
const navigateToFlashSale = () => uni.navigateTo({ url: '/pages/mall/consumer/flash-sale' })
const navigateToBrand = () => uni.navigateTo({ url: '/pages/mall/consumer/brand' })
const navigateToCart = () => uni.switchTab({ url: '/pages/mall/consumer/cart' })
@@ -757,12 +731,28 @@ const navigateToGroupBuy = () => uni.navigateTo({ url: '/pages/mall/consumer/gro
justify-content: center;
width: 30px;
height: 30px;
position: relative;
}
.icon {
font-size: 20px;
}
.message-badge, .cart-badge {
position: absolute;
top: -5px;
right: -5px;
background: #ff3b30;
color: white;
font-size: 10px;
width: 16px;
height: 16px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
}
/* 主内容区 */
.main-content {
background: #f5f5f5;