登录页(LoginPage): - 品牌区 + 设备标识输入(随机生成一次并持久化到 preferences,可改可重生成) - 高级设置折叠区:展示/编辑 baseUrl(AuthStore.setBaseUrl),带格式校验与恢复默认 - 登录闭环:loading 态 → AuthStore.loginByDevToken → 成功 router.replaceUrl 首页; 失败 catch ApiError 用 ErrorBanner 展示 message+hint;已登录态进入直接跳首页 个人页(ProfilePage): - 用户 ID 脱敏(前 6 后 4)+ 登出(AlertDialog 确认 → AuthStore.logout → 回登录页) - agent_chat/tryon/report_basic 三配额卡并行拉取,进度条 used/(limit+bonus), 剩余数大字;周期文案:日配额=明日恢复、report_basic=一次性额度、月度=日期 - 最近流水(limit=10):tx_type 中文映射(消耗/退还/奖励),status 徽标配色区分 - Refresh 下拉刷新(加分项) 共享组件 components/f1/:ErrorBanner、QuotaCard、LedgerItem 偏差说明: - 设备标识在 @State 之外额外持久化(meida_login/device_key),保证跨启动稳定不重生 - Scroll 隐藏滚动条用 .scrollBar(BarState.Off)(本 SDK 无 scrollBarBarState 属性) - router.replaceUrl / AlertDialog.show 有 deprecation WARN,属规程指定路由方式,构建门禁通过
美搭 HarmonyOS App(ArkTS)
- 模板:DevEco Studio 6.1 空 Ability 工程;API
6.1.1(24),runtimeOS: HarmonyOS,bundleName: com.xiangsilian.app - 后端:
meida_backend(WSL)。本地开发默认http://127.0.0.1:8000(模拟器可用;真机连开发机要在登录页改成局域网 IP) - 登录通道(V1 骨架):dev-token(后端
DEV_AUTH_ENABLED=true本地可用);华为账号/短信为后续任务
命令行构建(Agent/CI 用的门禁)
cd G:/meida/app
export DEVECO_SDK_HOME="C:/Program Files/Huawei/DevEco Studio/sdk"
"C:/Program Files/Huawei/DevEco Studio/tools/node/node.exe" \
"C:/Program Files/Huawei/DevEco Studio/tools/hvigor/bin/hvigorw.js" \
--mode module -p module=entry@default assembleHap --analyze=false --daemon=false
BUILD SUCCESSFUL 即门禁通过(未签名 HAP 正常——签名等 AGC 证书)。运行/调试用 DevEco Studio 打开本工程点 Run(模拟器或真机,真机需先配签名)。
代码约定
ets/core/:网络与会话地基(ApiClient/AuthStore/ContextHolder/ApiTypes)——共享层,改动需全量构建验证ets/pages/:页面。页面间跳转一律router.pushUrl({url: 'pages/Xxx'})路径方式,禁止 import 其它页面(并行开发的冲突隔离约定)- 组件级复用放
ets/components/(各自任务目录内自建子目录) - 文案:骨架期中文硬编码即可(i18n 后置);错误提示只 catch
ApiError,用其message/hint(后端文案已保证无价格字样) - 状态管理:页面内
@State;跨页少量状态走AppStorage - 不引第三方 ohpm 包(保持零依赖,后续按需评估)