init: 初始化 hgmj 后台管理项目

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-10-08 17:48:09 +08:00
co-authored by Claude Opus 4.7
commit 397398b746
645 changed files with 179153 additions and 0 deletions
@@ -0,0 +1,63 @@
---
name: vue2-api-integration
description: Use when implementing or debugging API integration in this Vue2 project, including request parameter mapping, response normalization, business error handling, auth expiry handling, and submit/list flow consistency.
disable-model-invocation: true
---
# Vue2 API Integration
## 适用场景
- 新增或修改 `src/api/*.js` 接口方法
- 页面查询、提交、删除、状态切换的接口联调
- 线上/测试环境出现接口报错、数据格式不一致、权限失效
## 联调核心原则
- **一处定义接口**:请求方法统一维护在 `src/api`,页面层不写裸请求
- **参数先整形再发送**:空值、时间范围、布尔值、数字类型先归一化
- **响应做兜底**:列表、分页、详情都要有默认值,避免空指针
- **错误统一反馈**:用户看得懂、可操作;开发可定位
- **鉴权失效可恢复**:401/403 走统一处理,避免页面卡死
## 请求层约定
- GET 查询使用 `params`,POST/PUT 使用 `data`
- 接口函数命名表达业务动作:`getXxxList`、`createXxx`、`updateXxx`
- 同类接口保持参数结构一致,降低页面层分支逻辑
## 页面层约定
- 页面只做调用、状态切换、提示和数据映射
- 所有异步方法都要有 `loading` 生命周期(开始/结束)
- 提交类动作默认防重复:`submitLoading` 或按钮禁用
- 删除/危险操作必须确认后调用
## 常见数据映射
- 时间区间:`[startTime, endTime]` 拆成后端需要字段
- 开关状态:`true/false` 映射为后端约定值(如 `1/0`)
- 数字输入:提交前转数字,避免 `"1"`/`1` 混用
- 列表响应:`list`、`total` 必须有默认值
## 错误与鉴权处理
- 业务失败:提示明确失败原因,不吞错误
- 网络异常:提示“网络异常,请稍后重试”
- 401:提示登录失效并引导重新登录
- 403:提示无权限并保持当前页面可回退
- 异常分支必须收尾:关闭 loading、恢复按钮状态
## 推荐联调流程
1. 先确认接口文档字段和返回结构
2. 在 `src/api` 定义/更新请求函数
3. 页面接入并补齐参数整形与响应兜底
4. 跑通成功路径(查询/提交)
5. 验证失败路径(业务报错/网络异常/无权限)
6. 执行 lint 或 test-build 确认无新增阻断问题
## 快速参考
- 示例代码:见 [examples.md](examples.md)
- 联调检查表:见 [checklist.md](checklist.md)