yeg
2026-08-25 1b4ed97704c72d6a5f12922b92dc2296ab4b2a24
前端开发规则
1个文件已添加
39 ■■■■■ 已修改文件
AGENTS.md 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
AGENTS.md
New file
@@ -0,0 +1,39 @@
# 前端开发规则
本文件适用于 `batteryDetection-web`。同时遵守父目录 `AGENTS.md` 的项目不变量。
## 状态所有权
- 后端响应是测试、通道、监测、异常、采样、用户、权限和审计的正式状态。前端 store 只保存当前会话的展示缓存和临时表单。
- 新代码不使用 `localStorage` 保存业务记录。触及已有本地模拟 store 时,将当前流程迁移到后端 API;不要求顺带重写无关页面。
- `localStorage` 可保存认证令牌、记住的用户名和纯展示偏好。可恢复表单草稿必须明确是草稿,提交成功后清除,且不能参与权限或状态判断。
- 页面按钮可按权限改善体验,但每个受限操作都以服务端授权结果为准。
## 测试与监测界面
- 正式测试状态只展示:`待测试`、`检测中`、`暂停`、`检测中(异常)`、`检测完成`、`已终止`。“完成确认中”是后端内部阶段,前端可用进度文案表达但不新增正式测试状态。
- 监测状态单独展示:`未监测`、`等待设备启动`、`监测中`、`补采中`、`监测结束`、`已取消`。不要把两套状态合并到一个字段或筛选项。
- “开始监测”表示开始观察和认领,不表示启动 BTS。暂停、继续、结束等入口在第一里程碑保持禁用或明确为未启用设备控制,不能伪造成功状态。
- 实时快照与历史结果在类型、接口和页面文案上分开;实时点不能加入最终原始数据列表。
- 采集器是可选辅助设备。创建测试允许只选择检测柜通道,不把采集器做成必填项。
## API 与 SSE
- HTTP 请求复用 `src/api/request.ts` 的鉴权和错误处理;按业务域在 `src/api` 中维护带类型的接口,不在视图内散落 URL。
- SSE 使用 `fetch` 流式读取 `text/event-stream` 并携带 `Authorization` 请求头。JWT 不放入 URL,不使用原生 `EventSource` 绕开现有鉴权。
- SSE 重连后用服务端当前快照替换本地快照;历史区间通过 REST 查询。不要把 SSE 当作可靠消息队列或在浏览器累积所有采样点。
- API 时间按 ISO 8601 解析并以用户本地时区展示;单位换算只发生在展示或导入边界,并保留接口返回的原始单位。
## 交互与数据安全
- 运行中测试禁用导入。导入结果逐行展示校验信息,并明确分组成功与失败记录;不能用导入覆盖原始采样。
- 终态测试不提供重启入口。修订和认领纠正以新操作提交并展示审计结果,不提供静默撤销。
- SSE 断开、REST 失败和权限拒绝要有可见错误状态;不得乐观地把正式测试状态改为成功。
- 延续现有 Element Plus 布局与组件习惯,确保桌面和常用窄屏下按钮、状态文本和表格操作不重叠。
## 验证
- 修改 API 类型、状态映射或实时流时,检查加载、空数据、断线、重连、无权限和后端异常状态。
- 完成前运行 `npm run build`。若新增测试脚本,再同时运行受影响测试。
- 需要浏览器交互验证时启动 `npm run dev`,检查控制台和网络请求;完成后说明仍依赖模拟数据的页面。