hookehuyr

feat: 优化收藏和知识库页面的滚动布局

- 收藏页面和知识库页面采用顶部筛选固定、列表区域独立滚动的结构
- 提升用户浏览和筛选体验,保持筛选区域可见性
- 更新 README.md 和 CHANGELOG.md 文档以反映页面优化
...@@ -78,6 +78,8 @@ src/ ...@@ -78,6 +78,8 @@ src/
78 78
79 - 计划书页面支持顶部搜索与标签固定,列表区域独立滚动,便于快速筛选和浏览 79 - 计划书页面支持顶部搜索与标签固定,列表区域独立滚动,便于快速筛选和浏览
80 - 资料列表页面支持顶部搜索与分类固定,列表区域独立滚动,便于批量浏览与筛选 80 - 资料列表页面支持顶部搜索与分类固定,列表区域独立滚动,便于批量浏览与筛选
81 +- 收藏页面支持顶部筛选固定,列表区域独立滚动
82 +- 知识库页面支持顶部筛选固定,列表区域独立滚动
81 - 资料列表、知识库、收藏、计划书页面统一使用 FilterTabs 组件进行横向筛选 83 - 资料列表、知识库、收藏、计划书页面统一使用 FilterTabs 组件进行横向筛选
82 84
83 ## ✅ 优化建议 85 ## ✅ 优化建议
......
1 +## [2026-01-31] - 优化知识库页面滚动结构
2 +
3 +### 优化
4 +- 知识库页面顶部筛选固定,列表区域独立滚动 (`pages/knowledge-base/index.vue`)
5 +
6 +---
7 +
8 +**详细信息**
9 +- **影响文件**: src/pages/knowledge-base/index.vue, README.md
10 +- **技术栈**: Vue 3, Taro, TailwindCSS
11 +- **测试状态**: pnpm lint(存在既有警告)
12 +- **备注**:
13 + - 顶部筛选保持可见,列表滑动更顺畅
14 +
15 +---
16 +
17 +## [2026-01-31] - 优化收藏页面滚动结构
18 +
19 +### 优化
20 +- 收藏页面顶部筛选固定,列表区域独立滚动 (`pages/favorites/index.vue`)
21 +
22 +---
23 +
24 +**详细信息**
25 +- **影响文件**: src/pages/favorites/index.vue, README.md
26 +- **技术栈**: Vue 3, Taro, TailwindCSS
27 +- **测试状态**: pnpm lint(存在既有警告)
28 +- **备注**:
29 + - 顶部筛选保持可见,列表滑动更顺畅
30 +
31 +---
32 +
1 ## [2026-01-31] - 优化计划书页面滚动与测试数据 33 ## [2026-01-31] - 优化计划书页面滚动与测试数据
2 34
3 ### 优化 35 ### 优化
......
1 <template> 1 <template>
2 - <view class="min-h-screen bg-gray-50 pb-[200rpx]"> 2 + <view class="h-screen bg-gray-50 flex flex-col">
3 - <!-- Header --> 3 + <view class="bg-gray-50">
4 - <NavHeader title="我的收藏" /> 4 + <NavHeader title="我的收藏" />
5 5
6 - <!-- Tabs Section --> 6 + <view class="bg-white mt-[2rpx] px-[24rpx] py-[20rpx]">
7 - <view class="bg-white mt-[2rpx] px-[24rpx] py-[20rpx]"> 7 + <FilterTabs
8 - <FilterTabs 8 + v-model="activeTab"
9 - v-model="activeTab" 9 + :tabs="tabs"
10 - :tabs="tabs" 10 + label-key="title"
11 - label-key="title" 11 + value-key="key"
12 - value-key="key" 12 + />
13 - /> 13 + </view>
14 </view> 14 </view>
15 15
16 - <!-- List Section --> 16 + <view class="flex-1 overflow-y-auto px-[24rpx] py-[24rpx] pb-[200rpx]">
17 - <view class="px-[24rpx] py-[24rpx]">
18 <view v-for="(item, index) in filteredList" :key="index" 17 <view v-for="(item, index) in filteredList" :key="index"
19 class="bg-white rounded-[24rpx] p-[24rpx] mb-[24rpx] shadow-sm"> 18 class="bg-white rounded-[24rpx] p-[24rpx] mb-[24rpx] shadow-sm">
20 19
...@@ -121,6 +120,22 @@ const list = ref([ ...@@ -121,6 +120,22 @@ const list = ref([
121 date: '2024-01-12', 120 date: '2024-01-12',
122 type: 'other', 121 type: 'other',
123 downloadUrl: '' 122 downloadUrl: ''
123 + },
124 + {
125 + id: 5,
126 + title: '重疾险产品知识详解.pptx',
127 + category: '产品知识',
128 + date: '2024-01-13',
129 + type: 'product',
130 + downloadUrl: 'https://cdn.ipadbiz.cn/manulife/document/%E8%82%A1%E5%88%A4%E5%90%88%E5%8F%8B%E7%94%A8%E7%9F%A5%E8%AF%86%E8%AF%B4%E6%98%8E20240112110417414.pptx'
131 + },
132 + {
133 + id: 6,
134 + title: '2024年最新保险政策解读.txt',
135 + category: '政策解读',
136 + date: '2024-01-12',
137 + type: 'other',
138 + downloadUrl: ''
124 } 139 }
125 ]) 140 ])
126 141
......
1 <template> 1 <template>
2 - <div class="min-h-screen bg-[#F9FAFB] pb-[calc(160rpx+env(safe-area-inset-bottom))]"> 2 + <div class="h-screen bg-[#F9FAFB] flex flex-col">
3 - <!-- Navigation Header --> 3 + <div class="bg-[#F9FAFB]">
4 - <NavHeader title="产品知识库" /> 4 + <!-- Navigation Header -->
5 - 5 + <NavHeader title="产品知识库" />
6 - <!-- Content Area -->
7 - <div class="px-[40rpx] mt-[40rpx]">
8 6
9 <!-- Filter Tabs --> 7 <!-- Filter Tabs -->
10 - <FilterTabs v-model="activeTab" :tabs="tabs" wrapper-class="mb-[40rpx]" /> 8 + <div class="px-[40rpx] mt-[40rpx]">
9 + <FilterTabs v-model="activeTab" :tabs="tabs" wrapper-class="mb-[40rpx]" />
10 + </div>
11 + </div>
11 12
13 + <div class="flex-1 overflow-y-auto px-[40rpx] pb-[calc(160rpx+env(safe-area-inset-bottom))]">
12 <!-- Section Title --> 14 <!-- Section Title -->
13 <div class="text-[#1F2937] text-[32rpx] font-bold mb-[24rpx]"> 15 <div class="text-[#1F2937] text-[32rpx] font-bold mb-[24rpx]">
14 {{ tabs[activeTab] }} 16 {{ tabs[activeTab] }}
......