const UsersPage = { async render() { return '
'; }, async mount() { document.getElementById('page-title').textContent = '用户管理'; document.getElementById('page-actions').innerHTML = ''; await this.load(); }, async load() { const ct = document.getElementById('page-content'); try { const users = await API.get('/users'); ct.innerHTML = `
${users.map(u => ` `).join('')}
#用户名邮箱游戏名游戏UID角色状态时间操作
${u.id}${U.esc(u.username)}${U.esc(u.email)} ${U.esc(u.game_name)}${U.esc(u.game_uid)} ${U.badge(u.role,'role')} ${u.active ? '启用' : '禁用'} ${U.date(u.created_at)}
`; } catch (e) { ct.innerHTML = `
${e.message}
`; } }, createUser() { U.modal('添加用户', `
`); document.getElementById('cu-form').onsubmit = async e => { e.preventDefault(); try { await API.post('/users', { username: document.getElementById('cu-u').value, password: document.getElementById('cu-p').value, email: document.getElementById('cu-e').value, role: document.getElementById('cu-r').value, game_name: document.getElementById('cu-gn').value, game_uid: document.getElementById('cu-gu').value, }); App.closeModal(); this.load(); } catch (ex) { alert(ex.message); } }; }, editUser(id, username, email, gameName, gameUid, role, active) { U.modal('编辑用户', `
`); document.getElementById('eu-form').onsubmit = async e => { e.preventDefault(); const data = { email: document.getElementById('eu-e').value, role: document.getElementById('eu-r').value, game_name: document.getElementById('eu-gn').value, game_uid: document.getElementById('eu-gu').value, active: document.getElementById('eu-a').value === '1', }; const pw = document.getElementById('eu-p').value; if (pw) data.password = pw; try { await API.put(`/users/${id}`, data); App.closeModal(); this.load(); } catch (ex) { alert(ex.message); } }; } };