xsl
|
db9c4da0e3
|
fix(app): 我的页 Tab 内嵌修复 + 身高体重改滚轮选择器——ProfileContent 组件化(占位+跳页方案把用户锁死在独立路由页,只能登出);身高 100-250/体重 25-300 滚轮选择(showTextPickerDialog),不再键盘输入
|
2026-08-16 11:40:42 +08:00 |
|
xsl
|
98a134c7a2
|
F3: 表单校验反馈修复——点名缺失字段+自动滚动+@Builder按引用传参
用户真机反馈"还有 2 项未完成,点击不了提交并生成报告",排查出两层问题:
1. 表层(可见性):汇总条只报数量不报字段名,缺失字段在视野外。
- 汇总条改为点名缺失字段:"请完成:核心诉求、心理风格"
- 校验失败自动滚动到第一个缺失字段(componentUtils.getRectangleById
取 windowOffset 相对 form_root 的内容坐标,Scroller.scrollTo 动画滚动)
- 汇总条本身可点击,点击重新跳到第一个缺失字段
- 必填项标签加红色 * 标记
2. 根因(@Builder 陷阱):字段级红字从未渲染过。FieldLabel 按值传参
(label/err/required),ArkUI 规定 @Builder 按值传参不随 @State 变化
刷新——err 停在初始空串。改为 $$ 按引用传参(FieldLabelParams),
真机 dumpLayout 验证红字已随校验结果出现。
真机验证(uitest 注入 + dumpLayout + 截图):
- 空表单提交:红字四项齐现、汇总条点名、自动滚到首个错误
- 完整表单提交:进 40920 对话框(本期已生成),链路正常
|
2026-08-15 13:35:06 +08:00 |
|
xsl
|
c24924fa43
|
fix(app): 真机首验三连修——信封解析/DatePicker 折叠/跳转兜底
真机+模拟器注入实测发现并修复:
1. ApiClient 把一切非 200 HTTP 吞成 50000「服务开小差了」——后端业务
错误(40920/40301/42910…)走非 200 状态码但 body 是统一信封,先验
信封形状再判成败。这是「提交不起作用」的直接原因(用户二次提交
=409,红字被布局挤在视野外)
2. 生日 DatePicker 默认展开高约半屏:九型必填项与提交按钮被推出视野、
滚动手势被选择器消费。改点击展开,表单一屏可见
3. 校验失败加顶部汇总红条(字段红字可能在视野外的可见性兜底)
4. 轮询完成不自动跳结果页:@Builder 传函数给子组件在真机调用无效
(手动按钮同一方法正常)——加「查看报告」兜底按钮 + replaceUrl
显式 catch + 完成态文案引导,回调保留 try/catch 与日志
验证:40920 对话框正常弹出;新用户提交→轮询→查看报告→32 维结果页
完整渲染(含降级黄条、报告编号)
|
2026-08-15 13:11:26 +08:00 |
|
xsl
|
dff8084bbb
|
fix(app): dev-token 登录改走无鉴权通道(自拦 40100 鸡生蛋)
真机首验即中:loginByDevToken 走了带鉴权的 post(),而 ApiClient 对
未登录一律 40100 短路——登录接口被自己的守卫拦死,UI 表现为
「请先登录」且无解。改走既有 postWithoutAuth。编译门禁无法发现
此类运行时逻辑环,真机验证首个战果。
|
2026-08-15 12:25:59 +08:00 |
|
xsl
|
e409ff08cc
|
merge: F3 报告流(问卷/轮询/32 维结果页)(FE 第一批)
|
2026-08-15 00:50:24 +08:00 |
|
xsl
|
995c18e7d5
|
feat(app): report flow with polling and 32-dimension result view(F3)
|
2026-08-15 00:49:47 +08:00 |
|
xsl
|
ef25fa70c9
|
merge: F1 登录页与个人中心(FE 第一批)
|
2026-08-15 00:44:09 +08:00 |
|
xsl
|
336b638a1f
|
feat(app): login page with dev-token flow and profile with quota cards(F1)
登录页(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,属规程指定路由方式,构建门禁通过
|
2026-08-15 00:43:46 +08:00 |
|
xsl
|
45e4ba52b8
|
merge: F4 AI 穿搭对话页(FE 第一批)
|
2026-08-15 00:42:28 +08:00 |
|
xsl
|
1de70f31d6
|
feat(app): AI chat page with quota hint and error states(F4)
|
2026-08-15 00:41:55 +08:00 |
|
xsl
|
198761677c
|
feat(app): app shell tabs with home entries and common loading/error views(F2)
|
2026-08-15 00:40:53 +08:00 |
|
xsl
|
9503c6e259
|
feat(app): FE 骨架协调提交——core 网络层/路由注册/页面桩
- DevEco 6.1 模板工程(API 6.1.1(24),bundle com.xiangsilian.app)+ INTERNET 权限
- core/:ApiClient(统一信封解包+401 自动刷新重试)/AuthStore(双令牌持久化+
dev-token 通道+baseUrl 可配)/ContextHolder/ApiTypes —— 全部通过 ArkTS 严格编译
- 七页面注册 main_pages(桩态);Index 按登录态分流;页面间约定 router 路径跳转
零 import(并行冲突隔离)
- app/README:CLI 构建门禁命令与代码约定
|
2026-08-15 00:33:55 +08:00 |
|