v2.9update

This commit is contained in:
2026-06-08 10:40:59 +08:00
parent 8d497d73d2
commit 70e7ad8e5e
20 changed files with 162 additions and 74 deletions

View File

@@ -18,10 +18,14 @@ async function loadAdmins() {
if (res && res.success) {
let html = '';
res.data.admins.forEach(admin => {
const isActive = admin.status === 1;
const statusClass = isActive ? 'subject-status-active' : 'subject-status-inactive';
const statusText = isActive ? '启用' : '禁用';
html += `<tr>
<td>${escapeHtml(admin.username)}</td>
<td>${escapeHtml(admin.real_name)}</td>
<td>${escapeHtml(admin.role_type)}</td>
<td><span class="subject-status ${statusClass}">${statusText}</span></td>
<td>
<div class="action-dropdown">
<button class="btn btn-sm action-dropdown-toggle" onclick="toggleActionDropdown(this)">操作 ▼</button>
@@ -29,14 +33,14 @@ async function loadAdmins() {
<a onclick="showEditAdminModal(${admin.user_id}, '${escapeHtml(admin.username)}', '${escapeHtml(admin.real_name)}', '${escapeHtml(admin.role_type)}')">编辑</a>
<a onclick="resetAdminPassword(${admin.user_id}, '${escapeHtml(admin.real_name)}')">重置密码</a>
<a onclick="unlockUser('${escapeHtml(admin.username)}', '${escapeHtml(admin.real_name)}')">解锁</a>
<a class="danger" onclick="deleteAdmin(${admin.user_id}, '${escapeHtml(admin.real_name)}')">删除</a>
<a class="${isActive ? 'danger' : ''}" onclick="toggleAdminStatus(${admin.user_id}, '${escapeHtml(admin.real_name)}', ${isActive ? 1 : 0})">${isActive ? '禁用' : '启用'}</a>
</div>
</div>
</td>
</tr>`;
});
if (res.data.admins.length === 0) {
html = '<tr><td colspan="4" style="text-align:center;">暂无管理员</td></tr>';
html = '<tr><td colspan="5" style="text-align:center;">暂无管理员</td></tr>';
}
document.getElementById('adminList').innerHTML = html;
}
@@ -74,17 +78,21 @@ async function submitEditAdmin() {
}
}
async function deleteAdmin(userId, realName) {
if (!confirm(`确定要删除管理员 "${realName}" 吗?此操作不可恢复。`)) {
async function toggleAdminStatus(userId, realName, currentStatus) {
const action = currentStatus === 1 ? '禁用' : '启用';
const warnMsg = currentStatus === 1
? `禁用后该管理员将无法登录,确定要禁用 "${realName}" 吗?`
: `确定要重新启用管理员 "${realName}" 吗?`;
if (!confirm(warnMsg)) {
return;
}
const res = await apiDelete(`/api/admin/delete/${userId}`);
const res = await apiPut(`/api/admin/toggle-status/${userId}`);
if (res && res.success) {
showToast('管理员删除成功');
showToast(res.message || `管理员已${action}`);
loadAdmins();
} else {
showToast(res?.message || '删除失败', 'error');
showToast(res?.message || '操作失败', 'error');
}
}
@@ -138,7 +146,7 @@ loadAdmins();
window.loadAdmins = loadAdmins;
window.showEditAdminModal = showEditAdminModal;
window.submitEditAdmin = submitEditAdmin;
window.deleteAdmin = deleteAdmin;
window.toggleAdminStatus = toggleAdminStatus;
window.resetAdminPassword = resetAdminPassword;
window.unlockUser = unlockUser;
window.submitResetPassword = submitResetPassword;