数据概览
实时监控平台核心业务指标
总用户数
{{ formatNumber(stats.users?.total) }}
↗
今日 +{{ stats.users?.today || 0 }}
短剧内容
{{ formatNumber(stats.dramas?.total) }}
{{ stats.dramas?.active || 0 }} 部已上架
总订单数
{{ formatNumber(stats.orders?.total) }}
会员 {{ stats.orders?.membership_total || 0 }} · 商城 {{ stats.orders?.shop_total || 0 }}
本月收入(会员+商城)
${{ formatNumber(stats.orders?.month_revenue) }}
USD
最近注册用户
| 用户 | 邮箱 | 积分 | 注册时间 |
|---|---|---|---|
|
{{ u.name?.charAt(0) || '?' }}
{{ u.name }}
|
{{ u.email }} | {{ u.points_balance || 0 }} 分 | {{ formatDate(u.created_at) }} |
系统公告
🎉 欢迎使用 MeetDrama 管理后台
当前版本 v2.0 Enterprise
如需技术支持,请联系开发团队
如需技术支持,请联系开发团队
📊 数据最后更新: {{ new Date().toLocaleString() }}
🔒 安全状态: 正常
🌐 服务器: 在线
用户管理
平台注册用户列表与运营操作
| 用户 | 邮箱 | 邀请码 | 邀请人 | 积分 | VIP | 状态 | 注册时间 | 操作 |
|---|---|---|---|---|---|---|---|---|
| {{ u.name || '-' }} | {{ u.email }} | {{ u.invite_code }}- |
{{ u.referrer?.email || '-' }} | {{ u.points_balance || 0 }} | {{ u.is_vip ? 'VIP' : '普通' }} | {{ u.is_active !== false ? '正常' : '封禁' }} | {{ formatDate(u.created_at) }} |
共 {{ userList.total }} 条
{{ userList.current_page }} / {{ userList.last_page }}
短剧管理
短剧内容与剧集配置
| 剧名 | 语言 | 分类 | 标签 | 播放量 | 集数 | 状态 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ d.title }} | {{ langLabel(d.lang_code) }} | {{ d.drama_category?.name || d.category || '-' }} | {{ dramaTagLabel(t, d.lang_code) }} - | {{ formatPlayCount(d.play_count) }} | {{ d.total_episodes || 0 }} | {{ d.is_active ? '上架' : '下架' }} |
共 {{ dramaList.total }} 条
{{ dramaList.current_page }} / {{ dramaList.last_page }}
请先为各语言创建分类,新建短剧时从下拉列表选择关联。每种语言需单独维护分类(如英文 Romance、日文 ロマンス)。
| 语言 | 名称 | 标识 slug | 图标 | 短剧数 | 状态 | 操作 |
|---|---|---|---|---|---|---|
| {{ langLabel(c.lang_code) }} | {{ c.name }} | {{ c.slug }} |
{{ c.icon || '-' }} | {{ c.dramas_count ?? 0 }} | {{ c.is_active ? '启用' : '停用' }} |
| 集号 | 标题 | 视频地址 | 免费 | 状态 | 操作 |
|---|---|---|---|---|---|
| 第 {{ ep.episode_number }} 集 | {{ ep.title || '-' }} | {{ ep.is_free ? '是' : '否' }} | {{ ep.is_active ? '启用' : '禁用' }} |
首页运营
App 首屏轮播、最新更新、热播、推荐、爆剧等栏目配置
| 预览 | 语言 | 标题 | 跳转 | 排序 | 状态 | 操作 |
|---|---|---|---|---|---|---|
| {{ langLabel(b.lang_code) }} | {{ b.title || '-' }} | {{ bannerLinkLabel(b) }} | {{ b.sort_order }} | {{ b.is_active ? '启用' : '停用' }} |
「最新更新」按短剧更新时间自动填充;「热播 / 推荐 / 爆剧」需在「配置短剧」中手动挑选并排序。
| 语言 | 栏目 | 展示名 | 来源 | 数量 | 已配置 | 状态 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ langLabel(s.lang_code) }} | {{ sectionSlugLabel(s.slug) }} | {{ s.title }} | {{ s.source_type === 'auto_latest' ? '自动+置顶' : '手动精选' }} | {{ s.display_limit }} | {{ s.section_dramas_count ?? 0 }} 部 | {{ s.is_active ? '启用' : '停用' }} |
搜索结果(点击添加)
| 排序 | 剧名 | 封面 | 操作 |
|---|---|---|---|
| {{ item.sort_order }} | {{ item.drama?.title || '-' }} |
订单管理
会员订单与积分商城订单;支持确认支付、退款与发货
| 类型 | 订单号 | 用户 | 商品 | 金额 | 状态 | 时间 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ o.order_type === 'shop' ? '商城' : '会员' }} | {{ o.order_number }} | {{ o.user_name || o.user?.name || '-' }} | {{ o.item_name || '-' }} | {{ orderAmountLabel(o) }} | {{ orderStatusLabel(o.status) }} | {{ formatDate(o.created_at) }} |
共 {{ orderList.total }} 条
{{ orderList.current_page }} / {{ orderList.last_page }}
会员套餐
按语言/市场单独配置套餐名称、价格与币种;App 根据 X-Lang-Code 只展示对应语言套餐
| 语言 | 名称 | 类型 | 天数 | 售价 | 原价 | 排序 | 状态 | 操作 |
|---|---|---|---|---|---|---|---|---|
| {{ langLabel(m.lang_code) }} | {{ m.name }} | {{ m.type }} | {{ m.duration_days }} | {{ formatMembershipPrice(m.price, m.currency) }} | {{ m.original_price ? formatMembershipPrice(m.original_price, m.currency) : '-' }} | {{ m.sort_order }} | {{ m.is_active ? '启用' : '禁用' }} |
积分商城
商品与分类管理
| 语言 | 名称 | slug | 商品数 | 状态 | 操作 |
|---|---|---|---|---|---|
| {{ langLabel(c.lang_code) }} | {{ c.name }} | {{ c.slug }} |
{{ c.products_count ?? 0 }} | {{ c.is_active !== false ? '启用' : '禁用' }} |
| 商品名 | 语言 | 定价 | 库存 | 状态 | 操作 |
|---|---|---|---|---|---|
| {{ p.name }} | {{ langLabel(p.lang_code) }} | {{ formatProductPrice(p) }} | {{ formatStock(p) }} | {{ p.is_active ? '上架' : '下架' }} |
共 {{ shopList.total }} 条
{{ shopList.current_page }} / {{ shopList.last_page }}
积分游戏
自研:爆点狙击 /games/baodian/ · 爆点倍增(bustabit类) /games/crash/ — 配置后可试玩预览
| 名称 | 语言 | 来源 | 单局/日上限 | 最小时长 | 状态 | 操作 |
|---|---|---|---|---|---|---|
| {{ g.name }} {{ g.category?.name || '-' }} |
{{ langLabel(g.lang_code) }} | {{ g.source === 'self' ? '自研' : '三方' }} | {{ g.reward_coins }} / {{ g.daily_reward_limit }} | {{ g.min_play_seconds ?? 60 }}s | {{ g.is_active ? '启用' : '禁用' }} |
共 {{ gameList.total }} 条
{{ gameList.current_page }} / {{ gameList.last_page }}
| 语言 | 名称 | slug | 排序 | 状态 | 操作 |
|---|---|---|---|---|---|
| {{ langLabel(c.lang_code) }} | {{ c.name }} | {{ c.slug }} |
{{ c.sort_order }} | {{ c.is_active ? '启用' : '禁用' }} |
游戏金币全局上限
用户当日从所有游戏获得的金币总和不超过此值(默认 120)。单游戏另有「每日上限」。
推荐默认:单局 8、单游戏日上限 40、全站 120、最小时长 60 秒。详见项目 docs/GAME_CENTER.md
广告配置
按场景+语言配置 App 广告规则;客户端接 SDK 后调用 /api/v1/ad-config 与 ad-impression
| 场景 | 语言 | 类型 | 广告位 | 时长 | 每日上限 | 奖励币 | 状态 | 操作 |
|---|---|---|---|---|---|---|---|---|
|
{{ ad.scene_label || ad.scene }}
{{ ad.scene }}
|
{{ langLabel(ad.lang_code) }} | {{ ad.ad_type }} | {{ ad.ad_units_configured ? '已填 ID' : '未填 ID' }} | {{ ad.duration }}s | {{ ad.daily_limit || '不限' }} | {{ ad.reward_coins }} | {{ ad.is_active ? '启用' : '禁用' }} |
支付配置
PayPal / Stripe / Apple / Google 密钥与 Webhook,App 按「默认支付环境」读取对应配置
Webhook 回调地址
PayPal:
Stripe:
{{ paymentMeta.webhook_urls.paypal }}Stripe:
{{ paymentMeta.webhook_urls.stripe }}
| 支付方式 | 环境 | 支持货币 | 配置状态 | 启用 | 操作 |
|---|---|---|---|---|---|
| {{ pc.provider_label || pc.provider }} | {{ pc.environment === 'production' ? '生产' : '沙箱' }} | {{ pc.supported_currencies_text || '-' }} | {{ pc.is_configured ? '已配置' : '未配置' }} | {{ pc.is_active ? '启用' : '禁用' }} |
管理员
后台账号、角色与菜单权限(仅超级管理员或具备 admin/role 权限可见)
| 姓名 | 邮箱 | 角色 | 类型 | 状态 | 最近登录 | 操作 |
|---|---|---|---|---|---|---|
| {{ a.name }} | {{ a.email }} | {{ a.is_super ? '超级' : '普通' }} | {{ a.status !== false ? '启用' : '禁用' }} | {{ formatDate(a.last_login_at) }} |
共 {{ adminList.total }} 条
{{ adminList.current_page }} / {{ adminList.last_page }}
| 角色名 | 标识 | 管理员数 | 状态 | 说明 | 操作 |
|---|---|---|---|---|---|
| {{ r.display_name }} | {{ r.name }} |
{{ r.admins_count ?? 0 }} | {{ r.status !== false ? '启用' : '禁用' }} | {{ r.description || '-' }} |
系统日志
| 时间 | 操作人 | 模块 | 操作 | 结果 | 说明 | IP | |
|---|---|---|---|---|---|---|---|
| {{ formatDateTime(row.created_at) }} |
{{ row.admin_name || '-' }}
{{ row.admin_email }}
|
{{ row.module || '-' }} | {{ row.action }} | {{ auditResultLabel(row.result) }} | {{ row.message || '-' }} | {{ row.ip || '-' }} | |
| 暂无记录 | |||||||
共 {{ operationLogList.total }} 条
{{ operationLogList.current_page }} / {{ operationLogList.last_page }}
| 时间 | 邮箱 | 姓名 | 结果 | 失败原因 | IP |
|---|---|---|---|---|---|
| {{ formatDateTime(row.created_at) }} | {{ row.email }} | {{ row.admin_name || '-' }} | {{ row.status === 'success' ? '成功' : '失败' }} | {{ row.fail_reason || '-' }} | {{ row.ip || '-' }} |
| 暂无记录 | |||||
共 {{ loginLogList.total }} 条
{{ loginLogList.current_page }} / {{ loginLogList.last_page }}
积分任务
App 签到、看剧、游戏等任务奖励与全局积分规则
全局积分规则
与用户任务奖励分开保存;修改后点击页面底部保存。
也可在「积分游戏 → 全局规则」中修改
任务列表(App)
配置各任务奖励金币与文案;繁体名称对应 zh-TW
| ID | 奖励 | 目标 | 类型 | 启用 | 英文名称 | 繁体名称 |
|---|---|---|---|---|---|---|
{{ t.id }} |
{{ t.type }} |
App 语言
控制各语言在 App 与后台是否可用及排序(含 zh-TW 繁體中文)
语言 code 创建后不可修改。默认语言在「系统管理 → 基础设置」中配置。
| 代码 | 名称 | 本地名 | 排序 | 启用 | 操作 |
|---|---|---|---|---|---|
{{ lang.code }} {{ lang.flag_emoji }} |
{{ lang.name }} | {{ lang.native_name }} | {{ lang.sort_order }} | {{ lang.is_active ? '是' : '否' }} |
基础设置
站点、默认语言、支付环境与对象存储
新建短剧/商品/游戏时的默认语言,须为 App 已上线的语言之一。
App 会员购买、商城现金支付等将读取该环境下的 PayPal/Stripe/Apple/Google 配置。
火山对象存储(TOS)
用于管理后台图片上传。密钥仅保存在服务器,Secret Key 加密存储,不会在此对话或接口中明文回显。
{{ tosConfigured ? '● 已配置,可上传图片' : '○ 未配置,请先填写并保存' }}
已保存 Secret Key;若不修改请留空,保存时不会覆盖。