feat: 完成营业时间模块拆分并补充页面注释规范

This commit is contained in:
2026-02-16 09:59:44 +08:00
parent 4be997df63
commit 14857549ba
31 changed files with 3726 additions and 1 deletions

View File

@@ -15,6 +15,7 @@
5. **推送优先级**:提交后推送时,优先使用 SSH 远程(`git@github.com:...`),避免 HTTPS TLS 问题。
6. **推送默认**:提交后自动执行 `git push`,无需再次提醒或确认。
7. **不确定配置**:拿不准(如接口字段、鉴权流程)直接问用户。
8. **需求开发前置步骤(强制)**:每次开始“新增/修改需求”前,必须先从 `https://api-tenant-dev.laosankeji.com/swagger/v1/swagger.json` 拉取最新 Swagger定位本次需求涉及的接口契约路径、入参、出参、字段再进行代码变更。
## 1. 技术栈详细版本
@@ -56,6 +57,9 @@
- **常量/枚举**`PascalCase``UPPER_SNAKE_CASE`
- **路径别名****严禁**使用 `../../` 穿越多层。必须使用 `#/*``@vben/*``@vben-core/*` 等别名。
- **逻辑注释 (强制)**代码逻辑块必须空行分隔并加序号注释1. 验证... 2. 请求...)。
- **文件头注释 (强制)**:所有新增 `*.ts`/`*.vue`/`*.less`/`*.scss` 文件,必须包含“文件职责”注释,说明该文件负责的业务边界。
- **关键函数注释 (强制)**:对外导出的函数、含分支校验/提交流程的核心函数,必须添加简短中文注释,至少说明输入意图与副作用(如会触发请求/刷新/消息提示)。
- **重构注释保留 (强制)**:拆分文件时,必须把原有关键流程注释同步迁移,禁止出现“重构后逻辑完整但无注释”的情况。
- **组件通信**:优先 `props/emit`,跨层用 `mitt` 或 store**慎用** `provide/inject`
## 4. 接口与 HTTP 规范 (含 .NET 兼容)
@@ -77,6 +81,19 @@
- **Vue 3.5 新特性**:使用 Props 解构 (`const { count = 0 } = defineProps<{...}>`)。
- **表单交互**:使用 Element Plus 表单校验;避免直接操作 DOM。
- **Loading**:所有修改类操作必须绑定 `loading` 状态。
- **页面拆分(强制)**:当 `views/**/index.vue` 逻辑复杂或总行数超过 400 行时,必须拆分为:
- `composables/useXxxPage.ts`(业务状态、校验、提交流程)
- `components/*.vue`(抽屉、弹窗、复杂表单等子视图)
- `styles/index.less|scss`(页面样式)
- **Composables 二级拆分(强制)**:当 `composables/useXxxPage.ts` 超过 300 行或同时承担 4 类以上职责(常量/转换/数据加载/提交动作)时,必须继续拆分为目录:
- `composables/xxx-page/constants.ts`(常量与配置)
- `composables/xxx-page/helpers.ts`(纯函数:格式化、校验、归一化)
- `composables/xxx-page/*-actions.ts`按业务动作拆分load/save/copy 等)
- `useXxxPage.ts` 仅保留状态编排与导出,不承载大段业务实现。
- **样式二级拆分(强制)**:当 `styles/index.less|scss` 超过 150 行或包含 3 个以上视觉域(列表/表单/抽屉/弹窗/响应式)时,必须拆分为分片文件,`index.less|scss` 只做 `@import` 聚合。
- **子组件单向数据流(强制)**:子组件禁止直接修改父级传入对象;必须通过 `emit` 或显式 `onSetXxx` 回调更新父级状态。
- **职责边界**:子组件仅负责渲染与事件抛出;请求、数据归一化、持久化必须留在页面 composable。
- **样式边界**:页面样式拆文件后,必须使用页面根类(如 `.page-hours`)作为作用域前缀,避免全局污染。
## 6. 状态管理规范 (Pinia)