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 全量安装——必须按需