fix: data-action delegation + convert onclick to event listeners, sidebar+logout+modals

This commit is contained in:
2026-07-15 02:44:18 +08:00
parent 9e15a319f5
commit f0e891b17c
20 changed files with 147 additions and 133 deletions

View File

@@ -11,8 +11,8 @@ const ExportPage = {
<div class="card"><div class="card-h"><i class="fas fa-file-csv"></i> 撖澆枂撌亙<E6928C></div><div class="card-b">
<form id="exp-tickets">
<div class="grid-2"><div class="form-group"><label>蝐餃<E89D90></label><select id="et-type"><option value=""><3E><EFBFBD></option>${Object.entries(U.TYPE).map(([k,v])=>`<option value="${k}">${v}</option>`).join('')}</select></div>
<div class="form-group"><label>状态</label><select id="et-status"><option value="">全部</option>${Object.entries(U.STATUS).map(([k,v])=>`<option value="${k}">${v}</option>`).join('')}</select></div></div>
<div class="grid-2"><div class="form-group"><label>开始日期</label><input type="date" id="et-start"></div><div class="form-group"><label>结束日期</label><input type="date" id="et-end"></div></div>
<div class="form-group"><label><EFBFBD><EFBFBD>?/label><select id="et-status"><option value=""><EFBFBD><EFBFBD></option>${Object.entries(U.STATUS).map(([k,v])=>`<option value="${k}">${v}</option>`).join('')}</select></div></div>
<div class="grid-2"><div class="form-group"><label><EFBFBD>憪𧢲𠯫<EFBFBD>?/label><input type="date" id="et-start"></div><div class="form-group"><label>蝏𤘪<EFBFBD><EFBFBD><EFBFBD></label><input type="date" id="et-end"></div></div>
<div class="form-group"><label><3E><EFBFBD></label><select id="et-fmt"><option value="csv">CSV (Excel)</option><option value="json">JSON</option></select></div>
<button type="submit" class="btn btn-p btn-sm"><i class="fas fa-download"></i> 撖澆枂</button>
</form>
@@ -28,14 +28,14 @@ const ExportPage = {
<div class="card"><div class="card-h"><i class="fas fa-history"></i> 撖澆枂<E6BE86><EFBFBD><E6BBA2><EFBFBD></div><div class="card-b">
<form id="exp-logs">
<div class="grid-2"><div class="form-group"><label>开始日期</label><input type="date" id="el-start"></div><div class="form-group"><label>结束日期</label><input type="date" id="el-end"></div></div>
<div class="grid-2"><div class="form-group"><label><EFBFBD>憪𧢲𠯫<EFBFBD>?/label><input type="date" id="el-start"></div><div class="form-group"><label>蝏𤘪<EFBFBD><EFBFBD><EFBFBD></label><input type="date" id="el-end"></div></div>
<div class="form-group"><label><3E><EFBFBD></label><select id="el-fmt"><option value="csv">CSV (Excel)</option><option value="json">JSON</option></select></div>
<button type="submit" class="btn btn-i btn-sm"><i class="fas fa-download"></i> 撖澆枂</button>
</form>
</div></div>
<div class="card"><div class="card-h"><i class="fas fa-chart-bar"></i> 蝏蠘恣<E8A098>亥”</div><div class="card-b">
<p class="tm mb-4">查看系统整体统计和趋势数据</p>
<p class="tm mb-4"><EFBFBD><EFBFBD>蝟餌<EFBFBD><EFBFBD><EFBFBD>蝏蠘恣<EFBFBD><EFBFBD><EFBFBD>踵㺭<EFBFBD>?/p>
<button class="btn btn-p btn-sm" onclick="ExportPage.viewStats()"><i class="fas fa-chart-simple"></i> <20><EFBFBD>蝏蠘恣</button>
</div></div>
</div>
@@ -77,11 +77,11 @@ const ExportPage = {
<div class="detail-section"><h4>璁<><E79281></h4>
<div class="detail-row"><span class="lbl">撌亙<E6928C><E4BA99>餅㺭</span><span class="val fb">${d.total}</span></div>
<div class="detail-row"><span class="lbl">隞𦠜𠯫<F0A6A09C><EFBFBD></span><span class="val fb">${d.today}</span></div>
<div class="detail-row"><span class="lbl">用户数</span><span class="val fb">${d.usersTotal}</span></div>
<div class="detail-row"><span class="lbl"><EFBFBD><EFBFBD><EFBFBD>?/span><span class="val fb">${d.usersTotal}</span></div>
</div>
<div class="detail-section"><h4>状态分布</h4>${(d.byStatus||[]).map(r=>`<div class="detail-row"><span class="lbl">${U.STATUS[r.status]||r.status}</span><span class="val fb">${r.c}</span></div>`).join('')}</div>
<div class="detail-section"><h4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>撣?/h4>${(d.byStatus||[]).map(r=>`<div class="detail-row"><span class="lbl">${U.STATUS[r.status]||r.status}</span><span class="val fb">${r.c}</span></div>`).join('')}</div>
<div class="detail-section"><h4>蝐餃<E89D90><E9A483><EFBFBD><EFBFBD></h4>${(d.byType||[]).map(r=>`<div class="detail-row"><span class="lbl">${U.TYPE[r.type]||r.type}</span><span class="val fb">${r.c}</span></div>`).join('')}</div>
${d.monthly?.length?`<div class="detail-section"><h4>月度趋势</h4>${d.monthly.map(m=>`<div class="detail-row"><span class="lbl">${m.m}</span><span class="val fb">${m.c} 条</span></div>`).join('')}</div>`:''}
${d.monthly?.length?`<div class="detail-section"><h4><EFBFBD><EFBFBD>漲頞见飵</h4>${d.monthly.map(m=>`<div class="detail-row"><span class="lbl">${m.m}</span><span class="val fb">${m.c} <EFBFBD>?/span></div>`).join('')}</div>`:''}
`, '600px');
} catch (e) { alert(e.message); }
}