# 稻城亚丁小程序 · 功能清单 > 技术栈:UniApp(Vue 3)。目录内 `uniapp` 与 `uniapp_副本` 为同源结构,功能一致时可视为同一套代码的备份。 ## 全局与导航 - 应用名:稻城亚丁;全局导航栏样式见 `pages.json`。 - 底部 Tab:**首页**、**上传**、**我的**(自定义 `ImageTabBar` + 隐藏原生 Tab 的配合逻辑)。 - 二级页:我的作品、个人资料、作品详情、景点地图、管理后台。 --- ## 首页 `pages/home/home` - 顶部轮播 Banner(多图、标题/副标题)。 - **搜索**:按关键词过滤作品(文案匹配作品、地点等)。 - **筛选**(`FilterBar`) - 时间:全部 / 今天 / 本周 / 本月 / 今年 - 作品类别:多选(雪山、湖泊、草甸、寺庙、藏文化等) - 点赞量:不限 / 从高到低 / 从低到高 - 筛选面板展开时锁定页面滚动(`page-meta` + H5 `overflow` 兜底)。 - **下拉刷新**:重置搜索与筛选条件,并收起筛选面板。 - **星空集**:瀑布流展示作品卡片(`PhotoCard`)。 - **星空榜**:按获赞排序的榜单(不受筛选中「点赞量」选项影响)。 - 卡片:展示地点角标、标签、作者、点赞;点击进入作品详情;卡片内可点赞。 --- ## 上传 `pages/upload/upload` - 作品图片:最多 **9 张**,相册或相机,可删除单张。 - **作品标题**(必填,限 10 字)。 - **作品描述**(必填,限 100 字,带字数统计)。 - **作品类别**(必填,多选):雪山、湖泊、草甸、寺庙、藏文化、其他。 - **拍摄日期**(选填,日期选择器)。 - 提示:发布后进入审核流程。 - 提交校验通过后 Toast,并切换到「我的」Tab。 --- ## 我的 `pages/user/user` - 顶部个人区域:背景图、头像(或昵称首字)、昵称、简介文案。 - 统计:**作品数**、**获赞数**。 - Tab1 **我的作品**:网格缩略图、审核状态(已通过 / 审核中)、已通过作品显示赞数;「查看更多」进入我的作品列表页。 - Tab2 **电子证书**:证书列表展示(演示数据)。 - **下载证书**:条件解锁(10 张作品 + 100 赞);解锁后可打开证书弹窗并下载。 - **下载攻略**:条件解锁(5 张作品);解锁后可预览地图类攻略并下载。 - **我的资料**:跳转个人资料编辑页。 --- ## 我的作品 `pages/my-works/my-works` - 列表:封面、标题、地点、发布时间、审核状态、赞数(已通过时)。 - 点击条目进入 **作品详情**。 - 无作品时空状态引导去上传。 --- ## 个人资料 `pages/user-profile/user-profile` - 编辑:**头像**、**名字**、**简介**、**性别**。 - 弹窗表单编辑名字 / 简介等。 - 数据持久化:`utils/userProfileStorage.ts`(本地存储)。 --- ## 作品详情 `pages/photo-detail/photo-detail` - 大图、作者信息、发布日期。 - **点赞**(作者行右侧,带点赞数)。 - 标题、标签、正文描述、拍摄地点。 - **EXIF**:相机、镜头、拍摄参数(演示/构造数据)。 - **分享**:小程序分享能力(`onShareAppMessage`)。 - 自定义顶栏:返回、分享。 --- ## 景点地图 `pages/map/map` - 静态景区示意图 + 拍摄点 **锚点**(显示该点作品数量)。 - 选中锚点:底部/叠加信息卡片(缩略图、名称、说明、作品数、「查看」回首页逻辑)。 - **热门拍摄地点**列表:与地图联动选中,含经纬度展示。 - *说明:页面已在 `pages.json` 注册;若需入口,需在其它页配置 `navigateTo`。* --- ## 管理后台 `pages/admin/admin` - 统计:待审核数量、已通过数量、总浏览(演示)。 - Tab **待审核**:列表展示待审作品,**通过** / **拒绝**。 - Tab **已通过**:列表展示;**上移** / **下移** 排序;**推荐**开关。 - 使用本地图与 Mock 数据结构。 --- ## 组件与工具(摘要) | 路径 | 作用 | |------|------| | `components/FilterBar.vue` | 筛选触发器、遮罩、面板与条件汇总 | | `components/PhotoCard.vue` | 作品卡片、点赞、进详情 | | `components/ImageTabBar.vue` | 自定义底部 Tab | | `utils/filterApply.ts` / `types/filter.ts` | 筛选状态与应用逻辑 | | `utils/filterLabels.ts` | 筛选文案 | | `data/gallery.ts` / `data/userWorks.ts` / `data/photo-detail.ts` | 演示数据 | | `composables/useHideNativeTabBar.ts` | 隐藏原生 TabBar | --- *导出日期:2026-04-02*