Files
taiji-pda-v0/docs/ADMIN-DASHBOARD-FEATURES.md
T
xiaohei e4ee876f57 fix: 修复最近登录租户功能的数据加载逻辑
- 优化数据加载逻辑,优先使用 data.recentTenants 字段
- 兼容 data.tenants 字段(向后兼容)
- 支持直接数组格式
- 移除调试日志,保持代码整洁

测试验证:后端API返回正确的租户登录记录
2026-01-04 05:24:27 +00:00

13 KiB
Raw Blame History

管理平台(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() → 概览最近租户列表