需求描述(Describe)
数据源新增/编辑流程中,原先用「needUpdatePassword 开关 + 密码输入」的两步模式;改版为占位圆点 + 点击就地编辑的一步交互,并用 isPasswordEditing 统一表达「是否正在改密码」状态。
实现方案
- DataSourceFormField
用isPasswordEditing替代needUpdatePassword;密码展示文案改为「连接密码 / Connection Password」;新增 editPasswordPlaceholder;保留 needUpdatePassword、updatePassword` 等旧 i18n key 避免零散引用断裂。
- 去掉开关与
changeNeedUpdatePassword;新增 isPasswordEditing、handleStartEdit / handleCancelEdit、PASSWORD_PLACEHOLDER、只读态圆点+铅笔图标、编辑态 BasicInput.Password+回滚图标;创建页仍为普通密码框;testDatabaseConnect 改为 useCallback,非编辑态下密码不参与表单项注册从而自然不传。
- 数据源表单、
UpdateDataSource、useCheckConnectable 全链路字段名与条件判断切换到 isPasswordEditing。
- 按用例矩阵补齐交互与提交/连通性单测;修正
validateFields 不包含 setFieldsValue 写入字段的问题,连通性前置逻辑与 submit 均以 form.getFieldValue('isPasswordEditing') 为准。
- 更新 DataSource 相关 Jest 快照(无开关 DOM、新标签、只读+图标默认态)。
submit() 内不再依赖 getFieldsValue() 读取 isPasswordEditing(该值无对应 Form.Item 时恒为 undefined),改为 getFieldValue(),使更新数据源在编辑密码时正确附带 password。
变更影响面
受影响的模块或功能
- 用户侧:数据源创建/编辑页密码录入与展示;编辑页默认不展示明文/空密码,需点击编辑才进入必填校验与提交流程。
- 请求行为:更新数据源时是否携带
password 依赖 isPasswordEditing 与校验结果;连通性检测在默认非编辑态下跳过密码相关路径(与产品设计一致需确认)。
- 自动化:DataSource 相关单测与快照;任何依赖旧「更新密码」开关文案或 DOM 的 E2E 需同步。
外部引用的潜在问题或风险
- 若其他模块或脚本仍读取
needUpdatePassword 字段或依赖旧 DOM,需迁移到 isPasswordEditing 或新选择器。
- Ant Design
Form 语义:getFieldsValue 与 getFieldValue 差异易被忽略,同类「仅 setFieldsValue、无 Form.Item」字段需统一规范。
版本兼容性
- 前端表单字段语义变更:与后端 API 仍应对齐(例如未改密码时是否传空串、是否省略字段);若有 OpenAPI/契约测试应核对更新数据源 payload。
- i18n:展示文案变更;旧 key 保留降低引用风险,但产品文档若写「密码」需改为「连接密码」。
测试建议
- 跑通 DataSource 相关单元测试与快照;重点用例:TC 5.2.x(密码 UI)、TC 5.3.x(提交与连通性)。
- 手工:编辑数据源 → 不点编辑直接保存(应不传新密码);点编辑后改密/清空校验;创建页全流程。
- 回归 BUG-F-001:编辑态改密后保存,抓包确认 PUT 含
password 且后端更新成功。
需求描述(Describe)
数据源新增/编辑流程中,原先用「
needUpdatePassword开关 + 密码输入」的两步模式;改版为占位圆点 + 点击就地编辑的一步交互,并用isPasswordEditing统一表达「是否正在改密码」状态。实现方案
用isPasswordEditing替代needUpdatePassword;密码展示文案改为「连接密码 / Connection Password」;新增editPasswordPlaceholder;保留needUpdatePassword、updatePassword` 等旧 i18n key 避免零散引用断裂。changeNeedUpdatePassword;新增isPasswordEditing、handleStartEdit/handleCancelEdit、PASSWORD_PLACEHOLDER、只读态圆点+铅笔图标、编辑态BasicInput.Password+回滚图标;创建页仍为普通密码框;testDatabaseConnect改为useCallback,非编辑态下密码不参与表单项注册从而自然不传。UpdateDataSource、useCheckConnectable全链路字段名与条件判断切换到isPasswordEditing。validateFields不包含setFieldsValue写入字段的问题,连通性前置逻辑与submit均以form.getFieldValue('isPasswordEditing')为准。submit()内不再依赖getFieldsValue()读取isPasswordEditing(该值无对应Form.Item时恒为undefined),改为getFieldValue(),使更新数据源在编辑密码时正确附带password。变更影响面
受影响的模块或功能
password依赖isPasswordEditing与校验结果;连通性检测在默认非编辑态下跳过密码相关路径(与产品设计一致需确认)。外部引用的潜在问题或风险
needUpdatePassword字段或依赖旧 DOM,需迁移到isPasswordEditing或新选择器。Form语义:getFieldsValue与getFieldValue差异易被忽略,同类「仅 setFieldsValue、无 Form.Item」字段需统一规范。版本兼容性
测试建议
password且后端更新成功。