feat(chat): 新增后台客服会话工作台
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
# Phase 2 验收报告(客服会话工作台)
|
||||
|
||||
> 日期:2026-10-30
|
||||
> 项目:解忧商行(hfb_jysh)
|
||||
> 范围:后台客服会话列表、消息查看、回复、转接、备注、全部已读
|
||||
> 结论:**页面与路由已落地,tsc/build 通过,只读接口回归 200;发送与转接未在验收中执行**
|
||||
|
||||
---
|
||||
|
||||
## 1. 页面与路由
|
||||
|
||||
- 页面:`frontend/src/features/admin/AdminChatsPage.tsx`
|
||||
- 路由:`/console-jy8k3m/chats`
|
||||
- 权限:查看 `chat:view`,发送/转接/备注 `chat:send`
|
||||
- 样式:`frontend/src/styles/admin-chat.css`(已接入 `styles/global.css`)
|
||||
|
||||
## 2. 接口
|
||||
|
||||
| 方法 | 路径 | 说明 |
|
||||
|---|---|---|
|
||||
| GET | `/api/admin/chats` | 会话列表(`filter` / `stage` / `keyword` / 分页) |
|
||||
| GET | `/api/admin/chats/counts` | 归属与阶段统计 |
|
||||
| GET | `/api/admin/chats/:id` | 会话详情 |
|
||||
| GET | `/api/admin/chats/:id/messages` | 消息列表 |
|
||||
| POST | `/api/admin/chats/:id/messages` | 发送消息 |
|
||||
| POST | `/api/admin/chats/:id/read` | 标记已读 |
|
||||
| POST | `/api/admin/chats/read-all` | 全部已读 |
|
||||
| GET | `/api/admin/chats/support-admins` | 可转接客服 |
|
||||
| POST | `/api/admin/chats/:id/transfer` | 转接会话 |
|
||||
| POST | `/api/admin/chats/:id/remark` | 保存后台备注 |
|
||||
|
||||
## 3. 能力
|
||||
|
||||
- 左侧会话列表:`filter`(全部 / 我负责的)、`stage`(全部 / 待处理 / 未进群 / 交接中 / 租用中 / 售后 / 已结束)、关键字搜索;未读 Badge、待回复标签、订单号标签、最近消息与相对时间,15 秒轮询。
|
||||
- 右侧会话面板:会话元信息(订单号、订单状态、客服场景)、消息气泡(本人消息右对齐、图片消息内联预览)、8 秒轮询,切换会话自动滚动到底部。
|
||||
- 回复区:快捷回复下拉插入(复用 `GET /admin/chats/quick-replies`)、文本输入(2000 字上限、Enter 发送 / Shift+Enter 换行)。
|
||||
- 会话操作:转接客服(下拉选择 + 二次点击确认)、后台备注保存、全部已读。
|
||||
- 选中未读会话时自动调用已读接口并刷新列表与详情。
|
||||
|
||||
## 4. 回归结果
|
||||
|
||||
```text
|
||||
前端 http://localhost:5289
|
||||
后端 http://127.0.0.1:18089
|
||||
Cookie /tmp/jysh-admin-cookie2.txt
|
||||
```
|
||||
|
||||
| 检查项 | 状态 |
|
||||
|---|---|
|
||||
| `GET /console-jy8k3m/chats` | 200 |
|
||||
| `GET /api/admin/chats?page=1&page_size=5` | 200 |
|
||||
| `GET /api/admin/chats/counts` | 200 |
|
||||
| `GET /api/admin/chats/support-admins` | 200 |
|
||||
|
||||
`npx tsc --noEmit` 通过;`npm run build` 通过,主入口 `498.83 kB` / gzip `157.03 kB`,无超大包告警。
|
||||
|
||||
## 5. 未覆盖
|
||||
|
||||
- 发送消息、转接、备注保存、已读均未执行真实写操作(开发库无真实会话)。
|
||||
- 实时推送依赖 SSE(`/admin/chats/events`),本页采用轮询兜底,未接入 SSE。
|
||||
- 自动欢迎语与商品群欢迎配置(`/admin/chats/auto-welcome`、`/listing-group-welcome`)尚未做页面。
|
||||
+1
-1
@@ -414,7 +414,7 @@ hfb_jysh/
|
||||
- 已落地:`/wallet`(余额 + 流水)、`/wallet/payment-accounts`、`/wallet/withdrawal`、移动端 `/m/wallet/withdrawal`、卖家 `/seller/earnings`、`/seller/handoffs`、`/seller/pickups`。
|
||||
- 申诉仲裁、手工订单、提号、客服群、快捷回复。
|
||||
- 已落地:客服群组(`/chat-support-groups`,权限 `chat:manage`),角色权限矩阵(`/roles`,权限 `role:manage`),手工录单(`/manual-entries`,权限 `cs_manual_entry:*`),快捷回复(`/chat-quick-replies`,权限 `chat:view` / `chat:send`),线下提号(`/pickup`、`/pickup/:id`,权限 `order:pickup`,口径统一为「线下提号」)。
|
||||
- 待落地:客服会话工作台 `/chats`、主站二维码池 `/qrcode-pool`。
|
||||
- 待落地:主站二维码池 `/qrcode-pool`、自动欢迎与商品群欢迎配置。
|
||||
- 分销站点、规则、订单、结算、二维码池、分销用户、公告。
|
||||
- 公告、邀请返利、推送、追踪链接。
|
||||
- 已落地:公告管理、邀请返利、推广追踪(`/tracking-links`,权限 `ad_tracking:manage`)。
|
||||
|
||||
Reference in New Issue
Block a user