Files
meida/app
xsl 0b5d151e50 feat(app): 五轮产品评审迭代 35 项修复(报告域/对话/试衣发型/照片链/合规)
报告域:
- 报告 Tab 列表接入 GET /reports(重启可找回);重新生成采纳新 report_id
- 任务状态前后端大小写归一——轮询完成检测与「导出 PDF」按钮首次真正可达
- FAILED 重试换新幂等键;导出→重生成→再导出幂等冲突死路修复
- PDF 下载前 unlink 可重入;预览页常驻挂载+失败态重试;分享/另存文案拆分

对话页:
- 「内容由 AI 生成」常驻标识(CR-05)+ 快捷问题 chips + 额度 0 置灰与恢复时间
- 发送失败回填输入+重试+request_key 幂等;40301 额度同步

试衣间/发型设计:
- 人脸照片知情同意弹窗(preferences 持久化+版本+「我的」撤回入口)
- 生成期防中断(keepScreenOn/返回挽留/取消出口/genSeq 防串扰)
- 结果转存 filesDir/results:杀 App 回看、飞行模式离线保存、保存三态文案
- R4N1 照片输入链修复:裁除 describe 挂起载体、选图/拍照超时兜底、
  openSource URI 直建失败回退 fd 口径(R5N2)
- @Builder 改 $$ 对象传参修复槽位预览不刷新(R5N1);发型列表三态

全局:
- 会话过期四处「重新登录」出路;UTC 时间显示归正(差 8h)
- 10 处技术黑话清理;主色统一 Theme.ets;配额卡 4 张真实消耗集
- 登录页内测口径;f2 ErrorView/LoadingView 换用;调试入口 debug 守卫

门禁:App 构建 BUILD SUCCESSFUL;后端 576 单测绿(子仓 00ef56b);
28 项静态检查 PASS;真机 PDF 全链/照片送达/零崩溃验证通过
2026-08-30 23:17:11 +08:00
..

美搭 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 用的门禁)

工程配了真机调试签名(.ohos/config 下证书)后,PackageHap/SignHap 需要 java: PATH 里须有 DevEco 自带 JBR(jbr/bin),且不能有带旧环境的 hvigor 守护进程残留 (守护进程会缓存启动时的 PATH,报 spawn java ENOENT 时先 taskkill /F /PID <hvigor daemon的node进程> 再重试)。

(等价于仓库根的 app/.build-gate.bat)
set "PATH=C:\Program Files\Huawei\DevEco Studio\jbr\bin;%PATH%"
set "DEVECO_SDK_HOME=C:\Program Files\Huawei\DevEco Studio\sdk"
cd /d <repo>\app
"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 即门禁通过;产物 entry/build/default/outputs/default/entry-default-signed.hap (已用调试证书签名,可直接 hdc install 到真机)。

代码约定

  • ets/core/:网络与会话地基(ApiClient/AuthStore/ContextHolder/ApiTypes)——共享层,改动需全量构建验证
  • ets/pages/:页面。页面间跳转一律 router.pushUrl({url: 'pages/Xxx'}) 路径方式,禁止 import 其它页面(并行开发的冲突隔离约定)
  • 组件级复用放 ets/components/(各自任务目录内自建子目录)
  • 文案:骨架期中文硬编码即可(i18n 后置);错误提示只 catch ApiError,用其 message/hint(后端文案已保证无价格字样)
  • 状态管理:页面内 @State;跨页少量状态走 AppStorage
  • 不引第三方 ohpm 包(保持零依赖,后续按需评估)