v1.8.0: 🌙 静默期 - 舆情监控/持仓跟踪/定时报告三大自动化任务独立配置静默时段, 命中时段不发送邮件(多段/跨午夜, 日志标quiet, 水位照常推进不补发积压)
This commit is contained in:
+28
-3
@@ -21,12 +21,20 @@ async function loadAuto() {
|
||||
const cats = mono.categories || [];
|
||||
$$('#monitorCats input').forEach(c => c.checked = cats.includes(c.value));
|
||||
renderMonitorState(autoSettings.state);
|
||||
// 静默期(舆情)
|
||||
const mq = (autoSettings.quiet && autoSettings.quiet.monitor) || {};
|
||||
$('#monitorQuietEnabled').checked = !!mq.enabled;
|
||||
$('#monitorQuietRanges').value = mq.ranges || '';
|
||||
// 持仓跟踪
|
||||
$('#trackingEnabled').checked = !!tr.enabled;
|
||||
$('#trackingInterval').value = tr.interval_min;
|
||||
$('#trackingImpact').value = tr.impact_threshold;
|
||||
$('#trackingNotify').checked = !!tr.notify;
|
||||
renderTrackingState(tr);
|
||||
// 静默期(跟踪)
|
||||
const tq = (autoSettings.quiet && autoSettings.quiet.tracking) || {};
|
||||
$('#trackingQuietEnabled').checked = !!tq.enabled;
|
||||
$('#trackingQuietRanges').value = tq.ranges || '';
|
||||
loadLog();
|
||||
loadTrackReports();
|
||||
loadPositions();
|
||||
@@ -61,10 +69,27 @@ function collectMonitor() {
|
||||
};
|
||||
}
|
||||
|
||||
function collectMonitorQuiet() {
|
||||
return {
|
||||
enabled: $('#monitorQuietEnabled').checked,
|
||||
ranges: $('#monitorQuietRanges').value.trim()
|
||||
};
|
||||
}
|
||||
|
||||
function collectTrackingQuiet() {
|
||||
return {
|
||||
enabled: $('#trackingQuietEnabled').checked,
|
||||
ranges: $('#trackingQuietRanges').value.trim()
|
||||
};
|
||||
}
|
||||
|
||||
/* ===================== 保存 ===================== */
|
||||
async function saveMonitor() {
|
||||
try {
|
||||
const r = await api('/api/settings', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ monitor: collectMonitor() }) });
|
||||
const r = await api('/api/settings', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({
|
||||
monitor: collectMonitor(),
|
||||
quiet: { monitor: collectMonitorQuiet() }
|
||||
}) });
|
||||
toast(r.msg || '已保存');
|
||||
} catch (e) { toast('保存失败:' + e.message); }
|
||||
}
|
||||
@@ -76,7 +101,7 @@ async function saveTracking() {
|
||||
tracking_interval: $('#trackingInterval').value,
|
||||
tracking_impact_threshold: $('#trackingImpact').value,
|
||||
tracking_notify: $('#trackingNotify').checked
|
||||
} }) });
|
||||
}, quiet: { tracking: collectTrackingQuiet() } }) });
|
||||
toast(r.msg || '已保存');
|
||||
} catch (e) { toast('保存失败:' + e.message); }
|
||||
}
|
||||
@@ -206,7 +231,7 @@ async function loadLog() {
|
||||
<td><span class="cat-tag ${n.category}">${n.category}</span></td>
|
||||
<td class="num ${pctClass(n.sentiment)}">${n.sentiment > 0 ? '利好' : n.sentiment < 0 ? '利空' : '中性'} (${Number(n.sentiment).toFixed(2)})</td>
|
||||
<td class="num"><b>${n.importance}</b></td>
|
||||
<td><span class="tag ${n.status === 'sent' ? 'tag-推荐' : n.status === 'skipped' ? 'tag-关注' : 'tag-负'}">${n.status}</span></td>
|
||||
<td><span class="tag ${n.status === 'sent' ? 'tag-推荐' : n.status === 'skipped' ? 'tag-关注' : n.status === 'quiet' ? 'tag-关注' : 'tag-负'}">${n.status === 'sent' ? '已发送' : n.status === 'skipped' ? '已跳过' : n.status === 'quiet' ? '🌙 静默' : '失败'}</span></td>
|
||||
</tr>`).join('');
|
||||
} catch (e) {}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user