# 阶段 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()`,自动带 Bearer token,返回 `ApiRes`(code/data/message/trace_id) - 所有函数返回 `Promise>`,401 时自动清除 token ## 验证 1. 登录后应看到顶部导航:总览 | 会话列表 | 工单列表 | 知识库 | 设置 | 用户管理 2. 各页面应能正常加载并显示占位数据(表格、卡片、表单等) 3. 用户管理页面:非管理员访问应提示「仅管理员可访问」;管理员可看到用户列表并可新建/删除