# 登录输入连接修复记录 操作时间:2026-09-11 操作类型:修复 影响模块:用户端登录页验证码、密码输入及显隐切换。 ## 问题与范围 钱包浏览器联调中,验证码/密码共用输入框曾出现键入未生效,控制台捕获Flutter Web输入配置操作空DOM的异常。编译栈与本地引擎`text_editing.dart`的`applyConfiguration`相符,但仅凭栈不能断定引擎是唯一根因。 代码同时存在可稳定复现的问题:点击已选中的“密码登录”也会清空用户刚输入的密码。本轮处理登录页输入连接切换,不改Flutter SDK、账户密码、数据库或缓存配置。 ## 代码变化 - `apps/user_app/lib/ui/features/auth/login_page.dart`:密码字段按登录方式和显隐状态设置独立键;`_configureSecretInput`先失焦结束旧连接,再更新状态,必要时下一帧恢复焦点。显隐保留控制器文本,方式切换清除上个方式凭据;当前已选方式点击不再清空输入。 - 自动填充提示区分一次性验证码和密码,避免验证码框使用密码自动填充语义。 - `apps/user_app/test/ui/login_page_test.dart`:新增显隐、焦点、重复选择及有焦点时切换方式的回归测试。 ## 验证 登录页8项测试通过,Flutter analyze无问题,Web构建完成。浏览器在12:06:23之后的新构建中实测:聚焦验证码框、切换密码模式、直接在遮蔽输入框键入授权测试密码、重复点击当前方式、填写手机号、登录成功回到钱包。该路径没有要求先显示密码才能输入。 控制台最后的输入空值异常时间为12:05:54,早于新构建;新登录路径后没有新增error/warn。因此本轮确认修复后的路径未复现,不把历史日志仍存在误判为新异常,也不推断所有浏览器和原生输入法已全部验收。 最终Flutter全量125项测试通过,Android Debug APK构建成功;没有后端代码、接口或资金变更,远程数据库与Redis继续沿用原配置。全量设计验收状态仍为17张部分实现、41张未完成对应完整页面、0张严格通过。