全局加盟网络 (Agent/Franchisee/Store/Node)

代理商: {{ growth.total_agents }}

加盟商: {{ growth.total_franchisees }}

网吧: {{ growth.total_stores }}

终端: {{ growth.total_nodes }} (在线 {{ growth.nodes_online }})

加盟商结算池 (CNY · 真实来自结算表)

待打款: ¥ {{ fmt(financials.franchisee_payable_cny) }}

已打款: ¥ {{ fmt(financials.franchisee_paid_cny) }}

口径:只计 status=COMPLETED 的流水,失败的镜不计营收

📈 今日经营(job_ledger · 营业日口径)

今日单量 {{ fin.today_jobs ?? '—' }} (成 {{ fin.today_jobs_completed ?? '—' }}) (败 {{ fin.today_jobs_failed ?? '—' }})

今日 Token {{ fmtInt(fin.today_tokens) }}

营收 ¥ {{ fmt(fin.gross_revenue_cny) }}

成本计提 ¥ {{ fmt(fin.cost_cny) }}

毛利 ¥ {{ fmt(fin.net_margin_cny) }}

{{ fin.cost_basis }}

🆕 今日新增 / ⚠ 异常主体

新增加盟商 {{ growth.new_bosses_today ?? '—' }}

新增门店 {{ growth.new_stores_today ?? '—' }}

新增终端 {{ growth.new_nodes_today ?? '—' }}

异常门店 {{ growth.abnormal_stores ?? '—' }}

异常加盟商 {{ growth.abnormal_bosses ?? '—' }} ({{ (growth.abnormal_detail||[]).length }} 条明细)

{{ a.kind }} {{ a.name }} [{{ a.status }}] {{ a.reason }}

暂无异常主体

🛡 防作弊 / 内容安全

虚假 GPU 上报 {{ asp.fake_gpu_detected ?? '—' }} 台

显存泄漏/耗尽终止 {{ asp.vram_leak_killed ?? '—' }} 次

内容安全拦截 {{ asp.safety_blocks ?? '—' }} 次

{{ asp.basis }}

🌐 骨干区域接入点(华东/华北/华南/华西)

⚠ 未配置区域网关,当前仅本机自检(127.0.0.1),不代表骨干通
在 STAROFHOPE_BACKBONE_PROBE_TARGETS 填 区域名=网关域名或IP:端口。 填完可先跑 tools/probe_backbone_once.py 手动验证再重启。
{{ b.name }} 本机自检 {{ b.host }}:{{ b.port }} — {{ b.samples }} 样本 · 成功率 {{ b.success_rate_pct ?? '—' }}%
未获取到探测目标

{{ backbone.note }}

⚠️ SLA 资源闲置监控 (利用率 < 50%)

低利用率

{{ sla.low_utilization_nodes ?? '—' }}

T1 预警

{{ sla.nodes_warning_t1 ?? '—' }}

连续 1~2 天

T3 严重

{{ sla.nodes_critical_t3 ?? '—' }}

连续 ≥3 天

{{ sla.tier_definition }}

仍然待接入的指标

  • {{ u }}

✅ 大盘所有指标均有真实数据源

📊 节点状态分布(真实 GROUP BY nodes.status)

{{ st }} {{ st === 'ONLINE' ? '🟢' : '🔴' }}

节点数: {{ cnt }}

暂无节点数据(nodes 表为空)

离线/非在线节点 {{ sla.nodes_offline ?? '—' }} 台。骨干延迟见上方「骨干链路延迟」卡片 (需先配置探测目标)。

🆘 链路告警 {{ alerts.length }} 条(这些不会自己出现在任务列表里)

{{ a.level === 'critical' ? '严重' : '警告' }}
{{ a.msg }}
处置:{{ a.how }} ({{ a.code }})

🎬 正在渲染(全平台实时) ⚠ 数据未取到(下面这些数字不是 0,是没读到) 活跃 {{ rsum.active }} 单 · 排队 {{ rsum.queued }} · 渲染中 {{ rsum.rendering }} · 队列积压 {{ rsum.queue_depth_total }} · 在线节点 {{ rsum.workers_online }} · 调度器 {{ rsum.schedulers_online }} · ⚠ 停止上报 {{ rsum.stale }}

⚠ {{ renderErr }}
任务 归属 渲染内容 进度 节点 / 剩余
{{ x.job_id_short }}
{{ x.source_cn }}
⚠ 停止上报
{{ x.who }}
{{ x.who_sub }}
{{ x.current_prompt || (x.prompts[0] || '—') }}
共 {{ x.scene_total }} 镜 · 已完成 {{ x.scene_done }} · 失败 {{ x.scene_failed }} · 运镜 {{ x.motion_type }}
全部提示词: [{{ i }}] {{ p }}
{{ rpct(x) }}% · {{ x.stage_cn }} ({{ x.step }}/{{ x.step_max }} 步)
{{ (x.machine_ids || []).join(', ') || '—' }}
{{ x.eta_text }} (粗估)
单镜约 {{ Math.round(x.avg_scene_seconds) }}s
⚠ 没有任何边缘 worker 在线 —— 提交的渲染任务不会被领取
当前没有正在渲染的任务

🩺 常驻服务心跳(调度器 / worker) 调度器 {{ schedulers.length }} 个 · 在线 {{ rsum.schedulers_online }} · worker 在线 {{ rsum.workers_online }}

服务 / 机器 状态 归属门店 订阅主题 消费统计 心跳剩余
cafe_scheduler
{{ s.machine_id }}
运行中 已正常停止 {{ s.state || '未知' }}
{{ s.cafe_id || '—' }}
{{ s.store_id || '' }}
{{ s.topic || '—' }} 收 {{ s.stats.total ?? 0 }} · 收下 {{ s.stats.accepted ?? 0 }} · 非本店 {{ s.stats.filtered_out ?? 0 }} {{ s.ttl > 0 ? s.ttl + ' 秒' : '已过期' }}
{{ s.ts || '' }}
⚠ 没有任何调度器心跳 —— 已扣费的任务会停在 Kafka 里无人搬运
启动:python tools/_run_fore.py Node_5_Edge_Cafe/cafe_scheduler.py
心跳每 15 秒写一次、TTL 90 秒:连续漏 6 次才会判定失联, 避免一次 GC 停顿或网络抖动就制造「假失联」。

✅ 已完成渲染任务(job_ledger 流水) 本页 {{ completed.length }} 行 · 共 {{ cpager.total }} 条 · Token {{ fmtInt(csum.tokens) }} · 营收 ¥ {{ fmt(csum.revenue_cny) }} · 今日完成 {{ cstats.today_completed ?? '—' }}

⚠ {{ completedErr }}
单号 / 镜 归属 门店 机器 Token 营收 成片 完成时间
{{ x.job_id_short }} / #{{ x.scene_index }}
{{ x.fail_reason || '失败' }}
{{ x.who }}
{{ x.who_sub }}
{{ x.store_name }} {{ x.machine_mac || '—' }} {{ fmtInt(x.tokens) }} ¥ {{ fmt(x.revenue_cny) }} 已回传 未回传 {{ x.created_at }}
暂无符合条件的任务流水
仅显示前 {{ cpager.limit }} 条(共 {{ cpager.total }} 条), 可用 ?limit 调整。

🏢 主体名录与分成管理(代理商 / 加盟商 / 网吧 / 个人用户) {{ dirLabel[k] }} 个人用户不可手工建档

⚠ 当前显示完整手机号,且每一次查看都会写入审计日志(谁、何时、看了几条)。 身份证号与银行账号任何情况下都只显示后 4 位。
✅ {{ dirFlash }}
⚠ {{ dirErr }}
名称 / 主体 手机 状态 分成 其它 操作
暂无 {{ dirLabel[dirTab] }} 数据

{{ editMode === 'create' ? '新建 ' + dirLabel[dirTab] : '编辑 ' + (editRow.name || editRow.nickname) }}

带 * 为必填。 留空表示不修改。 身份证不可在此编辑(任何情况下只显示后 4 位); Token 余额也不在这里改 —— 调余额必须走带流水的入账接口。
{{ editErr }}
共 {{ dirPager.total }} 条 · 「停用」是软删(改状态为 DISABLED,保留历史流水); 物理删除需无关联数据,否则后端会拒绝并说明原因。

🚨 全局精准异常定位雷达 (Real-time Anomaly Radar) 由 nodes.store_id → stores 真实关联推导

异常时间 严重级别 异常原因 异常网吧 (Store) 异常电脑 (Node) 操作
{{ alert.time }} {{ alert.level }} {{ alert.reason }} {{ alert.store }} {{ alert.node }}
✅ 当前无异常节点

🧹 清空所有任务 —— 请先确认影响面

✅ 已清空:进度键 {{ purgeResult.removed_progress_keys }} 个 · 队列 {{ purgeResult.removed_queue_keys }} 个 ({{ purgeResult.removed_queued_items }} 条)· 退款 {{ purgeResult.refund.tokens }} TK / {{ purgeResult.refund.jobs }} 单
未退款 {{ purgeResult.refund.skipped.length }} 单: [{{ s.reason }}]
⚠ 预览之后又新提交了 {{ purgeResult.not_purged.new_jobs_after_preview.length }} 单, 已跳过未清({{ purgeResult.not_purged.reason }})
剩余在途 {{ purgeResult.remaining.job_count }} 单 · 队列积压 {{ purgeResult.remaining.queue_depth_total }} 条 · 审计事件 {{ purgeResult.audit_event }}

在途任务 {{ purgePreview.summary.job_count }} 单

待执行队列 {{ purgePreview.summary.queue_depth_total }} 条

涉及个人用户 {{ purgePreview.summary.personal_users }} 人 / {{ purgePreview.summary.personal_job_count }} 单

B2B 单 {{ purgePreview.summary.b2b_job_count }}

可退 Token {{ purgePreview.summary.refundable_tokens }} ({{ purgePreview.summary.unknown_cost_count }} 单查不到扣费金额,不会退)

⚠ 其中 {{ purgePreview.summary.inflight_unstoppable }} 单已在渲染中: 执行发生在 worker 进程里,本接口无法中止它们。 要彻底停请先停 worker 再清空。
  • {{ c }}
将清掉的任务(最多显示 200 条):
{{ j.job_id.slice(0, 8) }} {{ j.resolution || '—' }} · {{ j.scene_done }}/{{ j.scene_total }} 镜 {{ j.cost_tokens ?? '未知' }} TK 渲染中
确认令牌 {{ purgePreview.expires_in_sec }} 秒内有效; 预览之后新提交的单不会被顺手清掉。
⚠ {{ purgeErr }}