代码规范与测试
提交前检查
bash
npm run typecheck
npm run lint
npm run build必要时再运行 npm run format。格式化会修改 src/,执行前确认工作区变更。
编码约定
- Vue 组件使用 Composition API 与
<script setup lang="ts">。 - 业务接口集中在
src/api,页面不直接创建 Axios 实例。 - 共享业务模型使用明确类型,避免把
any扩散到页面。 - 枚举文案来自字典,避免在多个页面硬编码同一状态。
- 操作权限同时由前端控制显示、后端控制执行。
- 异步请求必须处理 loading、失败、空数据与组件卸载/切页。
- 复杂重复交互抽取为 composable,不复制大段渲染代码。
测试建议
当前仓库未配置自动化测试框架。开源后建议逐步增加:
- Vitest:纯函数、store action、权限判断、菜单树转换、请求配置合并。
- Vue Test Utils:Search、Table、表单弹窗与权限指令。
- MSW:HTTP 成功、业务失败、401、超时、重试、取消和文件响应。
- Playwright:登录、动态路由、CRUD、主题切换、多页签和刷新深层路由。
CI 至少应在受支持的 Node.js 版本上执行安装、类型检查、Lint 和构建。锁文件已提交时使用 npm ci 获得可复现安装。
Review 清单
- 是否暴露密钥、内部域名、真实账号或个人信息。
- 新增动态菜单组件路径能否被 glob 匹配。
- 写请求是否错误开启自动重试。
- 外部服务是否错误携带 Token。
- 权限是否只在前端判断。
- 新增持久化字段是否需要迁移。
- 文件上传与富文本是否有 XSS、类型和大小限制。