feat: 优化收藏和知识库页面的滚动布局
- 收藏页面和知识库页面采用顶部筛选固定、列表区域独立滚动的结构 - 提升用户浏览和筛选体验,保持筛选区域可见性 - 更新 README.md 和 CHANGELOG.md 文档以反映页面优化
Showing
4 changed files
with
71 additions
and
20 deletions
| ... | @@ -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] }} | ... | ... |
-
Please register or login to post a comment