管理后台

ADMIN_CONSOLE v2.0

{{ loginError }}

仪表盘

{{ lastRefresh }}
{{ stats.total_users || 0 }}
总用户数
{{ stats.online_devices || 0 }}
在线设备
{{ stats.unused_cards || 0 }}
未使用卡密
{{ stats.used_cards || 0 }}
已使用卡密
{{ stats.unhandled_risks || 0 }}
待处理风险
最近活动
暂无数据
{{ formatTime(log.created_at) }} {{ sanitize(log.action) }} {{ log.status === 1 ? '成功' : '失败' }}

用户管理

批量操作:
ID 用户名 绑定卡密 状态 到期时间 设备/上限 操作
暂无数据
{{ user.id }} {{ sanitize(user.username) }} {{ user.card_key }} - {{ user.status === 1 ? '正常' : '禁用' }} {{ formatTimeFull(user.expire_at) || '-' }} {{ user.device_count || 0 }}/{{ user.max_devices || 1 }}
共 {{ pagination.users.total }} 条,第 {{ pagination.users.page }} / {{ Math.ceil(pagination.users.total / pagination.users.pageSize) || 1 }} 页
{{ pagination.users.page }}

卡密管理

{{ cardStats.total || 0 }}
总数
{{ cardStats.unused || 0 }}
未使用
{{ cardStats.used || 0 }}
已使用
{{ cardStats.disabled || 0 }}
已禁用
{{ cardStats.today_created || 0 }}
今日生成
{{ cardStats.today_used || 0 }}
今日使用
已选择 {{ selectedCards.length }} 张卡密
卡密 类型 天数 设备 状态 使用者 到期时间 备注 操作
暂无数据
{{ formatCardKey(card.card_key) }} {{ getCardTypeName(card.card_type) }} {{ card.days }} {{ card.device_count || 0 }}/{{ card.max_devices }} {{ getStatusName(card.status) }} {{ card.username }} - {{ formatTime(card.user_expire_at) }} - {{ card.remark || '-' }}
共 {{ pagination.cards.total }} 条,第 {{ pagination.cards.page }} / {{ Math.ceil(pagination.cards.total / pagination.cards.pageSize) || 1 }} 页
{{ pagination.cards.page }}

设备监控

🔧 快速解绑设备
⚡ 支持前缀匹配:输入部分设备ID即可(如表格显示 215ee2a8a535...,直接输入 215ee2a8a535)
✓ 用于解绑"该设备已绑定到其他账户"的设备,解绑后用户可重新登录
{{ deviceStats.total || 0 }}
总设备数
{{ deviceStats.online || 0 }}
在线设备
{{ deviceStats.offline || 0 }}
离线设备
{{ stats.total_heartbeats_today || 0 }}
今日心跳
设备ID 设备名 用户 系统 状态 最后IP 最后活跃 操作
暂无数据
{{ device.device_id || '-' }} {{ device.device_name || '未知' }} {{ device.username || '-' }} {{ device.os || '-' }} {{ device.is_online ? '● 在线' : '○ 离线' }} {{ maskIP(device.last_ip) }} {{ formatTime(device.last_heartbeat) }}
共 {{ pagination.devices.total }} 条
{{ pagination.devices.page }}

风险管理

{{ riskStats.total || 0 }}
总风险
{{ riskStats.unhandled || 0 }}
待处理
{{ riskStats.low || 0 }}
低风险
{{ riskStats.medium || 0 }}
中风险
{{ (riskStats.high || 0) + (riskStats.critical || 0) }}
高危/严重
ID 时间 用户 类型 级别 描述 状态 操作
暂无风险记录
{{ risk.id }} {{ formatTime(risk.created_at) }} {{ risk.user?.username || '-' }} {{ getRiskTypeName(risk.risk_type) }} {{ getRiskLevelName(risk.risk_level) }} {{ sanitize(risk.description) }} {{ risk.handled ? '已处理' : '待处理' }}
共 {{ pagination.risks.total }} 条
{{ pagination.risks.page }}

操作日志

ID 时间 用户ID 操作 IP 状态
暂无数据
{{ log.id }} {{ formatTime(log.created_at) }} {{ log.user_id || '-' }} {{ sanitize(log.action) }} {{ maskIP(log.ip) }} {{ log.status === 1 ? '成功' : '失败' }}
共 {{ pagination.logs.total }} 条
{{ pagination.logs.page }}

生成卡密

✓ 生成成功

{{ formatCardKey(card) }}
设备ID:
machineId: {{ generatedResult.device_ids.machine_id }}
macMachineId: {{ generatedResult.device_ids.mac_machine_id }}
devDeviceId: {{ generatedResult.device_ids.dev_device_id }}

确认操作

{{ confirmModal.message }}

风险详情 #{{ currentRisk.id }}

类型:{{ getRiskTypeName(currentRisk.risk_type) }}
级别:{{ getRiskLevelName(currentRisk.risk_level) }}
用户:{{ currentRisk.user?.username || '-' }}
IP:{{ currentRisk.ip }}
时间:{{ formatTime(currentRisk.created_at) }}
描述:
{{ currentRisk.description }}
详情:
{{ currentRisk.details }}

处理风险 #{{ handleRiskModal.risk?.id }}

设备管理 - {{ devicesModal.username }}

设备名 系统 状态 最后活跃 操作
{{ device.device_name || '未知设备' }} {{ device.os || '-' }} {{ device.is_online ? '在线' : '离线' }} {{ formatTime(device.last_active) || '-' }}
暂无设备

绑定卡密

用户: {{ bindCardModal.username }}
支持两种格式:
• 带横杠:A08D-7FEB-2055-1BD2-D69D-364A-4BB7-2611
• 不带横杠:A08D7FEB20551BD2D69D364A4BB72611

修改设备限制

用户: {{ userMaxDevicesModal.username }}
当前上限: {{ userMaxDevicesModal.currentMax }} 台设备
设置为较大值可解除设备数量限制(如 99)

远程更新 Token

⚠️ 此功能用于远程切换用户的 Cursor 登录信息。更新后,用户的客户端会自动检测到变化并刷新 Cursor。
用户: {{ updateTokenModal.username }} (ID: {{ updateTokenModal.userId }})

卡密详情

卡密
{{ formatCardKey(cardDetailModal.data.card_key) }}
类型:{{ getCardTypeName(cardDetailModal.data.card_type) }}
天数:{{ cardDetailModal.data.days }}
设备限制:{{ cardDetailModal.data.max_devices }}
状态:{{ getStatusName(cardDetailModal.data.status) }}
Token:{{ cardDetailModal.data.has_access_token ? '✓ 有' : '✗ 无' }}
使用者信息
用户名:{{ cardDetailModal.data.username }}
到期时间:{{ formatTimeFull(cardDetailModal.data.user_expire_at) }}
设备数:{{ cardDetailModal.data.device_count || 0 }}
在线数:{{ cardDetailModal.data.online_count || 0 }}
备注
{{ cardDetailModal.data.remark }}
创建时间:{{ formatTimeFull(cardDetailModal.data.created_at) }}
使用时间:{{ formatTimeFull(cardDetailModal.data.used_at) }}

修改天数

卡密: {{ formatCardKey(cardDaysModal.cardKey).substring(0, 19) }}...
当前天数: {{ cardDaysModal.currentDays }} 天
范围: 1-3650天。如卡密已使用,用户过期时间会同步调整。

修改备注

卡密: {{ formatCardKey(cardRemarkModal.cardKey).substring(0, 19) }}...

修改设备上限

卡密: {{ formatCardKey(maxDevicesModal.cardKey) }}
当前上限: {{ maxDevicesModal.currentMax }} 台设备
设置为较大值可解除设备数量限制(如 99)
{{ toast.message }}