仪表盘
系统概览
繁殖场总数
{{ stats.farms }}
用户总数
{{ stats.users }}
未使用邀请码
{{ stats.active_licenses }}
同步记录
{{ stats.sync_records }}
已发布版本
{{ stats.published_version ? stats.published_version.version_name : '暂无' }}
繁殖场管理
繁殖场列表 ({{ filteredFarms.length }})
加载中...
暂无数据
| ID | 名称 | 状态 | 到期日 | 笼数 | 成员 | 在线 | 云同步 | 自动更新 | 创建时间 | 操作 |
|---|---|---|---|---|---|---|---|---|---|---|
| {{ f.id }} | {{ f.name }} | {{ statusLabel(f.status) }} | {{ f.expire_date || '-' }} | {{ f.real_cage_count !== undefined ? f.real_cage_count : f.cage_limit }} | {{ f.user_count }} | {{ f.online_user_count || 0 }} |
{{ f.cloud_sync ? '已开启' : '已关闭' }}
{{ f.cloud_sync ? '关闭云同步' : '开启云同步' }}
|
{{ f.auto_update ? '已开启' : '已关闭' }}
{{ f.auto_update ? '关闭自动更新' : '开启自动更新' }}
|
{{ formatDate(f.created_at) }} | |
用户管理
用户列表 ({{ filteredUsers.length }})
加载中...
暂无数据
授权码管理
邀请码列表 ({{ licenses.length }})
加载中...
暂无数据
| ID | 邀请码 | 归属繁殖场 | 状态 | 使用人 | 创建时间 | 使用时间 |
|---|---|---|---|---|---|---|
| {{ l.id }} | {{ l.code }} |
{{ l.farm_name || '-' }} | {{ l.is_used ? '已使用' : '未使用' }} | {{ l.used_by_name || '-' }} | {{ formatDate(l.created_at) }} | {{ l.used_at ? formatDate(l.used_at) : '-' }} |
版本管理
版本列表 ({{ versions.length }})
加载中...
暂无数据
| ID | 版本名 | 版本号 | 强制更新 | 文件大小 | 状态 | 创建时间 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ v.id }} | {{ v.version_name }} | {{ v.version_code }} | {{ v.force_update ? '是' : '否' }} | {{ v.file_size ? (v.file_size / 1048576).toFixed(2) + ' MB' : '-' }} | {{ v.status }} | {{ formatDate(v.created_at) }} |
新建版本
{{ versionError }}
推送消息管理
总计 {{ msgList.length }} 条
| 通知 {{ msgList.filter(m => m.msg_type === 'notice').length }}
| 警告 {{ msgList.filter(m => m.msg_type === 'alert').length }}
| 更新 {{ msgList.filter(m => m.msg_type === 'update').length }}
发送新消息
{{ sendMsgError }}
{{ sendMsgSuccess }}
消息列表 ({{ msgList.length }})
加载中...
暂无消息
| ID | 标题 | 目标农场 | 类型 | 创建时间 | 操作 |
|---|---|---|---|---|---|
| {{ m.id }} | {{ m.title }} | {{ m.farm_name || '全部农场' }} | {{ msgTypeLabel(m.msg_type) }} | {{ formatDate(m.created_at) }}{{ timeAgo(m.created_at) }} | |
|
{{ m.content }}
|
|||||