修改页面布局样式

This commit is contained in:
zlt 2026-08-12 15:10:56 +08:00
parent 0ff719ad0b
commit 823b24cccb
2 changed files with 19 additions and 11 deletions

View File

@ -239,8 +239,16 @@ def disposition_snapshot(now=None) -> dict:
view = portfolio.positions_view()
params = _scan_params(view)
stock_params = command_service.effective_stock_params()
# 与实盘扫描同一份 skip: 在途 / 今日已被规则闸拒 / 今日已被研判闸驳回的新建仓
skip = {**_judge_rejected_open_keys(), **_rejected_today_keys(), **_inflight_keys()}
# 给交易员的白话原因: 用同一套去重键 (口径与实盘扫描一致), 但值不含内部闸门术语、
# 也不指引任何终端命令 —— 原来的 _*_keys() 串带「研判闸/规则闸/看 make t-gate」, 那是
# 给日志与运维看的, 不该出现在交易员页面。落库顺序同实盘 (在途最后, 覆盖被拒)。
skip = {}
for _k in _judge_rejected_open_keys():
skip[_k] = "决策系统今天判过暂不建仓,明天开盘会重新评估"
for _k in _rejected_today_keys():
skip[_k] = "今天没通过合规检查,明天开盘会重新评估"
for _k in _inflight_keys(): # 在途; 前端多半已按指令/提议标成「已下单/待你确认」
skip[_k] = "系统已经在处理这只票(见『等我拍板』或『今日在办』)"
sink = {"skipped": []} # 丢弃用: _scan_open 只往里 append/extend, 不读它
would = _scan_open(view, params, stock_params, skip, {}, sink)
except Exception as e:
@ -301,7 +309,7 @@ def _route_one(c, view, params, stock_params, brake_active, now, dry_run, out,
if not dry_run:
pms_repo.insert_ledger(ts_code=code, action=action, arbiter="rule", verdict="REJECT",
price_at=price, hard_numbers=c["hard_numbers"],
failed_checks=gate["failed"], reason="自主提议未过规则闸")
failed_checks=gate["failed"], reason="自主提议未通过合规检查")
return
# ---- 二级: 研判闸 (补足/加仓/补仓/新建仓; 减持不送研判) ----
@ -320,12 +328,12 @@ def _route_one(c, view, params, stock_params, brake_active, now, dry_run, out,
"recent_ledger": _recent_ledger(code)})
if verdict["verdict"] == judge.REJECT:
out["rejected"].append({"ts_code": code, "action": action, "by": "judge",
"failed": [verdict.get("reason") or "研判驳回"]})
"failed": [verdict.get("reason") or "决策系统驳回"]})
if not dry_run:
pms_repo.insert_ledger(ts_code=code, action=action, arbiter="judge",
verdict="REJECT", price_at=price,
hard_numbers=c["hard_numbers"],
reason=verdict.get("reason") or "研判驳回")
reason=verdict.get("reason") or "决策系统驳回")
return
if verdict.get("degraded"):
out["degraded"] = True

View File

@ -187,7 +187,7 @@ pre.json{background:var(--surface-2);border:1px solid var(--hair);border-radius:
<el-tag size="small" effect="dark" type="primary" style="margin-left:8px">{{ tx('action', p.action) }}</el-tag></div>
<div class="muted">{{ p.expire_at }} 前有效</div>
</div>
<div style="margin:6px 0" v-if="p.judge_reason"><span class="muted">研判</span>{{ p.judge_reason }}</div>
<div style="margin:6px 0" v-if="p.judge_reason"><span class="muted">决策系统</span>{{ p.judge_reason }}</div>
<div class="muted" style="margin:4px 0">{{ propWhy(p) }}</div>
<div class="row" style="margin-top:6px">
<span class="muted">约 {{ p.qty }} 股 · 参考价 {{ (p.hard_numbers||{}).price==null ? '—' : (p.hard_numbers||{}).price }}
@ -396,7 +396,7 @@ pre.json{background:var(--surface-2);border:1px solid var(--hair);border-radius:
</el-form-item>
<el-form-item label="最大投入额">
<el-input v-model="stratDlg.p.max_capital" style="width:150px"><template #append></template></el-input>
<span class="muted" style="margin-left:8px">须落在单股上限内(规则闸兜底)</span>
<span class="muted" style="margin-left:8px">须落在单股上限内(合规检查兜底)</span>
</el-form-item>
<el-form-item label="怎么做">
<span class="muted">跌破未买档→买一份,涨破已买档→卖一份(从 T+1 可卖存量);跌破下界=继续持有、不再买。</span>
@ -1353,10 +1353,10 @@ createApp({
lot: { BASE:'底仓', FILL:'回踩补足', ADD:'盈利加仓', DCA:'补仓', T0:'做T仓', RECON:'对账调整' },
frozen: { NONE:'', COMMAND_HALT:'命令冻结(禁增持)', BRAKE:'刹车冻结', MANUAL:'手动冻结' },
posStatus: { PLANNED:'计划建仓', OPENING:'建仓中', HOLDING:'持有中', EXITING:'清仓中', CLOSED:'已清仓' },
insStatus: { PROPOSED:'待校验', RULE_PASSED:'规则闸已过', JUDGE_PASSED:'研判已过', DISPATCHED:'已下发挂单',
insStatus: { PROPOSED:'待校验', RULE_PASSED:'合规已过', JUDGE_PASSED:'复核已过', DISPATCHED:'已下发挂单',
CONFIRMED:'已成交', REJECTED:'被拒', EXPIRED:'到期作废', CANCELLED:'已撤销' },
arbiter: { rule:'规则闸', judge:'研判闸', user:'你' },
verdict: { PASS:'放行', REJECT:'驳回', NOTE:'记录', UNAVAILABLE:'研判暂不可用' },
arbiter: { rule:'合规检查', judge:'决策系统', user:'你' },
verdict: { PASS:'放行', REJECT:'驳回', NOTE:'记录', UNAVAILABLE:'决策系统暂不可用' },
stype: { T0:'做T', GRID:'网格', TRAIL:'跟踪止盈' },
stratStatus: { ACTIVE:'运行中', PAUSED:'已暂停', CANCELLED:'已撤下', DONE:'已完成' },
};
@ -1424,7 +1424,7 @@ createApp({
out.push(o.price_missing.length + ' 只取不到实时价(停牌等),其盈亏与安全垫暂不可用');
if (o.sector_ready === false) out.push('行业数据未就绪,行业类操作暂不可用');
const j = (dm.value || {}).judge;
if (j && j.available === false) out.push('研判暂不可用:补足/加仓/补仓一律降级为需你确认');
if (j && j.available === false) out.push('决策系统暂不可用:补足/加仓/补仓一律降级为需你确认');
const c = wsc.value || {};
if (c.conn_state && c.conn_state !== 'ONLINE') out.push('行情/成交通道未连接(' + c.conn_state + '');
if (c.resync_required) out.push('通道待人工全量对账');