修改页面布局样式
This commit is contained in:
parent
0ff719ad0b
commit
823b24cccb
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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('通道待人工全量对账');
|
||||
|
|
|
|||
Loading…
Reference in New Issue