# 交易员页面改版方案 V2 状态:**已落地**(2026-08-26)。改的是 `app/web/static/index.html`,备份在同目录 `index.html.bak-20260826`。 --- ## 一、这次改版要买什么 一句话:**让交易员在盘中不用滚动页面就能完成一轮判断和出手。** 现在的页面把所有东西竖着排成一长条。信号在持仓下面,策略在信号下面,候选在最底下。 盘中要做一次判断,眼睛得上下跑好几趟。点「完整信号中心」还会把页面滚到底, 再想回持仓表又得滚回来。这就是你说的「非常啰嗦」。 改完之后要达到三条: 1. 一屏之内同时看得见信号、持仓、待办三样东西,不用滚动。 2. 系统自己做了什么(比如刚刚建了一笔仓),在页面最上面一条消息栏里能第一时间看到。 3. 持仓行里的操作按钮永远完整可见,不会被表格挤掉。 --- ## 二、要做哪几件事 ### 第 1 件:页面骨架改成三栏 中间主区的宽度**保持不变**,左右两栏落在现在空着的留白里。 - 左栏放**信号流**,宽 302 像素。 - 中间放**主工作区**,最宽 1160 像素,和现在差不多。 - 右栏放**待办与操作**,宽 334 像素。 左右两栏各有两个开关: - **折叠**:缩成一条 42 像素的窄条,只剩竖排的标题和一个未读数字。再点一下拉回来。 - **拉出**:变成一块浮层盖在主区上面,宽 620 像素,后面压一层半透明遮罩。 点遮罩就收回去。窄屏时拉出就是纯弹窗。 屏幕不够宽的时候,不换行、不堆叠,改成三段式。临界值是按「主区要放得下持仓表」 倒推出来的,不是拍脑袋定的:持仓表最小 940 像素,加面板内边距是 972 像素。 | 窗口宽度 | 左栏 | 右栏 | 由来 | |---|---|---|---| | 1660 像素以上 | 常驻 302 | 常驻 334 | 972 加 302 加 334 加栏间距 26 加页面留白 32 等于 1666 | | 1380 到 1659 | 常驻 302 | 窄条 40 | 972 加 302 加 40 加 26 加 32 等于 1372 | | 1380 以下 | 窄条 40 | 窄条 40 | 主区拿走剩下全部宽度 | 再窄到主区放不下持仓表时,是表格在自己的框里横向滚动,操作列照样钉住, 页面本身不会出现横向滚动条。 这样「宽度不动」和「左右折叠拉出」两件事同时成立:主区永远是那个宽度, 两栏要么在留白里,要么浮在上面,都不会把主区挤变形。 ### 第 2 件:顶部换成融合消息栏 现在顶部那条叫「最新告警」,只播上游告警。改成一条**消息栏**,收四类消息, 按时间倒序混在一条流里: | 类型 | 收什么 | 数据从哪来 | |---|---|---| | 告警 | 资金流强度、资金分布、日QRS对称、股价异动、多源升级 | 现有的 `/api/upstream-signals` | | 下单 | 系统建仓、回踩补足、盈利加仓、浮亏补仓、保垫减仓、清仓,以及成交回报 | 现有的 `/api/instructions`,按状态变化取 | | 提议 | 自主档位是「只提议」时新生成的待拍板条目 | 现有的 `/api/proposals` | | 策略风控 | 自动挂载执行结果、网格换跟踪止盈、决策系统把某只票停买、命令被规则闸拦下 | 现有的 `/api/op-log` 与 `/api/ledger` | 栏子本身一行,显示最新一条。左边五个小胶囊按类型筛(全部 / 告警 / 下单 / 提议 / 策略风控), 右边「展开全部」**就地向下拉出一块面板**,不跳转、不滚动。面板里每行右侧有个「去处理 ›」, 点了才跳到对应位置。 这条栏子接管现在「最新告警」的位置,原来那条删掉。 ### 第 3 件:信号搬进左栏,取消滚动跳转 左栏顶上两个页签: - **速览**:一行一条。持仓票的信号置顶,标一个「持仓」小标签;下面才是非持仓的重要与警告级。 上方一排筛选胶囊:只看持仓 / 重要 / 警告 / 提示 / 普通。 - **按来源**:就是现在的「完整信号中心」。七个来源做成可折叠的分组 (mtf 资金异动、mtf 实况分、决策系统买卖、日QRS对称、资金分布、股价异动、事件信号), 点标题就地展开。 页面底部原来那个「上游信号」大区**整块删掉**。「完整信号中心」这个按钮不再做滚动, 改成切到左栏的「按来源」页签。 ### 第 4 件:右栏收待办与操作 从中间搬四块过去,每块可以单独收起: - 等我拍板 - 我的策略(含自动挂载状态与预演) - 系统在盯的候选 - 组合操作 - 设置 搬走之后,中间主区只剩四块:今日一览、需要注意、我的持仓、今日在办。 ### 第 5 件:文案里的行话全换成白话 页面上「策略买入腿已暂停」这类词,交易员读不出是什么意思。已经做了一次全面普查, 24 个词要换掉,8 个项目术语保留但每个配一句白话解释,批次名和动作名统一改写。 清单在 `UI_COPY_AUDIT.md`,样张已经按那份清单改过一遍。 ### 第 6 件:修持仓表的操作列 问题是操作列宽度不够,三个按钮被切掉。改法有三处: 1. 操作列用 `position: sticky` 钉在表格右边,左侧加一道浅投影做分隔。表格再窄, 这一列也在。 2. 「状态」和「下一步」两列合成一列,省出 84 像素给操作列。 3. 常用的「减仓」「清仓」留在外面,其余五个(设止损价、设目标价、冻结、 加入黑名单、挂交易方案)收进一个「⋯」下拉。 --- ## 三、改哪些文件 只动一个文件:`app/web/static/index.html`。 后端接口一个都不用改——四类消息用的都是页面已经在拉的接口, 只是在前端多做一次合并和排序。 改动分四段: 1. 样式段(第 11 到 196 行):加三栏骨架、消息栏、左右栏、粘性操作列的样式。 2. 交易员视图段(第 285 到 990 行):重排结构,删掉底部「上游信号」大区。 3. Vue 逻辑段(第 1658 行往后):新增一个把四类消息合并排序的计算属性, 新增左右栏折叠与拉出的状态,删掉 `openSigCenter` 里的滚动。 4. 折叠状态记在浏览器里(`sessionStorage`),刷新页面不丢。 --- ## 四、怎么验证(在你的 Mac 上跑) ### 1. 先确认文件对不对 ``` cd /Users/baobao/Documents/work/project/tradingSystem wc -l app/web/static/index.html ls -la app/web/static/index.html.bak-20260826 ``` 预期:新文件 **3111 行**;备份文件在,大小 184617 字节。 ### 2. 交易员视图里不该再有行话 ``` cd /Users/baobao/Documents/work/project/tradingSystem && python3 - <<'EOF' import io s = io.open('app/web/static/index.html', encoding='utf-8').read() a = s.index('