关键修复: 不再直读WAL活库(会撞checkpoint报malformed), 改VACUUM INTO每5分钟一致性快照; 前端数据加载失败显式提示+重试; 看板显示快照时间
This commit is contained in:
+7
-2
@@ -144,7 +144,11 @@ async function enter(m){
|
||||
me=m;$('loginBox').classList.add('hidden');$('main').classList.remove('hidden');$('logoutBtn').classList.remove('hidden');
|
||||
$('whoami').textContent=`${m.username} · ${m.role==='super'?'超管':'HR'}`;
|
||||
if(m.role==='super'){$('userPanel').classList.remove('hidden');loadUsers()}
|
||||
loadStats();loadList(1);
|
||||
loadStats().catch(e=>dataErr(e));loadList(1).catch(e=>dataErr(e));
|
||||
}
|
||||
function dataErr(e){
|
||||
$('statCards').innerHTML=`<div class="card" style="grid-column:1/-1"><div class="k">⚠ 数据加载失败</div><div style="font-size:14px">${esc(e.message)} <button class="btn sub small" onclick="loadStats().then(()=>loadList(1)).catch(e=>dataErr(e))">重试</button></div></div>`;
|
||||
toast('数据加载失败: '+e.message);
|
||||
}
|
||||
async function loadStats(){
|
||||
const s=await api('/api/stats');
|
||||
@@ -152,7 +156,8 @@ async function loadStats(){
|
||||
<div class="card"><div class="k">累计候选人</div><div class="v">${s.total}</div></div>
|
||||
<div class="card"><div class="k">今日新增</div><div class="v">${s.today}</div></div>
|
||||
<div class="card"><div class="k">累计打招呼</div><div class="v">${s.greetedTotal}</div></div>
|
||||
${s.byLevel.map(x=>`<div class="card"><div class="k">${esc(x.k)}</div><div class="v">${x.c}</div></div>`).join('')}`;
|
||||
${s.byLevel.map(x=>`<div class="card"><div class="k">${esc(x.k)}</div><div class="v">${x.c}</div></div>`).join('')}
|
||||
<div class="card"><div class="k">数据快照</div><div class="v" style="font-size:16px">${s.snapshotAt?new Date(new Date(s.snapshotAt).getTime()+8*3600e3).toISOString().slice(11,19):'-'}<span style="font-size:11px;color:var(--sub)"> +8 每5分钟</span></div></div>`;
|
||||
const mx=Math.max(1,...s.last7.map(d=>d.c));
|
||||
$('trend').innerHTML=s.last7.map(d=>`<div class="b">
|
||||
<div class="lbl">${d.c}人/${d.greeted}招呼</div>
|
||||
|
||||
Reference in New Issue
Block a user