fix: restore from regex corruption, JS-bind modal close, data-action delegation

This commit is contained in:
2026-07-15 03:53:16 +08:00
parent 80f8342c0b
commit 021351d898
20 changed files with 140 additions and 152 deletions

View File

@@ -11,8 +11,8 @@ const ExportPage = {
<div class="card"><div class="card-h"><i class="fas fa-file-csv"></i> 导出工单</div><div class="card-b">
<form id="exp-tickets">
<div class="grid-2"><div class="form-group"><label>类型</label><select id="et-type"><option value="">全部</option>${Object.entries(U.TYPE).map(([k,v])=>`<option value="${k}">${v}</option>`).join('')}</select></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>状态</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>格式</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> 导出操作日志</div><div class="card-b">
<form id="exp-logs">
<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="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="form-group"><label>格式</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> 统计报表</div><div class="card-b">
<p class="tm mb-4"><EFBFBD><EFBFBD>蝟餌<EFBFBD><EFBFBD><EFBFBD>蝏蠘恣<EFBFBD><EFBFBD><EFBFBD>踵㺭<EFBFBD>?/p>
<p class="tm mb-4">查看系统整体统计和趋势数据</p>
<button class="btn btn-p btn-sm" onclick="ExportPage.viewStats()"><i class="fas fa-chart-simple"></i> 查看统计</button>
</div></div>
</div>
@@ -77,11 +77,11 @@ const ExportPage = {
<div class="detail-section"><h4>概览</h4>
<div class="detail-row"><span class="lbl">工单总数</span><span class="val fb">${d.total}</span></div>
<div class="detail-row"><span class="lbl">今日新增</span><span class="val fb">${d.today}</span></div>
<div class="detail-row"><span class="lbl"><EFBFBD><EFBFBD><EFBFBD>?/span><span class="val fb">${d.usersTotal}</span></div>
<div class="detail-row"><span class="lbl">用户数</span><span class="val fb">${d.usersTotal}</span></div>
</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>状态分布</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>类型分布</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><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>`:''}
${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>`:''}
`, '600px');
} catch (e) { alert(e.message); }
}