2.1 KiB
2.1 KiB
阶段 3:管理后台闭环页面结构 + 后端占位 API
页面结构(Next.js 路由)
- /dashboard:总览占位(统计卡片:会话总数、工单总数、当前用户)
- /sessions:会话列表(表格:ID、外部用户ID、昵称、状态、创建时间、操作)
- /sessions/[id]:会话详情(消息列表 + 创建工单按钮 + 回复输入框占位)
- /tickets:工单列表(表格:ID、会话、原因、状态、创建时间、操作)
- /kb:知识库(上传拖拽区 + 文档列表表格)
- /settings:模型/策略设置(表单:模型名称、FAQ 优先、启用 RAG)
- /users:用户管理(仅管理员可见,表格 + 新建/删除)
后端 API(统一 code/data/message/trace_id,需 JWT)
- GET /api/admin/sessions:会话列表
- GET /api/admin/sessions/{id}:会话详情(含消息列表)
- GET /api/admin/tickets:工单列表
- POST /api/admin/tickets:创建工单(body: session_id, reason)
- PATCH /api/admin/tickets/{id}:更新工单(body: status, reason)
- GET /api/admin/kb/docs:知识库文档列表
- POST /api/admin/kb/docs/upload:上传文档(multipart/form-data)
- GET /api/admin/settings:获取设置
- PATCH /api/admin/settings:更新设置(body: model_name, strategy)
- GET /api/admin/users:用户列表(仅管理员)
- POST /api/admin/users:创建用户(仅管理员)
- PATCH /api/admin/users/{id}:更新用户(仅管理员)
- DELETE /api/admin/users/{id}:删除用户(仅管理员)
前端 API Client
- admin/lib/api.ts:统一封装
adminApi<T>(),自动带 Bearer token,返回ApiRes<T>(code/data/message/trace_id) - 所有函数返回
Promise<ApiRes<T>>,401 时自动清除 token
验证
- 登录后应看到顶部导航:总览 | 会话列表 | 工单列表 | 知识库 | 设置 | 用户管理
- 各页面应能正常加载并显示占位数据(表格、卡片、表单等)
- 用户管理页面:非管理员访问应提示「仅管理员可访问」;管理员可看到用户列表并可新建/删除