# abacus-static-framework — 开发规范(CONVENTIONS)
> 命名、目录、提交、风格、测试的权威(本仓库视角)。前后端共享约束见工作区 `docs/coding-standards.md`(`../../../../docs/coding-standards.md`),本文只写前端特有内容 + 指针,**禁止复制 docs/ 正文**。
## 0. 阅读指引
- 适用范围:`src/subsystem/**` 业务开发(`src/framework/**` 只读)。
- 分工:ARCHITECTURE 管"拆成什么模块";本文管"怎么命名/写";共享编码规范、接口契约、AI 生成工作流在 `docs/coding-standards.md`。
## 1. 命名
### 1.1 标识符
- 组件名:PascalCase,且**必须与路由 `name` 一致**(``)。
- 文件/目录:kebab-case(如 `operationLog/index.vue`);views 目录按一级/二级菜单名组织。
- API 函数:`getXxx` / `saveXxx` / `deleteXxx` / `exportXxx`。
- Pinia store:`useStore`。
### 1.2 模块命名(语义禁区)
- 禁止 `Manager` / `Helper` / `Util` / `Common` / `Misc` / `Tools` 这类语义为空的名字;用"动词+名词"(如 `useTableQueryReload`、`gridDefaultProps`)。
### 1.3 文件 / 1.4 目录 / 1.5 资产命名
- 文件按主类型命名:页面 `index.vue`(views 目录内)、API 按 Controller 分 `api/<服务别名>/<模块>.ts`、组合式函数 `use.ts`。
- 目录:`api/<服务别名>/`、`views/<一级菜单>/<二级菜单>/`、`router/`、`extend/`;业务自建 `components/ hooks/ store/ styles/ types/ utils/`。
- 资产:图标/图片放 `src/assets/` 或 `public/`(按是否需编译/保持原名选择)。
### 1.6 字符串与本地化
- 用户可见文案用中文;菜单标题在路由 `meta.title` 与后端菜单保持一致。
## 2. 代码风格
### 2.1 排版
- TypeScript / Vue:2 空格缩进;单行 ≤ 120 字符;`