You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
5.5 KiB
5.5 KiB
前端开发手册
这份文档用于人和 AI 在新窗口中快速接手项目。开发顺序固定为:先了解现状 → 梳理任务和接口 → 开发 → 验证 → 更新交接文档。
1. 新窗口先做什么
新开的 AI 窗口应先阅读项目根目录的 AGENTS.md。如果需要手动向 AI 说明,可以直接发送:
请在
C:\Du\work\duu\zhongyou\zhongyou_web工作。先完整阅读AGENTS.md、docs/development/README.md、docs/development/CURRENT_STATUS.md、docs/development/CURRENT_TASK.md、docs/api/README.md和docs/api/page-api-map.md,检查git status和相关现有代码。先把本次开发目标、页面、接口、字段映射、风险及验收方式整理进CURRENT_TASK.md,向我汇报方案后再进行开发。完成后构建验证,并更新当前状态、开发日志和页面接口映射。
2. 技术栈和项目结构
- Vue 2.6
- Vue Router 3(history 模式)
- Vuex 3
- Element UI 2.15
- Axios
- Vue CLI 4 / Webpack 4
- Node:当前可用版本位于
C:\Du\Modules\nvm\v22.14.0
关键目录:
zhongyou_web/
├─ public/static/config.js # 运行时服务地址、MQTT、APK 等配置
├─ src/api/ # API 请求封装
├─ src/layout/ # 页面整体布局
├─ src/router/ # 公共及本地动态路由
├─ src/store/modules/permission.js # 后端菜单转换为动态路由
├─ src/utils/request.js # Axios 实例和拦截器
├─ src/views/ # 业务页面
├─ docs/api/ # 从 api.json 整理出的接口资料
└─ docs/development/ # 开发状态和交接资料
3. 启动和构建
如果当前终端 PATH 中没有 npm,使用绝对路径:
& 'C:\Du\Modules\nvm\v22.14.0\npm.cmd' run dev
& 'C:\Du\Modules\nvm\v22.14.0\npm.cmd' run build:prod
生产构建脚本已配置 OpenSSL 3 兼容参数,避免:
error:0308010C:digital envelope routines::unsupported
更新接口文档:
& 'C:\Du\Modules\nvm\v22.14.0\npm.cmd' run docs:api
4. 路由和菜单机制
菜单不是主要写死在 src/router/index.js,而是登录后由后端菜单接口下发,在 src/store/modules/permission.js 中转换成组件和路由。
后端菜单的组件路径以 src/views 为根,不写 .vue。例如:
页面文件:src/views/hazard/audit/index.vue
组件路径:hazard/audit/index
父级路由:hazard
子级路由:audit
最终地址:/hazard/audit
页面创建完成不代表菜单自动出现,还需要:
- 在“系统管理 → 菜单管理”创建目录/菜单。
- 在“角色管理”给当前角色授权。
- 重新登录或刷新,让后端重新下发菜单。
5. 接口资料怎么查
入口:API 接口资料中心。
推荐顺序:
- 页面与接口映射:已有页面应该使用哪些接口。
docs/api/modules/*.md:按业务模块阅读接口名称、用途、参数和响应。- 数据模型与字段字典:查询实体字段说明。
docs/api/catalog.json:全文或程序化搜索全部 278 个接口。
接口原始文件位于项目上一级:C:\Du\work\duu\zhongyou\api.json。
6. 每次任务的开发流程
开发前
- 理解用户目标和验收标准。
- 检查当前页面是否为空白、是否已有用户改动。
- 找到对应接口、请求字段、响应字段、字典和权限。
- 确认原型字段和接口字段如何映射。
- 识别接口缺失、定义不完整、权限或菜单依赖。
- 更新
CURRENT_TASK.md后再编码。
开发中
- 先写/复用
src/api请求封装。 - 页面拆分专用组件到同级
components/。 - 使用真实字段,不用未经允许的假接口或假数据。
- 保留加载、空态、错误、分页和危险操作确认。
- 修改范围保持与任务一致。
开发后
- 静态检查和生产构建。
- 核对菜单组件路径与实际文件大小写完全一致。
- 更新
CURRENT_STATUS.md、CURRENT_TASK.md和DEVELOPMENT_LOG.md。 - 页面接口变化时更新
docs/api/page-api-map.md。 - 向用户说明接口是否仅接入代码、是否已实际联调。
7. 接口接入的关键注意事项
MyConfig.BASE_API当前是http://www.bjsdqc.cn:10090/gd_dataserver。- 因此
api.json中/gd_dataserver/gd_dataserver/...的完整路径,在前端通常应封装为/...或/flowable/...、/business/...,由 baseURL 补第一个/gd_dataserver。 - 当前请求拦截器发送
Authorization: Bearer,OpenAPI 却标注X-Access-Token;未经确认不要修改全局鉴权。 - 导出接口使用 Blob,优先复用
src/utils/request.js提供的download()。 - 页面若依赖字典值,应先搜索项目现有字典工具和后端字典配置,不要只显示裸编码。
8. 文档职责
| 文档 | 用途 | 什么时候更新 |
|---|---|---|
AGENTS.md |
AI 必须遵守的项目规则 | 项目约定变化时 |
CURRENT_STATUS.md |
当前项目和页面真实状态 | 每次开发完成后 |
CURRENT_TASK.md |
正在开发任务的计划和结果 | 每次开发前、开发后 |
DEVELOPMENT_LOG.md |
按时间记录已完成工作 | 每次开发完成后追加 |
docs/api/page-api-map.md |
页面与接口、字段映射 | 页面接口发生变化时 |
docs/api/* 自动文档 |
OpenAPI 全量整理 | api.json 更新后重新生成 |