diff --git a/admin.php b/admin.php index 5b1da40..ba3f7f6 100644 --- a/admin.php +++ b/admin.php @@ -2886,19 +2886,29 @@ async function showGroupMembers(groupName) { html += ``; // 添加成员 - html += `
- + html += `
+ + -
`; +
+
到期留0则按用户组设置的duration_minutes自动计算
`; // 成员列表 if (members.length === 0) { html += '
暂无成员
'; } else { - html += '
'; + html += '
玩家名添加者操作
'; for (const m of members) { + const expiry = m.expiry_time ? parseInt(m.expiry_time) : 0; + let expiryStr = '-'; + if (expiry > 0) { + expiryStr = new Date(expiry * 1000).toLocaleString('zh-CN'); + } else { + expiryStr = '按组期限'; + } html += ` + `; @@ -2915,12 +2925,15 @@ async function showGroupMembers(groupName) { async function doAddGroupMember(groupName) { const inputEl = document.getElementById('ugNewMember'); + const expiryEl = document.getElementById('ugNewMemberExpiry'); const player = inputEl ? inputEl.value.trim() : ''; if (!player) { glassAlert('请输入玩家名'); return; } if (!/^[a-zA-Z0-9_]{3,16}$/.test(player)) { glassAlert('玩家名格式不正确,仅支持英文字母、数字和下划线(3-16位)'); return; } + const expiryTime = expiryEl ? (parseInt(expiryEl.value) || 0) : 0; + try { - const res = await apiCall('add_group_member', {group: groupName, player}, 'POST'); + const res = await apiCall('add_group_member', {group: groupName, player, expiry_time: expiryTime}, 'POST'); if (res.success) { // pending=true 是异步验证响应,需要特殊处理 if (res.pending) {
玩家名到期时间添加者操作
${escAdmHtml(m.player_name)}${expiryStr} ${escAdmHtml(m.added_by || '-')}