feat: 整体页面优化,删除无用svg

This commit is contained in:
Blizzard
2026-02-14 08:32:47 +08:00
parent daea00ca60
commit cbbe82ef63
59 changed files with 1265 additions and 342 deletions
+34
View File
@@ -0,0 +1,34 @@
import request from '../../../utils/request';
Page({
data: {
favTab: 'all',
favorites: [],
filteredFavorites: []
},
onLoad() {
this.loadFavorites();
},
loadFavorites() {
// TODO: Call API
this.filterFavorites();
},
onFavTabChange(e) {
const val = e.currentTarget.dataset.value;
this.setData({ favTab: val }, () => {
this.filterFavorites();
});
},
filterFavorites() {
const { favorites, favTab } = this.data;
const filtered = favorites.filter(item => {
if (favTab === 'all') return true;
return item.type === favTab;
});
this.setData({ filteredFavorites: filtered });
}
});
+7
View File
@@ -0,0 +1,7 @@
{
"navigationBarTitleText": "我的收藏",
"usingComponents": {
"t-icon": "tdesign-miniprogram/icon/icon",
"t-image": "tdesign-miniprogram/image/image"
}
}
+27
View File
@@ -0,0 +1,27 @@
<view class="favorites-page">
<view class="category-filter">
<view class="filter-chip {{favTab === 'all' ? 'active' : ''}}" bindtap="onFavTabChange" data-value="all">全部</view>
<view class="filter-chip {{favTab === 'plant' ? 'active' : ''}}" bindtap="onFavTabChange" data-value="plant">植物</view>
<view class="filter-chip {{favTab === 'article' ? 'active' : ''}}" bindtap="onFavTabChange" data-value="article">文章</view>
</view>
<scroll-view scroll-y class="fav-scroll" enhanced show-scrollbar="{{false}}">
<view wx:if="{{filteredFavorites.length > 0}}" class="fav-grid">
<view wx:for="{{filteredFavorites}}" wx:key="id" class="fav-card">
<t-image src="{{item.image}}" mode="aspectFill" width="100%" height="240rpx" class="fav-img" />
<view class="fav-info">
<text class="fav-name">{{item.name}}</text>
<view class="fav-meta-row">
<t-icon name="{{item.type === 'plant' ? 'heart' : 'book'}}" size="28rpx" color="#90A4AE" />
<text class="fav-type">{{item.meta}}</text>
</view>
</view>
</view>
</view>
<view wx:else class="empty-state">
<t-icon name="star" size="80rpx" color="#E0E0E0" style="margin-bottom: 24rpx;" />
<text class="empty-text">暂无收藏内容</text>
</view>
<view style="height: 60rpx;"></view>
</scroll-view>
</view>
+98
View File
@@ -0,0 +1,98 @@
.favorites-page {
background: #F4F6F0;
height: 100vh;
padding: 24rpx;
box-sizing: border-box;
display: flex;
flex-direction: column;
overflow: hidden;
}
.category-filter {
display: flex;
gap: 16rpx;
margin-bottom: 24rpx;
}
.filter-chip {
padding: 12rpx 32rpx;
background: #fff;
border: 2rpx solid transparent;
border-radius: 40rpx;
font-size: 26rpx;
color: #6B7280;
transition: all 0.2s;
font-weight: 500;
}
.filter-chip.active {
background: #333;
color: #fff;
font-weight: 600;
box-shadow: 0 4rpx 12rpx rgba(0,0,0,0.1);
}
.fav-scroll {
flex: 1;
height: 0;
width: 100%;
}
.fav-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20rpx;
}
.fav-card {
background: white;
border-radius: 20rpx;
overflow: hidden;
box-shadow: 0 4rpx 12rpx rgba(0,0,0,0.03);
display: flex;
flex-direction: column;
}
.fav-img {
background: #f0f0f0;
}
.fav-info {
padding: 16rpx 20rpx;
}
.fav-name {
display: block;
font-size: 28rpx;
font-weight: 600;
color: #1F2937;
margin-bottom: 8rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.fav-meta-row {
display: flex;
align-items: center;
gap: 8rpx;
}
.fav-type {
font-size: 22rpx;
color: #9CA3AF;
}
.empty-state {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 120rpx 0;
}
.empty-text {
font-size: 28rpx;
color: #9CA3AF;
margin-top: 16rpx;
}