fix: add source field to bans + display in list

This commit is contained in:
2026-07-18 01:26:37 +08:00
parent d242786a3a
commit ce51abc127
3 changed files with 10 additions and 7 deletions

View File

@@ -19,10 +19,11 @@ const BansPage = {
ct.innerHTML = bans.length === 0
? '<div class="empty"><i class="fas fa-ban"></i><p>暂无封禁记录</p></div>'
: `<div class="card table-wrap"><table><thead><tr><th>玩家</th><th>UID</th><th>类型</th><th>原因</th><th>时长</th><th>状态</th><th>时间</th>${Auth.isOwner()?'<th>操作</th>':''}</tr></thead><tbody>${bans.map(b => `
: `<div class="card table-wrap"><table><thead><tr><th>玩家</th><th>UID</th><th>来源</th><th>类型</th><th>原因</th><th>时长</th><th>状态</th><th>时间</th>${Auth.isOwner()?'<th>操作</th>':''}</tr></thead><tbody>${bans.map(b => `
<tr>
<td>${isStaff ? U.esc(b.player_name) : maskName(b.player_name)}</td>
<td class="ts">${isStaff ? U.esc(b.player_uid||'-') : maskUid(b.player_uid)}</td>
<td class="ts">${b.source==='netease'?'网易':b.source==='skin'?'皮肤站':b.source||'-'}</td>
<td>${b.type==='ban'?'<span class="badge bg-urgent">封禁</span>':b.type==='mute'?'<span class="badge bg-medium">禁言</span>':'<span class="badge bg-player">警告</span>'}</td>
<td class="ts">${U.esc((b.reason||'').substring(0,50))}</td>
<td>${b.duration||'永久'}</td>
@@ -37,7 +38,7 @@ const BansPage = {
U.modal('添加封禁', `
<form id="ban-form">
<div class="grid-2"><div class="form-group"><label>玩家名 *</label><input id="ban-name" required></div><div class="form-group"><label>UID</label><input id="ban-uid"></div></div>
<div class="grid-2"><div class="form-group"><label>类型</label><select id="ban-type" onchange="BansPage.checkMinDuration()"><option value="ban">封禁</option><option value="mute">禁言</option><option value="warn">警告</option></select></div><div class="form-group"><label>时长</label><select id="ban-dur"><option value="">永久</option><option value="3天">3天</option><option value="7天">7天</option><option value="30天">30天</option></select></div></div>
<div class="grid-2"><div class="form-group"><label>来源</label><select id="ban-source"><option value="">未知</option><option value="netease">网易端</option><option value="skin">皮肤站</option></select></div><div class="form-group"><label>类型</label><select id="ban-type" onchange="BansPage.checkMinDuration()"><option value="ban">封禁</option><option value="mute">禁言</option><option value="warn">警告</option></select></div></div>
<div class="form-group"><label>原因</label><textarea id="ban-reason" rows="2"></textarea></div>
<div class="modal-f"><button type="button" class="btn btn-o" data-action="App:closeModal">取消</button><button type="submit" class="btn btn-p">添加</button></div>
</form>
@@ -45,7 +46,7 @@ const BansPage = {
document.getElementById('ban-form').onsubmit = async e => {
e.preventDefault();
try {
await API.post('/bans', { player_name: document.getElementById('ban-name').value, player_uid: document.getElementById('ban-uid').value, type: document.getElementById('ban-type').value, duration: document.getElementById('ban-dur').value, reason: document.getElementById('ban-reason').value });
await API.post('/bans', { player_name: document.getElementById('ban-name').value, player_uid: document.getElementById('ban-uid').value, source: document.getElementById('ban-source').value, type: document.getElementById('ban-type').value, duration: document.getElementById('ban-dur').value, reason: document.getElementById('ban-reason').value });
App.closeModal(); this.load();
} catch(ex) { alert(ex.message); }
};