forked from xiaohei/taiji-AI-PAD
13 KiB
13 KiB
管理平台(Super Admin Console)功能盘点
页面地址:/admin/dashboard
对应实现:app/admin/dashboard/page.tsx
本文仅整理“前端实际展示的功能与交互”。部分按钮/表单在当前实现中可能仅有 UI(例如某些“保存/查询”只打印日志或未真正发起请求),文中会标注。
0. 全局/通用能力
- 登录态校验与跳转:页面加载时检查
localStorage.admin_token,没有则跳转到/admin/login。 - 语言切换:右上角语言选择(中/英),影响页面文案。
- 退出登录:调用
TaijiAPIClient.logout(),并清理本地 token(admin_token/auth_token/channel_token/refresh_token等),跳转到/admin/login。 - 顶部导航 Tab:共 6 个(概览 / 渠道 / 资源 / 监控 / 计费 / 设置)。
1. 概览(Overview)
1.1 平台关键统计卡片
- 展示内容:
- 渠道总数(Total Channels)
- 租户总数(Total Tenants)
- 总收入(Total Revenue)
- 作用:快速了解平台规模与收入概况。
- 数据来源:
TaijiAPIClient.getAdminDashboardStats()。
1.2 系统指标(System Metrics)
- 展示内容:CPU 使用率、内存使用率、磁盘使用率、活跃 Agents(以进度条展示)。
- 作用:查看平台整体资源压力与服务活跃度。
- 数据来源:
TaijiAPIClient.getMonitoringMetrics()。
1.3 最近租户列表(Recent Tenants)
- 展示内容:租户卡片列表(名称、套餐/Plan、月收入、Usage%、状态),每行支持“更多”菜单(查看详情 / 编辑 / 暂停)。
- 作用:快速查看租户概况与后续管理入口。
- 备注:
- 列表顶部的搜索框目前仅为 UI(未见实际筛选逻辑)。
- “更多菜单”选项目前未绑定具体后端动作(看起来是占位)。
- 数据来源:
TaijiAPIClient.getAdminTenants()。
1.4 平台资源分配统计(CPU/Memory)
- 展示内容:汇总已分配 CPU 核数、已分配内存(GB),以及 Agent 数量/平均值。
- 作用:从平台维度快速评估 Agent 资源分配情况。
- 计算方式:由
agentResources列表累加得到。 - 数据来源:
TaijiAPIClient.getAdminAgentResources()。
2. 渠道(Channels)
2.1 渠道列表与状态概览
- 展示内容:渠道卡片列表(渠道名、状态、联系人/邮箱、租户数、月收入、佣金比例)。
- 作用:查看渠道基本盘与关键经营指标。
- 备注:列表顶部“搜索渠道”输入框目前仅为 UI(未见实际筛选逻辑)。
- 数据来源:
TaijiAPIClient.getAdminChannels()。
2.2 添加渠道
- 入口:右上角“添加渠道”按钮。
- 表单字段:渠道名称、联系邮箱、密码、佣金比例。
- 作用:创建新的渠道账户。
- 数据来源/接口:
TaijiAPIClient.createAdminChannel(...);成功后会loadDashboardData()刷新列表。
2.3 渠道操作菜单(每个渠道卡片右侧)
2.3.1 查看渠道详情
- 入口:菜单“查看详情”。
- 展示内容:
- 基本信息:名称、状态、邮箱、创建日期等
- 资源配置:CPU/内存/存储(展示)
- 配额信息:租户总数、授信额度、已用授信、剩余授信(展示)
- 作用:在一个弹窗中快速查看渠道经营/资源/授信摘要。
2.3.2 编辑渠道信息
- 入口:菜单“编辑”。
- 功能:
- 编辑渠道基本信息(名称、联系人、邮箱、电话)。
- 管理渠道管理员列表(展示管理员并支持删除)。
- 作用:维护渠道档案与其管理员账号。
- 数据来源/接口:
- 保存渠道信息:通过
handleSaveChannelEdit(内部使用fetch调用后端,见page.tsx中相关实现)。 - 删除管理员:
handleRemoveAdmin(admin.id)(内部fetch/API 调用,见实现)。
- 保存渠道信息:通过
2.3.3 查看租户(渠道租户管理)
- 入口:菜单“查看租户”。
- 展示内容:渠道下租户列表(含权限 tags、状态、创建时间等)。
- 支持动作:
- 添加租户(打开“添加新租户”对话框)
- 管理权限(多选权限项并保存)
- 修改密码
- 禁用租户
- 删除租户
- 作用:以渠道为维度管理其租户账户生命周期与授权。
- 数据来源/接口(按功能):
- 加载渠道租户:
fetch(${API_BASE_URLS.mcpServer}/api/channel/tenants, ...)等(具体见实现)。 - 创建租户:
TaijiAPIClient.createChannelTenant(...)(或相关 API)。 - 修改租户权限:
fetch(.../api/channel/tenants/{tenantId}/permissions)。 - 修改租户密码:
TaijiAPIClient.changeTenantPassword(tenantId, newPassword)。 - 禁用租户:
fetch(.../api/channel/tenants/{tenantId}/status)。 - 删除租户:对应
handleDeleteTenant内的 API 调用(见实现)。
- 加载渠道租户:
2.3.4 修改佣金
- 入口:菜单“修改佣金”。
- 作用:为渠道设置佣金比例(UI 提供输入与保存)。
- 备注:当前
handleSaveCommission()实际调用的是TaijiAPIClient.manageChannelResources(...{ channelCredit }),看起来并未真正提交commissionRate,可能是后端字段对齐/实现未完成导致的占位。
2.3.5 管理授权(供应商访问权限)
- 入口:菜单“管理授权”。
- 展示内容:该渠道已获得的供应商授权列表(供应商名、类型、RPM/TPM、授权时间、状态)。
- 支持动作:撤销授权(对 active 状态)。
- 作用:控制渠道可以使用哪些上游供应商(模型/服务)的能力。
- 数据来源/接口:
- 查询授权:
TaijiAPIClient.getChannelProviderAccess({ channelId }) - 撤销授权:
TaijiAPIClient.revokeChannelProviderAccess(access.id)
- 查询授权:
2.3.6 资源管理(渠道维度:模型/Agent/授信/自定义Agent默认资源)
- 入口:菜单“资源管理”。
- 功能点:
- 选择该渠道可用的模型供应商(checkbox 列表)
- 选择该渠道可分配给租户的 Agent,并设置数量(Quantity)
- 设置“自定义 Agent”默认 CPU/内存
- 设置渠道授信额度(Credit Limit)
- “资源配置摘要”汇总展示
- 作用:按渠道维度进行配额与可用资源的能力封装。
- 数据来源/接口:
- 读取当前渠道资源:
fetch(${API_BASE_URLS.mcpServer}/api/admin/channels/${channel.id}/resources, ...) - 保存:
TaijiAPIClient.manageChannelResources(channelId, payload)(由handleSaveResourceManagement执行)。
- 读取当前渠道资源:
2.4 渠道申请审批
2.4.1 供应商申请审批(Provider Application Approvals)
- 展示内容:渠道对供应商/模型的申请列表(渠道、供应商、期望模型、提交时间、状态)。
- 支持动作:审批(打开详情弹窗),可“批准/拒绝”。
- 作用:平台侧把控渠道接入上游供应商的门槛。
- 数据来源/接口:
- 加载申请:
TaijiAPIClient.getAdminApplications()并按type === "provider"过滤 - 审批:
TaijiAPIClient.reviewApplication(applicationId, approved, reason)
- 加载申请:
2.4.2 Agent 申请审批(Agent Application Approvals)
- 展示内容:渠道对 Agent 数量/类型的申请列表。
- 支持动作:审批(打开详情弹窗),可“批准/拒绝”。
- 作用:平台侧控制 Agent 资源发放。
- 数据来源/接口:同上(
getAdminApplications()过滤type === "agent",审批用reviewApplication)。
3. 资源(Resources)
该 Tab 聚焦于平台资源本身(Agent 资源、供应商资源),而不是“渠道维度的资源分配”。
3.1 Agent 计算资源分配(Agent Compute Resource Allocation)
- 展示内容:Agent 资源卡片列表(名称、状态、CPU/内存、CPU/内存使用率)。
- 支持动作:
- 配置:打开“Agent资源配置”弹窗(CPU/内存/可用实例数)
- 删除:删除该 Agent 资源
- 作用:平台侧维护每个 Agent 的计算资源配置(以及可用实例数的设定入口)。
- 备注:
- “保存配置”按钮当前仅关闭弹窗,未见实际调用后端保存(可能是 UI 占位)。
- 数据来源/接口:
- 加载:
TaijiAPIClient.getAdminAgentResources() - 删除:
TaijiAPIClient.deleteAgentResource(agent.id)
- 加载:
3.2 货源供应商管理(Goods Source / Model Providers)
- 展示内容:模型供应商卡片列表(状态、支持模型数量、RPM/TPM)。
- 支持动作:
- 添加模型供应商(打开新增弹窗)
- 配置(编辑供应商信息)
- 测试延迟(连接测试)
- 删除供应商
- 作用:平台侧管理上游模型供应商的接入信息、配额与健康检查。
- 数据来源/接口:
- 列表:优先
TaijiAPIClient.getModelProviders();失败则使用TaijiAPIClient.getAdminModelProviders()的结果兜底。 - 新增:
TaijiAPIClient.createModelProvider(...)(由handleSaveProvider在“新增”路径触发) - 更新:
TaijiAPIClient.updateProvider(providerId, payload)(由handleSaveProvider在“编辑”路径触发) - 连接测试:
TaijiAPIClient.testProviderConnection(providerId) - 删除:
TaijiAPIClient.deleteProvider(providerId)
- 列表:优先
4. 监控(Monitoring)
4.1 Agent 健康监控(Agent Health Monitoring)
- 展示内容:Agent 健康卡片(健康/警告/严重)、CPU/内存使用率进度条、响应时间、请求数、错误率、运行时长、最后活跃时间。
- 作用:快速定位异常 Agent 与性能风险。
- 数据来源/接口:
TaijiAPIClient.getAdminAgentMonitoring()。
5. 计费(Billing)
5.1 顶部操作:时间查询 / 筛选 / 导出
- 时间查询:弹窗输入起止时间(datetime-local),点击“查询”。
- 备注:当前仅 UI,未见与后端联动的查询逻辑。
- 筛选:弹窗输入客户名、最小/最大调用次数。
- 备注:当前仅 UI,未见实际筛选逻辑。
- 导出:点击后自动以“最近 30 天”为时间范围,调用导出接口并打开下载链接。
- 接口:
TaijiAPIClient.getAdminBillingOverview({ startTime, endTime, export: "excel" }) - 行为:若返回
fileUrl,则window.open(fileUrl)。
- 接口:
5.2 计费维度切换
- 维度:渠道维度 / 租户维度 / 调用记录。
- 作用:从不同管理视角查看平台计费消耗。
5.3 渠道维度计费(Channel Dimension)
- 展示内容:
- 汇总卡片:渠道总数、总计费额、总 EU 消耗
- 明细表:每渠道的调用次数、总 EU、渠道总价
- 作用:评估各渠道的计费贡献与资源消耗。
- 数据来源:
billingData.channelStats(由页面内部计费加载逻辑填充;导出接口也会返回相关数据/文件)。
5.4 租户维度计费(Tenant Dimension)
- 展示内容:
- 汇总卡片:租户总数、用户总价、平均消费
- 明细表:每租户的渠道归属、调用次数、总 EU、用户总价
- 作用:评估租户级别成本与消费结构。
- 数据来源:
billingData.tenantStats。
5.5 调用记录(Call Records)
- 展示内容:调用记录明细表(调用ID/租户/渠道/时长/EU/价格/时间戳等)。
- 作用:提供更细粒度的计费审计视角。
- 备注:当前表格使用的是前端静态示例数据(并非后端真实数据)。
6. 设置(Settings)
6.1 管理员列表管理(SettingsTab 组件)
- 展示内容:
- 系统管理员管理:管理员列表(姓名/邮箱/角色/状态/创建时间),支持创建管理员、删除管理员。
- 渠道管理员查看:按渠道分组展示渠道管理员列表(可折叠展开)。
- 作用:统一维护平台管理员与渠道管理员信息。
- 数据来源/接口(见
app/admin/dashboard/components/SettingsTab.tsx):- 获取管理员列表:
TaijiAPIClient.getAdmins() - 创建管理员:
TaijiAPIClient.createAdmin(...)(在组件内实现) - 删除管理员:
TaijiAPIClient.deleteAdmin(adminId)(在组件内实现) - 获取渠道列表:
TaijiAPIClient.getAdminChannels() - 获取每个渠道管理员:
fetch(${API_BASE_URLS.mcpServer}/api/admin/channels/${channelId}/admins)
- 获取管理员列表:
6.2 角色权限配置(Role Permission Configuration)
- 展示内容:三种角色卡片(计费管理员/运营管理员/超级管理员),选择角色后可在下方勾选可访问的 Tab(概览/渠道/资源/监控/计费/供应商后台/渠道后台/设置)。
- 作用:提供“角色 → 可访问标签页” 的配置入口,用于权限治理。
- 备注:当前“保存权限配置”仅
console.log,未见持久化到后端。
附:页面加载的数据清单(loadDashboardData)
页面首次加载会并行/串行拉取以下数据,并填充到对应 Tab:
- 统计:
getAdminDashboardStats()→ 概览统计卡片 - 系统指标:
getMonitoringMetrics()→ 概览系统指标 - 渠道:
getAdminChannels()→ 渠道 Tab - 申请:
getAdminApplications()→ 渠道 Tab(供应商/Agent 审批列表) - Agent 监控:
getAdminAgentMonitoring()→ 监控 Tab - 模型供应商:
getAdminModelProviders()+getModelProviders()→ 资源 Tab + 渠道资源管理弹窗 - Agent 资源:
getAdminAgentResources()→ 资源 Tab + 概览资源统计 + 渠道资源管理弹窗 - 租户:
getAdminTenants()→ 概览最近租户列表