From 554d1251903c7334bd728596bcf5c45f7b1665f2 Mon Sep 17 00:00:00 2001 From: ZSY_docs Date: Sat, 12 Sep 2026 17:04:37 +0800 Subject: [PATCH] =?UTF-8?q?docs(41):=20=E5=AE=A2=E6=9C=8D=20Agent=20?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E5=BC=80=E5=8F=91=E7=BA=A6=E6=9D=9F=20v1.0?= =?UTF-8?q?=EF=BC=88=E5=9B=A2=E9=98=9F=E5=BC=BA=E5=88=B6=E8=A7=84=E8=8C=83?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增 docs/41-客服Agent前端开发约束_v1.md(720 行 / 68 个标题 / 13 节 + 3 附录): - §2 技术栈:原生 JS + CSS + ECharts;禁 React/Vue/TS/Tailwind(与底座现有 app/static/index.html 风格一致) - §3 目录结构:portal/// 三层命名空间 - §7 接口调用:api-client.js 封装;trace_id + JWT 自动注入;4xx 不重试 - §8 权限 RBAC:9060-9065(§T 段)映射可见性;前端不发明角色 - §11 看板专属:模块归属 portal/customer/dashboard/;4 模块按 T001 字段拆;60s 缓存 + 仅手动刷新;3 状态必齐 - §13 验收清单:通用 10 项 + 看板 9 项 + 自动化 3 项 本文件与 docs/40-前端验收清单.md 互补(约束 ≠ 验收),编号 41 不撞号 --- docs/41-客服Agent前端开发约束_v1.md | 721 ++++++++++++++++++++++++++++ 1 file changed, 721 insertions(+) create mode 100644 docs/41-客服Agent前端开发约束_v1.md diff --git a/docs/41-客服Agent前端开发约束_v1.md b/docs/41-客服Agent前端开发约束_v1.md new file mode 100644 index 0000000..f3684f1 --- /dev/null +++ b/docs/41-客服Agent前端开发约束_v1.md @@ -0,0 +1,721 @@ +# 客服 Agent 前端开发约束 + +版本:v1.0 +适用分支:`qyqy_develop`(含我方 §T 用户自助段已上推的 9 端点) +权威性:**团队强制规范**——所有客服 Agent 前端仓库(含本期看板、未来客户工作台、转人工会话、客户画像确认页)必须遵循本文件 +关联规范:`docs/05-接口文档.md`(接口权威)、`docs/40-前端验收清单.md`(qyqy 验收清单)、`docs/客服Agent一期_合规红队与业务评测集_v1.md`(合规红线) + +> 一句话:**任何"功能正确但违背本约束"的前端 PR 必须在评审阶段退回。** 本约束的检查清单见 §10。 + +--- + +## 目录 + +1. [适用范围与术语](#1-适用范围与术语) +2. [技术栈](#2-技术栈) +3. [目录结构](#3-目录结构) +4. [命名规范](#4-命名规范) +5. [组件拆分原则](#5-组件拆分原则) +6. [状态管理](#6-状态管理) +7. [接口调用规范](#7-接口调用规范) +8. [权限与角色控制](#8-权限与角色控制) +9. [错误处理与日志埋点](#9-错误处理与日志埋点) +10. [样式与 UI 规范](#10-样式与-ui-规范) +11. [看板模块专属约束](#11-看板模块专属约束) +12. [与主客服 Agent 页面的交互跳转](#12-与主客服-agent-页面的交互跳转) +13. [验收检查清单](#13-验收检查清单) + +--- + +## 1. 适用范围与术语 + +| 术语 | 含义 | +|---|---| +| **客服 Agent** | 系统中的"奶龙"智能客服;服务层为 `app/service/agent/implementations/customer_service.py` | +| **门户(Portal)** | 五端 portal:访客 / 已登录用户 / 交易系统 / 员工专属(风控)/ 员工专属(投顾) | +| **看板(Dashboard)** | 本期 §T 段新增的"我的账户"页面,端点 `T001 GET /api/v1/users/me/account/dashboard` | +| **门户身份(sub)** | JWT 的 `sub` 字段,访客为纯数字(≤19位),用户为 `customer_id`(int)字符串 | +| **envelope** | 所有接口统一响应壳:`{data, meta}`(见 `docs/05-接口文档.md` §3.3) | +| **trace_id** | 每次请求生成的 UUID v4,前后端全链路打通 | +| **Wolin OS** | 沃林学生系统的前端 v6(13 个页面),与本约束**不共享代码**——本约束仅适用于客服 Agent 前端 | + +**不适用**于: +- Wolin OS(已独立维护,有自己的风格) +- 内部运营监控台(`docs/30+` 系列描述) +- 投顾/风控工作台(虽共用底座,但前端结构另起) + +--- + +## 2. 技术栈 + +### 2.1 强制采用(不可替换) + +| 层 | 选型 | 版本约束 | 备注 | +|---|---|---|---| +| **框架** | 原生 JavaScript(ES2022+) | 无构建依赖 | 与底座 `app/static/index.html` 现有 Chat 联调页一致,避免引入 Node/Vite/Webpack | +| **样式** | 原生 CSS + CSS 变量 | 无 Tailwind / 无 CSS-in-JS | 看板的卡片/图表使用 CSS Grid + Flexbox | +| **图表** | ECharts 5.x(按需引入) | ≥5.4 | 仅看板与允许引入,其他页面用纯 CSS 图形 | +| **HTTP** | `fetch` 封装(见 §7.3) | 不引入 axios / ky | 与底座同源,减少 bundle | +| **运行时** | 浏览器 ≥Chrome 110 / Edge 110 / Safari 16 | 不支持 IE | 公司统一桌面环境标准 | + +### 2.2 禁止使用 + +- ❌ React / Vue / Svelte(团队暂无相关人力储备,与底座解耦成本不划算) +- ❌ TypeScript(首版不强约束;如要引入必须先经客服组评审) +- ❌ 任何 UI 组件库(Element / Ant Design / MUI 等)——会与品牌色系冲突 +- ❌ jQuery / Lodash(现代 API 已覆盖) +- ❌ 任何 npm 全量安装——必须按需