2.2 KiB
2.2 KiB
F2 · 应用壳(Tabs)与首页
分支:
task/f2-fe| worktree:G:\meida-app-f2| 只改:app/entry/src/main/ets/pages/HomePage.ets(填桩)、ets/components/f2/(自建) 先读《README-FE批次.md》,严格遵守。禁止 import 其它页面文件(规程铁律 2)。
目标
应用主壳:底部 Tabs(首页/报告/AI/我的)+ 首页内容 + 两个通用组件。
HomePage 要求
@Entry @Component struct HomePage+ 底部Tabs(TabContent × 4,barMode 固定四项、图标用 SymbolGlyph 或简单 Text、中文标签)- Tab1 首页(本页实现):
- 问候区("你好,美搭" + 日期)
- 功能入口卡 ×2:「生成我的形象报告」「AI 穿搭顾问」——点击
router.pushUrl({url:'pages/ReportCreatePage'})/'pages/ChatPage'(路径跳转,不 import) - 「今日额度」小卡:
GET /api/v1/quota?quota_key=agent_chat显示"AI 对话剩余 N 次"(失败静默显示占位"—",不打扰首页)
- Tab2 报告 / Tab4 我的:占位内容 + 居中按钮跳
pages/ReportCreatePage/pages/ProfilePage(真页面是独立路由页;后续迭代再决定嵌组件还是跳页,本批先跳页) - Tab3 AI:占位说明 + 跳
pages/ChatPage按钮- 备选方案:若你能在不 import ChatPage 文件的前提下用
builder占位则更好;做不到就跳页,别破铁律
- 备选方案:若你能在不 import ChatPage 文件的前提下用
- 返回键处理:Tab 页内再按返回应退出应用(onBackPress 返回 false 走默认)——不加复杂逻辑,注释说明即可
通用组件(ets/components/f2/)
LoadingView:居中 LoadingProgress + 可选文案;props 用@PropErrorView:错误图标/文案 +message+hint+ 「重试」按钮回调(onRetry?: () => void)——这是 NFR-UX-02「失败态有原因+下一步指引」的落地组件,其它任务后续会移用(目录带 f2 前缀,移动由协调者做)
验收
- 构建门禁
BUILD SUCCESSFUL - 四 Tab 可切换、三个跳转按钮路径正确(跳转目标页面是桩也没关系)
- ArkTS 铁律自查零违规;请求只走 ApiClient
- 单次提交:
feat(app): app shell tabs with home entries and common loading/error views(F2)