Files
one_divine_lot/docs/04-迭代记录/11-策略自定义字段配置/迭代目标.md
T
kyugao aac16b904c feat(R-013): 策略自定义字段完整实现 + 列显隐配置 + 单元格编辑
功能实现(迭代 11):
- 数据层: strategies.configSchema 自定义字段定义(text/number/boolean/enum + def + unit 单位可空)
  + strategy_holdings "values" JSON 列(幂等 ALTER)+ readValues/writeValues + 归一化
- API: holdings/values-update 端点(服务端按 configSchema 校验: number有限/enum在选项/boolean布尔)
- 设置页: 「策略分组」策略行展开配置字段(StrategyFieldsEditor 独立组件)
- 持仓表: 自定义字段列化 + 列显隐/排序(ColumnSettingsPopover,每策略独立 strategyColumns 配置)
- 单元格点击编辑(FieldCellEditor): 文本/数字输入框、布尔开关、枚举下拉 + ✓ 确认
- UI 细节: ✎ 可编辑标记(值后)、编辑列宽稳定、数字输入框固定 5 位宽

修复:
- SettingsSection Fragment/StrategyFieldsEditor 未导入导致的配置页白屏
- z.dict schema dts 推断 cosmokit 引用(显式类型注解)
- 自定义字段从展开交易明细移出(字段已列化)

文档: R-013/迭代11 技术方案/验收标准/迭代目标 同步(D6 演进 + unit + 列配置)
回归: test-r013-custom-fields 21/21 + test-r013-columns 16/16 + tabs 23/23
2026-09-02 17:21:41 +08:00

21 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 迭代目标:11-策略自定义字段配置(定义随策略,值落库)
> 迭代编号:11 | 创建:2026-09-02 状态:进行中
> 依据计划:PLAN-012 需求:R-013(已定稿,2026-09-02,老师确认 Q1-Q4 + D6
## 目标描述
给策略增加**可自定义、可扩展**的字段能力:每个策略在设置页「策略分组」子 tab 配置自定义字段定义(configSchemakey/label/type/enum/默认值,随策略定义存 settings 不落库);该策略下每个持仓(strategy_holdings 行)按所属策略的定义存取一份键值对值(新增 values JSON 列落库);自定义字段作为策略持仓表**列**展示,点击单元格内联编辑值(列显隐与顺序每策略独立配置)。旧策略(无定义)行为与现状完全一致。
## 目标分解
1. 数据层:settings.strategies 扩展 configSchemaschemasterytype union text|number|boolean|enum),读取归一化(旧项缺省 []);strategy_holdings 新增 values TEXT 列(幂等 ALTER+ readValues/writeValues
2. API 层:strategy-positions 每行附 values;新增 holdings/values-update {holdingId, values} 写回(服务端按 configSchema 校验:数字/枚举/布尔);
3. 设置页 UI:「策略分组」子 tab 策略行可展开 → 字段列表 + 添加/编辑/删除字段表单 + 保存;
4. 策略持仓 UI:自定义字段列表格列展示 + 单元格点击内联编辑(四类型);列显隐/顺序每策略独立配置(顶部「列设置」);
5. 回归脚本(独立数据目录,技术约束-011)+ 验证 + 验收复核。
## 对老师的配合需求
- 验收:设置页配置字段定义(四种类型各一 + 枚举)→ 策略持仓 tab 持仓行展开编辑值 → 重启验证持久化;
- 提供:是否接受「旧策略无定义」行为样(默认接受,Q4 已确认)。