修改前端页面

This commit is contained in:
zlt 2026-08-11 09:27:21 +08:00
parent 2e2a055dab
commit 314250eee1
1 changed files with 37 additions and 10 deletions

View File

@ -37,6 +37,11 @@
.clr-up{color:#f56c6c;} .clr-down{color:#67c23a;}
.attn{color:#e6a23c;padding:3px 0;}
.tblk h3{margin:0 0 10px;font-size:14px;color:#409EFF;font-weight:600;}
.op-row{display:flex;align-items:flex-start;gap:12px;padding:6px 0;border-bottom:1px solid #262626;}
.op-row:last-child{border-bottom:none;}
.op-btn{flex:none;width:150px;}
.op-btn .el-button{width:100%;}
.op-row .d{color:#999;font-size:12px;line-height:1.5;padding-top:3px;}
</style>
</head>
<body>
@ -223,15 +228,31 @@
<!-- 5) 组合操作 + 设置 -->
<div class="panel tblk">
<h3>组合操作</h3>
<div class="row">
<el-button size="small" :type="ov.buy_halt?'success':'warning'" @click="ov.buy_halt?pResumeBuy():pHaltBuy()">{{ ov.buy_halt?'恢复买入':'暂停买入' }}</el-button>
<el-button size="small" :type="ov.exec_halt?'success':''" @click="ov.exec_halt?pResumeAll():pHaltAll()">{{ ov.exec_halt?'结束休假':'休假模式' }}</el-button>
<el-button size="small" @click="pReduce()">降仓…</el-button>
<el-button size="small" @click="pIncrease()">升仓…</el-button>
<el-button size="small" :disabled="!ov.sector_ready" @click="pSectorExit()">清仓某行业…</el-button>
<el-button size="small" type="danger" @click="pLiquidate()">一键清仓(紧急)</el-button>
<div class="muted" style="margin-bottom:8px">对整个组合的手动动作。带「…」的会先弹窗让你填数值;危险动作要二次确认。</div>
<div class="op-row">
<span class="op-btn"><el-button size="small" :type="ov.buy_halt?'success':'warning'" @click="ov.buy_halt?pResumeBuy():pHaltBuy()">{{ ov.buy_halt?'恢复买入':'暂停买入' }}</el-button></span>
<span class="d">停止一切新增买入,并撤销在途买入指令;卖出与止损不受影响。当前:{{ ov.buy_halt?'已暂停买入':'买入正常' }}。</span>
</div>
<div class="op-row">
<span class="op-btn"><el-button size="small" :type="ov.exec_halt?'success':''" @click="ov.exec_halt?pResumeAll():pHaltAll()">{{ ov.exec_halt?'结束休假':'休假模式' }}</el-button></span>
<span class="d">所有自动动作暂停,只保留对账与日报(长假或手动接管时用)。当前:{{ ov.exec_halt?'休假中':'正常运行' }}。</span>
</div>
<div class="op-row">
<span class="op-btn"><el-button size="small" @click="pReduce()">降仓…</el-button></span>
<span class="d">按占总规模的百分比整体减少敞口。优先级:停新买 → 清弱票 → 收利润 → 等比微减。</span>
</div>
<div class="op-row">
<span class="op-btn"><el-button size="small" @click="pIncrease()">升仓…</el-button></span>
<span class="d">按占总规模的百分比整体提高敞口。来源:持仓补到目标 + 候选池新票建仓。</span>
</div>
<div class="op-row">
<span class="op-btn"><el-button size="small" :disabled="!ov.sector_ready" @click="pSectorExit()">清仓某行业…</el-button></span>
<span class="d">卖光指定行业的全部持仓。{{ ov.sector_ready?'':'(行业数据未就绪,暂不可用)' }}</span>
</div>
<div class="op-row">
<span class="op-btn"><el-button size="small" type="danger" @click="pLiquidate()">一键清仓(紧急)</el-button></span>
<span class="d">全部持仓按最快节奏卖出、不做择时优化。用于紧急离场,需二次确认。</span>
</div>
<div class="muted" style="margin-top:6px">暂停买入不影响卖出与止损;一键清仓会把全部持仓按最快节奏卖出、不做择时优化。</div>
</div>
<div class="panel tblk">
<h3>设置</h3>
@ -252,6 +273,7 @@
<el-button size="small" type="primary" :disabled="!dirtyCount" @click="saveParams">保存修改 ({{ dirtyCount }})</el-button>
<el-button size="small" @click="loadParams">放弃</el-button>
<span class="muted">改「自主档位」或「总仓上限」会即时生效;调低总仓上限可能触发降仓提议。</span>
<span class="muted">补仓(浮亏时逢跌补仓):「补仓上限」设为 0 即关闭补仓;「补仓评估档」是触发补仓的浮亏档位(如 -0.08,-0.15);到「深档确认」及更深的补仓永远要你点头。</span>
</div>
</div>
@ -1105,8 +1127,13 @@ createApp({
const heldPositions = computed(() => (positions.value || []).filter(p => (p.total_qty || 0) > 0));
const settingKeys = ['PMS_TOTAL_SCALE', 'PMS_PORTFOLIO_CAP', 'PMS_STOCK_CAP',
'PMS_MAX_NAMES', 'PMS_CASH_RESERVE', 'PMS_AUTONOMY'];
const traderParams = computed(() => (params.value || []).filter(p => settingKeys.includes(p.key)));
'PMS_MAX_NAMES', 'PMS_CASH_RESERVE',
'PMS_DCA_MAX_RATIO', 'PMS_DCA_TRIGGERS', 'PMS_DCA_DEEP_CONFIRM',
'PMS_FILL_MAX_LOSS', 'PMS_AUTONOMY'];
const traderParams = computed(() => {
const ix = {}; settingKeys.forEach((k, i) => ix[k] = i);
return (params.value || []).filter(p => settingKeys.includes(p.key)).sort((a, b) => ix[a.key] - ix[b.key]);
});
const attention = computed(() => {
const o = ov.value || {}, out = [];