1.8 KiB
1.8 KiB
F4 · AI 穿搭对话页
分支:
task/f4-fe| worktree:G:\meida-app-f4| 只改:pages/ChatPage.ets(填桩)、ets/components/f4/(自建) 先读《README-FE批次.md》,严格遵守(chat 响应结构见其 §4)。
ChatPage 要求
- 消息列表:
@State messages: ChatMsg[](本地内存态,V1 不做会话持久化——后端 ag_conversation 属后续任务,注释说明);List + ForEach 渲染,气泡样式区分用户/AI(左右对齐 + 配色) ChatMsg具名 interface:{role: 'user'|'ai', text: string, meta?: string}(meta 存"模型 · 耗时"小字)- 发送流程:底部输入框(TextInput,回车/按钮发送)→ push 用户消息 → AI 侧显示"正在思考…"占位气泡 →
POST /api/v1/agent/chat{message}→ 成功替换为 reply,meta 拼接{model} · {latency_ms}ms,并在顶部薄条更新quota_remaining("今日剩余 N 次") - 失败态(只 catch ApiError):
- 40301(额度用尽):AI 气泡位显示 e.message(后端文案无价格字样)+ e.hint 次行小字;输入框保留可重试
- 60003(今日服务上限)/ 其它:同样气泡位展示 message+hint;"正在思考…"占位必须撤掉
- 发送中禁用输入框防连点;空消息不发送
- 顶部栏:标题"AI 穿搭顾问" + 返回(router.back)
- 首次进入自动插入一条 AI 欢迎语(本地静态文案,不调接口):"你好,我是你的穿搭顾问,可以问我面试怎么穿、约会怎么搭~"
验收
- 构建门禁
BUILD SUCCESSFUL - 发送/思考/成功/四种失败展示(40301、60003、网络错)路径齐全;思考占位在失败时一定被撤掉
- ArkTS 铁律零违规;只走 ApiClient;无第三方依赖
- 单次提交:
feat(app): AI chat page with quota hint and error states(F4)