Files
quyun-v2/frontend/superadmin/SUPERADMIN_PAGES.md
Rogee d60c1e9312 feat: add content management feature for superadmin
- Implemented API endpoint for fetching content list with filtering, sorting, and pagination.
- Added DTOs for content items and tenant information.
- Created frontend components for content management, including search and data table functionalities.
- Updated routing to include content management page.
- Enhanced the superadmin menu to navigate to the new content management section.
- Included necessary styles and scripts for the new content management interface.
2025-12-24 16:24:50 +08:00

6.2 KiB
Raw Permalink Blame History

QuyUn 平台超级管理员frontend/superadmin页面与功能规划

基于 backend/docs/swagger.json 中平台侧接口 /super/v1/*,规划 frontend/superadmin/ 的信息架构、页面路由与核心交互。

frontend/superadmin/src/router/index.js 的路由基座为 /super/API base 由 VITE_API_BASE_URL 控制(见 frontend/superadmin/src/service/apiClient.js),本文中的 API 路径均为绝对路径(例如 /super/v1/users)。

0. 全局约定(前端通用能力)

  • 鉴权:登录成功后保存 token(建议保存到 localStorage.super_token),所有请求带 Authorization: Bearer <token>(项目已在 frontend/superadmin/src/service/apiClient.js 实现)。
  • 路由守卫
    • 未登录访问受保护页面 → 跳转 /auth/login
    • 可选:启动时调用 GET /super/v1/auth/token 校验 token 是否有效401 则清理 token 并回到登录页)。
  • 分页/排序:列表接口使用 page/limit,并支持 asc/desc(字段名逗号分隔)。统一封装分页表格组件与 URL query 同步。
  • 枚举来源:优先使用 GET /super/v1/tenants/statusesGET /super/v1/users/statuses 返回的 requests.KV[] 作为下拉选项swagger 中 dto.*StatusUpdateForm 的 enum 与 consts.*Status 存在不一致,见“风险点”)。

1. 路由与菜单(建议)

(与现有路由保持一致,业务页面放在 /superadmin/*

  • /auth/login:登录
  • /:概览 Dashboard
  • /superadmin/tenants:租户管理
  • /superadmin/users:用户管理
  • /superadmin/orders:订单管理
  • /superadmin/contents:内容管理(跨租户汇总)

1.1 迭代路线(按优先级依次实现)

  1. 安全与鉴权
    • /super/v1/*(除 /auth/login)强制 JWT 校验与 super_admin 角色校验
    • /super/v1/auth/token 改为基于当前 token 的续期/校验(不再返回固定用户 token
  2. 订单管理
    • 订单列表(跨租户筛选/分页/排序)
    • 订单详情(含 items / snapshot 展示)
    • 平台侧退款(支持强制退款,记录操作人)
  3. 租户管理增强
    • 租户详情页(基本信息、过期续期、状态变更、管理员/成员/内容管理)
  4. 内容管理
    • 内容列表(跨租户查询/筛选/分页/排序、下架/封禁)
    • 可选:内容详情页(资源/定价/审计)
  5. 用户管理增强
    • 用户详情页(角色、状态、余额/冻结、加入/拥有的租户、操作记录)
    • 角色授予/回收(super_admin
  6. 审计与运维
    • 操作审计日志、关键行为告警
    • 任务队列/退款处理监控、健康检查面板

2. 页面规格(页面 → 功能 → API

2.1 登录 /auth/login

目标:完成超级管理员登录并写入 token。

  • 登录表单:usernamepassword(对应 dto.LoginForm
  • API
    • 登录:POST /super/v1/auth/logindto.LoginResponse.token
    • 校验/续期:GET /super/v1/auth/token(返回同结构 dto.LoginResponse
  • 交互:
    • 失败提示:展示后端错误信息
    • 成功:保存 token → 跳转到 /superadmin/tenants 或上次访问页面

2.2 概览 /Dashboard

目标:提供“关键指标 + 快捷入口”。

  • 指标:
    • 用户状态统计:GET /super/v1/users/statisticsdto.UserStatistics[]
    • 可选:租户总数(利用租户列表响应中的 totalGET /super/v1/tenants?limit=10&page=1
  • 快捷入口:租户管理、用户管理

2.3 租户管理 /superadmin/tenants

核心对象:dto.TenantItem

  • 创建租户并关联租户管理员(新增)
    • 表单字段:codenameadmin_user_idduration(7/30/90/180/365 天)
    • APIPOST /super/v1/tenantsdto.TenantCreateForm
    • 行为:创建 tenants 记录,并创建 tenant_users 关系,角色为 tenant_admin
  • 租户列表(筛选/分页/排序)
    • 过滤:namestatus
    • 排序:asc/desc
    • APIGET /super/v1/tenants
  • 状态更新
    • 选项:GET /super/v1/tenants/statusesrequests.KV[]
    • APIPATCH /super/v1/tenants/{tenantID}/statusdto.TenantStatusUpdateForm
    • 交互:点击状态 tag 打开弹窗选择新状态并提交
  • 续期/更新过期时间
    • 方案提供固定档位7/30/90/180/365 天或日期选择器二选一swagger 当前为 duration 档位)
    • APIPATCH /super/v1/tenants/{tenantID}dto.TenantExpireUpdateForm.duration

2.4 用户管理 /superadmin/users

核心对象:dto.UserItem

  • 用户列表(筛选/分页/排序)
    • 过滤:usernametenantIDstatus
    • 排序:asc/desc
    • APIGET /super/v1/users
  • 用户状态统计(页头统计条)
    • APIGET /super/v1/users/statistics
  • 更新用户状态
    • 选项:GET /super/v1/users/statusesrequests.KV[]
    • APIPATCH /super/v1/users/{userID}/statusdto.UserStatusUpdateForm
    • 交互:点击状态 tag 打开弹窗

3. 枚举与数据结构UI 需要)

  • 租户状态:consts.TenantStatuspending_verify / verified / banned),推荐用 GET /super/v1/tenants/statuses 驱动展示 label
  • 用户状态:consts.UserStatuspending_verify / verified / banned),推荐用 GET /super/v1/users/statuses 驱动展示 label
  • KV 结构:requests.KVkey 为机器值,value 为展示文案)

4. 风险点 / 待补能力(从 swagger 反推)

  • swagger 不一致dto.TenantStatusUpdateForm.status / dto.UserStatusUpdateForm.status 在 swagger 里额外出现 normal/disabled enumconsts.*Status 与列表筛选 enum 为 pending_verify/verified/banned;前端应以 /statuses 接口返回为准,并推动后端修正 swagger。
  • 分页 items 结构疑似不完整:列表接口 swagger 中 items 被标成单个 object$ref dto.TenantItem/dto.UserItem),实际应为数组;当前前端服务层已做兼容(normalizeItems),但建议后端修正 swagger。
  • 租户/用户详情与更多运维能力缺失:目前没有用户详情、租户详情、角色管理、密码重置等超管常见能力;如需要可扩展接口与页面。