--- description: nl-admin 管理后台(Vben Admin 5.7 + Vue 3.5 + TS + Ant Design Vue 4)代码规范 alwaysApply: true --- # 技术栈基线(升级后必守) - **Vben Admin 5.7.0**(monorepo 根 `package.json` / `@vben/web-antd` 版本) - **Vue 3.5** + **TypeScript** + **Ant Design Vue 4.x**;业务只改 `apps/web-antd` - **Tailwind CSS v4**(CSS-first,主题在 `@vben/tailwind-config`);不要再引入 `tailwind.config.*` / PostCSS Tailwind 插件那套 v3 写法 - 格式化 / Lint 以仓库现有工具链为准:`oxfmt` + `oxlint`(配合 eslint / stylelint),**不要**再单独引入 Prettier 作为主格式化器 - 组件细则见同目录 `Vben-Components.mdc`(与 https://doc.vben.pro/components/ 对齐) # 基础规范(所有项目通用) 1. 写代码的时候要补充详细的中文注释(每个方法是干嘛的,为什么要这样写),如果是工作区,则所有项目都适用该规则 2. 注意不要生成太多的空行,上一部分代码和下一部分代码中间的空行不要大于 2 行 3. 有封装好的方法、组件需要复用,不要重复造轮子 4. 小程序端的抽屉全部需要用 page-container 来防止用户意外退出页面(记得使用 v-if 而不是 v-show;本仓库为 PC 管理端,此项约束 uniapp) 5. 数据库的(created_at、updated_at、deleted_at)统一使用时间戳,不要使用字符串,并且我在查询器中一级格式化成字符串了,无需再次格式化 # 全局架构规范 ## 目录结构规范 - 业务页面统一放在 `apps/web-antd/src/views/<端>/<模块>/` - 当前已有端/模块:`system`(admin / role / menu / database)、`dashboard`、`code-generation`、`_core` - 新增业务优先挂在已有端下;确需新端时再建目录,**不要**照搬其他项目的 `business` / `doctor` 等目录名 - 标准 CRUD 模块目录结构(以 `system/admin`、`system/role`、`system/menu` 为准): ``` views/<端>/<模块>/ ├── index.vue # 列表页(Page + Grid + Modal) ├── api/index.ts # 本模块 API(CRUD) ├── config/ │ ├── table.ts # vxe-grid 列定义 + proxyConfig │ ├── search.ts # 顶部搜索表单 schema │ └── form.ts # 新增/编辑弹窗 form schema ├── components/ │ └── modal.vue # 新增/编辑弹窗 └── utils/ # 模块工具(可选) ``` - 非标准 CRUD(如 `system/database`、`code-generation`)可按功能拆组件,但仍须把请求收敛到模块 `api/` - 全局复用组件放 `apps/web-antd/src/components/` - 表单内可用组件放 `apps/web-antd/src/components/form/components/`,文件名 kebab-case,自动注册为 schema 的 `component` 名(PascalCase 引用) ## 强制复用封装(禁止重复造轮子) - 表格统一用 `useVbenVxeGrid`(来自 `#/adapter/vxe-table`),**不要直接 new VxeGrid** - 表单统一用 `useVbenForm`(来自 `#/adapter/form`),**不要直接写 `