Files
one_divine_lot/docs/04-迭代记录/17-策略会话/UI交互设计.md
T

5.8 KiB
Raw Blame History

迭代 17 UI 交互设计:策略会话(讨论依据控件)

依据:R-021(合并原 R-019+R-021,已定稿)+ 产品逻辑设计(同迭代)| 日期:2026-09-08 | 状态:设计稿(D 问题待拍板) 视觉基线:UI约束-004--dsw-* token/ UI约束-001(头部 chip 形态)/ 现有 QmtConnectionChip 交互模式;复用 Toast、外点关闭、RPC(useRpc) 机制。

1. 交互总览(一句话)

对话视图输入区上方有一枚**「讨论依据」chip**(仿 DSH workspace chip:未选=「讨论依据:请选择 ▾」;已选=「依据:做T ▾」+刷新);选择策略 → 服务端生成数据摘要 → 注入并在对话流顶部出现一条数据依据条目,之后即可基于该策略数据讨论。

2. 控件布局(示意)

┌─ 对话视图 ──────────────────────────────┐
│ …对话消息流…                             │
│   [数据依据条 ▾ 做T · 快照 14:32 · 3仓/42笔]  ← 选后注入显示(可展开全文)
│ ─────────────────────────────────────── │
│ [依据:做T ▾] [↻]                    │ ← accessory 行(输入框上方左侧)
│ ┌ 输入框(composer)────────────────┐  │
│ └────────────────────────────────────┘  │
└─────────────────────────────────────────┘

3. chip 状态机

状态 外观 交互
未加载 不显示(静默,与 QMT chip 一致)
未选择 讨论依据:请选择 ▾tertiary 色) 点开 → 策略下拉(空态见 §5
生成中 依据:做T …opacity .6,右侧小 spinner/省略) 不可再点(防抖)
已选择 依据:做T ▾ + 右侧「↻ 刷新」小钮 点 chip 换策略;点 ↻ 刷新注入
策略已删除 依据:做T(已删除)▾warning 色) 下拉选其它/清除
错误 toast 错误 + chip 保留原态 可重试

4. 交互细节

  1. 选择策略(F1 主流程)
    • 点击 chip → 下拉菜单(与 QmtConnectionChip 同一套 Menu 视觉):
      • 标题区「以哪个策略讨论?」;
      • 策略项:每项 = 策略名 + 副行「当前 N 只持仓 · 最近交易 …」;
      • 底部「清除依据」(仅已选时出现);当前依据项前打 ✓;
    • 点击某策略 → chip 进入生成中 → 服务端取摘要 → 注入会话 + 对话流顶部出现依据条目 → toast.success(已载入「做T」数据依据:3 持仓 / 42 笔交易(快照 14:32:05)。
  2. 注入条目(D-1 建议形态)
    • 视觉:淡色卡片/引用样式(bg-layer 弱化 + 左侧竖条 accent),标题行「⛭ 神之一手数据依据」+ 做T · 快照 2026-09-08 14:32:05,行 2 摘要「当前持仓 3 只 / 历史交易 42 笔(含已清仓)」;
    • 默认折叠,点击展开全文(markdown 摘要内容);
    • 多依据/多刷新并存时按时间堆叠,最近一次在消息流最新处;不伪装用户/助手消息(若通道仅支持文本消息,则呈现为最顶部一段普通消息文本——实现以调研为准)。
  3. 换策略:chip 下拉选另一策略 → 同"生成中→注入"流程;chip 文案与已注入条目更新。
  4. 刷新依据:点 chip 右侧 ↻ → 生成新快照并注入新条目(含新快照时间);toast「已更新依据(快照 14:35:10)」。不会删除旧条目。
  5. 清除依据:下拉「清除依据」→ chip 复位「请选择」;不清除历史注入条目。
  6. 键盘/可及:Esc 或外点关闭下拉;chip 提供 title 提示「以某个策略的数据为依据开始讨论(只读)」。
  7. 只读表达:选择器下拉仅含策略与其状态信息,无任何写/操作入口;文案提示"会话只读,不执行交易操作"(依赖尾注与依据条目样式即可,不打断输入)。

5. 空态与边界 UI

场景 UI
无策略可配置 下拉空态:「暂无策略,请到 设置 → 神之一手 → 策略分组 添加」+「去设置」快捷键位
策略持仓为空 摘要条目持仓区显示「当前无持仓」;交易摘要照常
行情缺失 摘要中现价列显示 —,条目副行提示「部分行情缺失(--)」,不阻塞
生成失败/服务不可用 toast.error(原因)chip 回原态可重试
已在数据 tab.odl-root 不显示该控件(现状 CSS 隐藏 composer 的区域一致,仅聊天视图展示)

6. 组件落点(初拟,技术方案细化)

  • 客户端新组件 StrategyBasisChip.jsx(chip + 下拉 + 刷新),复刻 QmtConnectionChip 的结构(rootRef/外点关闭/useRpc/useToast);
  • 注入条目组件 DataBasisCard.jsx(折叠/展开 markdown 展示);
  • 服务端新只读端点(one-divine-lot/strategies/basis-summary)生成摘要(产品逻辑 §4 规格);
  • 挂载位置:D-4(对话 accessory vs 会话头部)拍板后确定 slot 与可见性策略。

7. D 问题(AI 建议项,与产品逻辑设计共享,待老师拍板)

# 问题 AI 建议
D-1 注入条目呈现形态 折叠「数据依据」卡片,点开全文(见 §4.2)
D-2 交易摘要聚合粒度 按持仓聚合 + 已清仓标注;如需近期逐笔再加近 N 笔
D-3 依据跨刷新持久化 会话级不持久化(重开重选)
D-4 chip 位置 对话视图输入框上方 accessory 行左侧(仿 workspace chip 位置);备选=会话头部与 QMT chip 并排