fix: data-action delegation + convert onclick to event listeners, sidebar+logout+modals
This commit is contained in:
@@ -39,19 +39,19 @@ const HomePage = {
|
||||
|
||||
this.searchTracking = async () => {
|
||||
const token = document.getElementById('track-token').value.trim();
|
||||
if (!token) return alert('请输入追踪标识');
|
||||
if (!token) return alert('霂瑁<EFBFBD><EFBFBD>亥蕭頦芣<EFBFBD>霂?);
|
||||
const ct = document.getElementById('track-result');
|
||||
ct.innerHTML = '<div class="loading"><i class="fas fa-spinner"></i></div>';
|
||||
try {
|
||||
const tickets = await API.get(`/tickets/tracking?token=${token}`);
|
||||
ct.innerHTML = tickets.length ? `
|
||||
<div class="table-wrap"><table><thead><tr>
|
||||
<th>#</th><th>类型</th><th>标题</th><th>状态</th><th>时间</th><th>操作</th>
|
||||
<th>#</th><th>蝐餃<EFBFBD></th><th><EFBFBD><EFBFBD><EFBFBD></th><th><EFBFBD>嗆<EFBFBD>?/th><th><EFBFBD>園𡢿</th><th><EFBFBD>滢<EFBFBD></th>
|
||||
</tr></thead><tbody>${tickets.map(tick => `
|
||||
<tr><td>${tick.id}</td><td>${U.badge(tick.type,'type')}</td><td>${U.esc(tick.title)}</td>
|
||||
<td>${U.badge(tick.status,'status')}</td><td>${U.date(tick.created_at)}</td>
|
||||
<td><button class="btn btn-o btn-sm" onclick="App.navigate('home','tracking');HomePage.showTrackDetail(${tick.id},'${U.escJs(token)}')"><3E>亦<EFBFBD></button></td></tr>
|
||||
`).join('')}</tbody></table></div>` : '<div class="empty"><i class="fas fa-inbox"></i><p>未找到工单</p></div>';
|
||||
`).join('')}</tbody></table></div>` : '<div class="empty"><i class="fas fa-inbox"></i><p><EFBFBD>芣𪄳<EFBFBD>啣極<EFBFBD>?/p></div>';
|
||||
} catch (ex) { ct.innerHTML = `<div class="alert alert-e">${ex.message}</div>`; }
|
||||
};
|
||||
},
|
||||
@@ -62,20 +62,20 @@ const HomePage = {
|
||||
U.loading(ct);
|
||||
API.get(`/tickets/tracking?token=${token}`).then(tickets => {
|
||||
const t = tickets.find(x => x.id === id);
|
||||
if (!t) { ct.innerHTML = '<p>未找到</p>'; return; }
|
||||
if (!t) { ct.innerHTML = '<p><EFBFBD>芣𪄳<EFBFBD>?/p>'; return; }
|
||||
ct.innerHTML = `
|
||||
<div class="detail-section"><h4><3E>箸𧋦靽⊥<E99DBD></h4>
|
||||
<div class="detail-row"><span class="lbl"><3E><><EFBFBD></span><span class="val fb">${U.esc(t.title)}</span></div>
|
||||
<div class="detail-row"><span class="lbl">蝐餃<E89D90></span><span class="val">${U.badge(t.type,'type')}</span></div>
|
||||
<div class="detail-row"><span class="lbl">状态</span><span class="val">${U.badge(t.status,'status')}</span></div>
|
||||
<div class="detail-row"><span class="lbl">提交者</span><span class="val">${U.esc(t.reporter_game_name)} (UID: ${U.esc(t.reporter_game_uid)})</span></div>
|
||||
<div class="detail-row"><span class="lbl"><EFBFBD>嗆<EFBFBD>?/span><span class="val">${U.badge(t.status,'status')}</span></div>
|
||||
<div class="detail-row"><span class="lbl"><EFBFBD>𣂷漱<EFBFBD>?/span><span class="val">${U.esc(t.reporter_game_name)} (UID: ${U.esc(t.reporter_game_uid)})</span></div>
|
||||
${t.type==='report'?`
|
||||
<div class="detail-row"><span class="lbl">鋡思蜀<E6809D>乩犖</span><span class="val">${U.esc(t.target_game_name||'?')} (UID: ${U.esc(t.target_game_uid||'?')})</span></div>
|
||||
<div class="detail-row"><span class="lbl"><3E>笔<EFBFBD></span><span class="val">${U.esc(t.reason)}</span></div>`:''}
|
||||
${t.description?`<div class="detail-row"><span class="lbl">霂行<E99C82></span><span class="val">${U.esc(t.description)}</span></div>`:''}
|
||||
<div class="detail-row"><span class="lbl"><3E>園𡢿</span><span class="val">${U.date(t.created_at)}</span></div>
|
||||
</div>
|
||||
<p class="tm ts">如需回复,请<a href="#/register" style="color:var(--p)">注册账号</a>后关联此工单。</p>`;
|
||||
<p class="tm ts">憒<EFBFBD><EFBFBD><EFBFBD>𧼮<EFBFBD>嚗諹窈<a href="#/register" style="color:var(--p)">瘜典<EFBFBD>韐血噡</a><3E>𤾸<EFBFBD><F0A4BEB8>娍迨撌亙<E6928C><E4BA99>?/p>`;
|
||||
}).catch(e => { ct.innerHTML = `<div class="alert alert-e">${e.message}</div>`; });
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user