diff --git a/.cursor/rules/.gitignore b/.cursor/rules/.gitignore new file mode 100644 index 0000000..d8e475f --- /dev/null +++ b/.cursor/rules/.gitignore @@ -0,0 +1,78 @@ +# 操作系统生成的文件 +.DS_Store +.DS_Store? +._* +.Spotlight-V100 +.Trashes +ehthumbs.db +Thumbs.db + +# IDE和编辑器 +## Visual Studio Code +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +*.code-workspace +.history/ + +## Cursor +.cursor/ +*.cursor-project + +## IntelliJ IDEA +.idea/ +*.iml +*.iws +*.ipr +.idea_modules/ +out/ +atlassian-ide-plugin.xml + +# 依赖包目录 +node_modules/ +jspm_packages/ +bower_components/ + +# 构建输出 +dist/ +build/ +out/ +*.min.js +*.min.css + +# 日志 +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# 环境变量和秘钥 +.env +.env.local +.env.development.local +.env.test.local +.env.production.local +.env.*.local +*.pem + +# 测试覆盖率 +coverage/ +.nyc_output/ + +# 临时文件 +tmp/ +temp/ +*.swp +*.swo + +# 缓存目录 +.npm +.eslintcache +.stylelintcache +.cache/ +.parcel-cache/ +.history/ \ No newline at end of file diff --git a/.cursor/rules/README.md b/.cursor/rules/README.md new file mode 100644 index 0000000..a6c76e8 --- /dev/null +++ b/.cursor/rules/README.md @@ -0,0 +1,133 @@ +# Cursor Rules 规则汇总 + +本项目用于收集、整理和标准化 Cursor Rules 规则文件,提供多种编程语言和框架的规则支持,使开发者能够更有效地利用 Cursor 进行开发工作。 + +## Cursor Rules 最佳实践 + +文章教程: + +[Cursor Rules 的一次全面总结,希望能够帮助到你!](https://mp.weixin.qq.com/s/l8r2lJlEv5fKWJRSsSd1kQ) + +[Cursor 0.49.x 自动化生成 Project Rules 实用指南](https://mp.weixin.qq.com/s/1yTkzYzOFjty1D0gtYHuHA) + +[Cursor Rules 进阶指南:打造企业级多语言开发规范](https://mp.weixin.qq.com/s/rfanrMtMMuyUTwsDYmlxSg) + +[Cursor Rules 最佳实践总结](https://mp.weixin.qq.com/s/-J_LwfwH9rmFy4dzEy0RXg) + +视频教程: + +https://www.bilibili.com/video/BV1S3VhzpEqL/ + + +### 1、通用规则层 + +这些规则始终生效,为所有代码提供基础规范: + +- **core.mdc** - 核心开发原则和响应语言 +- **teck-stack.mdc** - 技术栈定义和官方文档链接 +- **project-structure.mdc** - 项目结构和文件组织规范 +- **general.mdc** - 通用编程规则(后续将移除) + +### 2、编程语言层 + +根据文件扩展名自动应用的语言特定规范: + +- **Python** (python.mdc) +- **Java** (java.mdc) +- **TypeScript** (typescript.mdc) +- **Go** (golang.mdc) +- **C++** (c++.mdc) +- **CSS** (css.mdc) +- **WXML** (wxml.mdc) - 微信小程序标记语言 +- **WXSS** (wxss.mdc) - 微信小程序样式表 +- **Kotlin** (kotlin.mdc) + +### 3、框架层 + +根据文件扩展名自动应用规范,或者AI可根据上下文自动判断并请求的框架特定规范: + +#### 前端框架 +- **React** (react.mdc) - React 应用开发 +- **Vue.js** (vuejs.mdc) - Vue.js 应用开发 +- **Next.js** (nextjs.mdc) - React 全栈框架 +- **Tailwind CSS** (tailwind.mdc) - 实用优先的 CSS 框架 + +#### 后端框架 +- **Django** (django.mdc) - Python Web 框架 +- **Flask** (flask.mdc) - Python 轻量级 Web 框架 +- **FastAPI** (fastapi.mdc) - Python 现代 API 框架 +- **Spring Boot** (springboot.mdc) - Java 企业级框架 + +#### 移动开发框架 +- **Flutter** (flutter.mdc) - 跨平台移动应用开发 +- **SwiftUI** (swiftui.mdc) - iOS 原生 UI 框架 +- **React Native** (react-native.mdc) - 跨平台移动应用开发 +- **Android**(android.mdc) - Android 框架开发规范 + +### 4、其他工具层(可选,非必需) +需要用户明确请求的工具和流程规范,使用 `@` 引入对应的规则。 + +- **Git相关规则** (git.mdc) +- **Git Flow工作流规则** (gitflow.mdc) +- **文档编写规则** (document.mdc) + + +## 使用方法 + +1. 克隆本仓库 +2. 浏览相应语言和框架的规则 +3. 将适用的规则应用到您的项目中 +4. 贡献您自己的规则回馈社区 + +## 项目结构 + +``` +cursor-rules/ +├── base/ # 基础规则层(通用规则) +│ ├── core.mdc # 核心开发原则和响应语言 +│ ├── tech-stack.mdc # 技术栈定义和官方文档链接 +│ ├── project-structure.mdc # 项目结构和文件组织规范 +│ └── general.mdc # 通用编程规则 +├── languages/ # 编程语言特定规则 +│ ├── c++.mdc # C++语言规则 +│ ├── css.mdc # CSS样式规则 +│ ├── golang.mdc # Go语言规则 +│ ├── java.mdc # Java语言规则 +│ ├── kotlin.mdc # Kotlin语言规则 +│ ├── python.mdc # Python语言规则 +│ ├── typescript.mdc # TypeScript语言规则 +│ ├── wxml.mdc # 微信小程序标记语言规则 +│ └── wxss.mdc # 微信小程序样式表规则 +├── frameworks/ # 框架相关规则 +│ ├── # 前端框架 +│ ├── nextjs.mdc # Next.js框架规则 +│ ├── react.mdc # React框架规则 +│ ├── react-native.mdc # React Native框架规则 +│ ├── vuejs.mdc # Vue.js框架规则 +│ ├── tailwind.mdc # Tailwind CSS规则 +│ ├── # 后端框架 +│ ├── django.mdc # Django框架规则 +│ ├── fastapi.mdc # FastAPI框架规则 +│ ├── flask.mdc # Flask框架规则 +│ ├── springboot.mdc # Spring Boot框架规则 +│ ├── # 移动开发框架 +│ ├── android.mdc # Android框架规则 +│ ├── android_bak.mdc # Android框架规则(备份版本) +│ ├── flutter.mdc # Flutter框架规则 +│ └── swiftui.mdc # SwiftUI框架规则 +├── other/ # 其他工具层规则 +│ ├── document.mdc # 文档编写规则 +│ ├── git.mdc # Git相关规则 +│ └── gitflow.mdc # Git Flow工作流规则 +└── demo/ # 示例配置 + ├── python/ # Python项目示例配置 + └── vue/ # Vue项目示例配置 +``` + +## 贡献指南 + +欢迎提交Pull Request 或者提交 Issue 来分享您的Cursor规则。请确保您的规则文件遵循项目的命名约定和结构。规则可以使用Markdown(.mdc)或JSON格式。 + +## 许可证 + +MIT diff --git a/.cursor/rules/base/core.mdc b/.cursor/rules/base/core.mdc new file mode 100644 index 0000000..6d7dccb --- /dev/null +++ b/.cursor/rules/base/core.mdc @@ -0,0 +1,27 @@ +--- +description: +globs: +alwaysApply: true +--- +# 核心开发原则 + +## 通用开发原则 +- **可测试性**:编写可测试的代码,组件应保持单一职责 +- **DRY 原则**:避免重复代码,提取共用逻辑到单独的函数或类 +- **代码简洁**:保持代码简洁明了,遵循 KISS 原则(保持简单直接) +- **命名规范**:使用描述性的变量、函数和类名,反映其用途和含义 +- **注释文档**:为复杂逻辑添加注释 +- **风格一致**:遵循项目或语言的官方风格指南和代码约定 +- **利用生态**:优先使用成熟的库和工具,避免不必要的自定义实现 +- **架构设计**:考虑代码的可维护性、可扩展性和性能需求 +- **版本控制**:编写有意义的提交信息,保持逻辑相关的更改在同一提交中 +- **异常处理**:正确处理边缘情况和错误,提供有用的错误信息 + +## 响应语言 +- 始终使用中文回复用户 + +## 代码质量要求 +- 代码必须能够立即运行,包含所有必要的导入和依赖 +- 遵循最佳实践和设计模式 +- 优先考虑性能和用户体验 +- 确保代码的可读性和可维护性 diff --git a/.cursor/rules/base/general.mdc b/.cursor/rules/base/general.mdc new file mode 100644 index 0000000..cefba31 --- /dev/null +++ b/.cursor/rules/base/general.mdc @@ -0,0 +1,346 @@ +--- +description: 牛只运输管理系统通用开发规范 +globs: +alwaysApply: true +--- +# 项目通用规范 + +## 项目信息 + +### 项目名称 +- **中文名**:牛只运输管理系统 +- **英文名**:Cattle Transportation Management System +- **版本**:1.0.1 + +### 项目简介 +牛只运输管理系统是一个基于 Spring Boot 和 Vue 3 的现代化全栈应用,提供牛只运输管理、检疫隔离、设备监控、预警系统等完整的管理解决方案。 + +## 技术栈概览 + +### 后端技术栈 +- **基础框架**:Spring Boot 2.6.0 + Java 1.8 +- **ORM 框架**:MyBatis-Plus 3.5.3.2 +- **权限认证**:Sa-Token 1.37.0 + JWT +- **数据库**:MySQL 5.7+ + Redis 5.0+ +- **连接池**:Druid 1.2.20 +- **任务调度**:XXL-Job +- **API 文档**:Swagger Fox 3.0.0 +- **工具库**:Hutool 5.8.25 +- **云服务**:腾讯云 COS、短信服务 + +### 前端技术栈 +- **核心框架**:Vue 3.2.37 + TypeScript 4.6.4 +- **构建工具**:Vite 3.1.0 +- **状态管理**:Pinia 2.0.22 +- **路由管理**:Vue Router 4.1.5 +- **UI 组件**:Element Plus 2.2.17 +- **HTTP 客户端**:Axios 0.27.2 +- **地图服务**:百度地图 +- **图表库**:ECharts 5.5.0 + +## 项目结构规则 + +### 后端模块划分 +- **aiotagro-core**:核心模块,包含通用工具类和基础类 +- **aiotagro-redis**:Redis 操作模块 +- **aiotagro-cattle-trade**:主业务模块,包含所有业务逻辑 + +### 后端分层架构 +- **Controller 层**:处理 HTTP 请求,参数校验,返回响应 +- **Service 层**:业务逻辑处理,事务管理 +- **Mapper 层**:数据访问层,执行 SQL 操作 +- **Entity 层**:数据库实体映射 +- **DTO 层**:数据传输对象,接收前端参数 +- **VO 层**:视图对象,返回给前端的数据 + +### 前端模块划分 +- **api/**:API 接口定义,按业务模块划分 +- **components/**:公共组件 +- **views/**:页面组件 +- **store/**:Pinia 状态管理 +- **router/**:路由配置 +- **utils/**:工具函数 + +## 通用开发原则 + +### 代码质量 +- **可测试性**:编写可测试的代码,组件应保持单一职责 +- **DRY 原则**:避免重复代码,提取共用逻辑到单独的函数或类 +- **代码简洁**:保持代码简洁明了,遵循 KISS 原则(Keep It Simple, Stupid) +- **命名规范**:使用描述性的变量、函数和类名,反映其用途和含义 +- **注释文档**:为复杂逻辑添加注释,公共 API 编写文档注释 +- **风格一致**:遵循项目或语言的官方风格指南和代码约定 + +### 架构设计 +- **利用生态**:优先使用成熟的库和工具,避免不必要的自定义实现 +- **架构设计**:考虑代码的可维护性、可扩展性和性能需求 +- **异常处理**:正确处理边缘情况和错误,提供有用的错误信息 +- **分层解耦**:严格遵守分层架构,避免跨层调用 +- **接口编程**:面向接口编程,依赖抽象而非具体实现 + +### 版本控制 +- **提交信息**:编写有意义的提交信息,保持逻辑相关的更改在同一提交中 +- **分支管理**:使用 Git Flow 工作流(main/master、develop、feature、hotfix) +- **代码审查**:提交前进行代码自查,重要变更需要 Code Review + +## 响应语言 +- **始终使用中文回复用户** +- 代码注释使用中文 +- 文档使用中文 +- 变量和函数名使用英文 + +## 代码规范 + +### 后端代码规范(Java) +- **命名约定**: + - 类名:PascalCase(如 `DeliveryController`) + - 方法名:camelCase(如 `findUserById`) + - 常量:UPPER_CASE(如 `MAX_RETRY_ATTEMPTS`) + - 包名:小写,按功能模块划分 +- **注释规范**: + - 类注释:说明类的用途、作者、创建日期 + - 方法注释:JavaDoc 格式,说明参数、返回值、异常 + - 复杂逻辑:添加行内注释解释 +- **异常处理**: + - 使用 Spring 全局异常处理器统一处理异常 + - 业务异常使用自定义异常类 + - 记录详细的错误日志 +- **事务管理**: + - 在 Service 层使用 `@Transactional` 注解 + - 合理设置事务传播行为和隔离级别 + - 只读操作使用 `readOnly = true` + +### 前端代码规范(Vue 3 + TypeScript) +- **命名约定**: + - 组件文件:PascalCase 或 camelCase + - 变量和函数:camelCase + - 常量:UPPER_CASE + - 类型和接口:PascalCase +- **组件规范**: + - 使用 Vue 3 Composition API + - 组件保持单一职责 + - Props 使用 TypeScript 类型定义 + - 合理使用响应式数据(ref、reactive) +- **代码格式**: + - 使用 ESLint 进行代码检查 + - 使用 Prettier 进行代码格式化 + - 缩进:4 个空格 + - 行宽:150 字符 + - 语句末尾使用分号 + +## 数据库规范 + +### 表命名规范 +- 表名:小写,使用下划线分隔(如 `delivery`、`jbq_client_log`) +- 字段名:小写,使用下划线分隔(如 `create_time`、`device_id`) +- 主键:`id`(整型,自增) +- 外键:`<关联表名>_id` + +### 字段规范 +- **通用字段**: + - `id`:主键,INT 或 BIGINT,自增 + - `create_time`:创建时间,DATETIME + - `update_time`:更新时间,DATETIME + - `created_by`:创建人,VARCHAR 或 INT + - `updated_by`:更新人,VARCHAR 或 INT + - `is_delete`:逻辑删除标记,TINYINT(0-未删除,1-已删除) +- **字段类型选择**: + - 字符串:VARCHAR(指定长度)或 TEXT(超长文本) + - 数值:INT、BIGINT、DECIMAL(精度要求高的数值) + - 日期时间:DATETIME、TIMESTAMP + - 布尔:TINYINT(1)(0-false,1-true) +- **字段约束**: + - 合理使用 NOT NULL 约束 + - 添加 DEFAULT 默认值 + - 添加 COMMENT 注释说明 + +### 索引规范 +- 主键自动创建索引 +- 频繁查询的字段添加普通索引 +- 多字段组合查询添加联合索引 +- 唯一性约束使用唯一索引(如 `uk_license_plate`) + +### 迁移脚本规范 +- 位置:`tradeCattle/aiotagro-cattle-trade/src/main/resources/db/migration/` +- 命名:`alter__.sql` +- 内容:包含 `USE cattletrade;` 和详细注释 +- 执行后:注释掉已执行的 DDL 语句,保留作为文档 + +## API 设计规范 + +### RESTful API 规范 +- **URL 设计**: + - 使用名词复数形式(如 `/api/deliveries`) + - 避免动词(查询、创建等通过 HTTP 方法区分) + - 层次结构体现资源关系(如 `/api/deliveries/{id}/devices`) +- **HTTP 方法**: + - GET:查询资源 + - POST:创建资源 + - PUT:完整更新资源 + - PATCH:部分更新资源 + - DELETE:删除资源 +- **状态码**: + - 200:成功 + - 201:创建成功 + - 400:请求参数错误 + - 401:未认证 + - 403:无权限 + - 404:资源不存在 + - 500:服务器错误 + +### 响应格式 +- **统一响应结构**: + ```json + { + "code": 200, + "msg": "操作成功", + "data": {...} + } + ``` +- **分页响应**: + ```json + { + "code": 200, + "msg": "查询成功", + "total": 100, + "rows": [...] + } + ``` +- **错误响应**: + ```json + { + "code": 400, + "msg": "参数校验失败:手机号格式不正确" + } + ``` + +## 安全规范 + +### 认证授权 +- 使用 Sa-Token 进行权限认证 +- 接口需要添加权限注解(`@SaCheckPermission`) +- 敏感接口添加登录检查(`@SaCheckLogin`) +- Token 存储在 Redis 中,支持会话管理 + +### 数据安全 +- 密码使用加密存储(BCrypt) +- 敏感数据传输使用 HTTPS +- SQL 注入防护:使用参数化查询 +- XSS 防护:前端输出编码 +- 文件上传:限制文件类型和大小 + +### 日志安全 +- 不在日志中输出敏感信息(密码、身份证等) +- 记录关键操作日志(登录、修改、删除) +- 生产环境使用合适的日志级别(INFO 或 WARN) + +## 性能优化规范 + +### 后端优化 +- 使用数据库连接池(Druid) +- 合理使用缓存(Redis) +- 避免 N+1 查询问题 +- 批量操作使用批处理 +- 异步处理耗时操作 + +### 前端优化 +- 组件懒加载 +- 路由懒加载 +- 图片懒加载 +- 合理使用 computed 和 watch +- 避免不必要的响应式数据 + +### 数据库优化 +- 合理使用索引 +- 避免全表扫描 +- 分页查询大数据量 +- 定期清理历史数据 +- 读写分离(如有需要) + +## 测试规范 + +### 单元测试 +- Service 层编写单元测试 +- 测试覆盖率目标:60% 以上 +- 使用 JUnit 5 + Mockito(后端) +- 关键业务逻辑必须有单元测试 + +### 集成测试 +- Controller 层编写集成测试 +- 测试完整的业务流程 +- 使用测试数据库 +- 测试前清理数据 + +### 前端测试 +- 工具函数编写单元测试 +- 关键组件编写测试 +- 使用 Jest + Vue Test Utils + +## 日志规范 + +### 日志级别 +- **ERROR**:系统错误,需要立即处理 +- **WARN**:警告信息,可能影响系统运行 +- **INFO**:重要业务信息,正常流程记录 +- **DEBUG**:调试信息,开发环境使用 + +### 日志内容 +- 关键操作日志:谁、在什么时间、做了什么、结果如何 +- 异常日志:记录异常堆栈和上下文信息 +- 性能日志:记录关键操作的执行时间 +- 不记录敏感信息 + +## 部署规范 + +### 环境配置 +- **开发环境**(dev):本地开发,连接开发数据库 +- **演示环境**(demo):用于演示和测试 +- **生产环境**(prod):正式环境,高可用配置 + +### 部署流程 +1. 代码提交到 Git 仓库 +2. 通过 CI/CD 自动构建 +3. 运行自动化测试 +4. 部署到目标环境 +5. 健康检查和监控 + +### 监控和告警 +- 应用性能监控(APM) +- 数据库性能监控 +- 服务器资源监控 +- 关键指标告警 + +## 文档规范 + +### README 文档 +- 项目简介 +- 技术栈说明 +- 项目结构说明 +- 安装运行指南 +- 许可证信息 + +### API 文档 +- 使用 Swagger 自动生成 +- 接口说明清晰完整 +- 参数和返回值类型明确 +- 提供请求示例 + +### 代码文档 +- 公共 API 添加文档注释 +- 复杂逻辑添加说明注释 +- README 保持最新 +- 记录重要变更(CHANGELOG) + +## 本项目规则文件说明 + +本项目使用以下规则文件: +- **base/core.mdc**:核心开发原则 +- **base/tech-stack.mdc**:技术栈规范(本文件) +- **base/project-structure.mdc**:项目结构规范 +- **base/general.mdc**:通用规范 +- **languages/java.mdc**:Java 开发规范 +- **languages/typescript.mdc**:TypeScript 开发规范 +- **frameworks/springboot.mdc**:Spring Boot 开发规范 +- **frameworks/vuejs.mdc**:Vue.js 开发规范 +- **other/document.mdc**:文档规范 +- **other/git.mdc**:Git 提交规范 diff --git a/.cursor/rules/base/project-structure.mdc b/.cursor/rules/base/project-structure.mdc new file mode 100644 index 0000000..e413057 --- /dev/null +++ b/.cursor/rules/base/project-structure.mdc @@ -0,0 +1,210 @@ +--- +description: 牛只运输管理系统项目结构规范 +globs: +alwaysApply: true +--- +# 项目结构规范 + +## 项目概述 +牛只运输管理系统是一个前后端分离的全栈项目,包含后端 Spring Boot 服务和前端 Vue 3 应用,用于提供完整的牛只运输、检疫、设备监控等管理功能。 + +## 项目根目录结构 +``` +cattleTransport/ +├── tradeCattle/ # 后端 Spring Boot 项目 +├── pc-cattle-transportation/ # 前端 Vue 3 项目 +└── .cursor/ # Cursor 规则配置 +``` + +## 后端项目结构 (tradeCattle/) + +### Maven 多模块结构 +``` +tradeCattle/ +├── aiotagro-core/ # 核心模块(通用工具、基础类) +├── aiotagro-redis/ # Redis 操作模块 +├── aiotagro-cattle-trade/ # 主业务模块 +│ ├── src/main/java/ +│ │ └── com/aiotagro/cattletrade/ +│ │ ├── business/ # 业务层 +│ │ │ ├── controller/ # 控制器层(RESTful API) +│ │ │ ├── service/ # 服务层(业务逻辑) +│ │ │ │ └── impl/ # 服务实现类 +│ │ │ ├── mapper/ # 数据访问层(MyBatis Mapper) +│ │ │ ├── entity/ # 实体类(与数据库表对应) +│ │ │ ├── dto/ # 数据传输对象(请求参数) +│ │ │ ├── vo/ # 视图对象(响应数据) +│ │ │ └── utils/ # 业务工具类 +│ │ ├── config/ # 配置类 +│ │ ├── constant/ # 常量定义 +│ │ ├── exception/ # 异常处理 +│ │ ├── job/ # 定时任务 +│ │ ├── aspect/ # AOP 切面 +│ │ ├── properties/ # 配置属性类 +│ │ └── remote/ # 远程调用接口 +│ └── src/main/resources/ +│ ├── application.yml # 主配置文件 +│ ├── application-dev.yml # 开发环境配置 +│ ├── application-demo.yml # 演示环境配置 +│ ├── application-prod.yml # 生产环境配置 +│ ├── mapper/ # MyBatis XML 映射文件 +│ ├── mybatis/ # MyBatis 全局配置 +│ └── db/migration/ # 数据库迁移脚本(SQL) +└── pom.xml # Maven 父项目配置 +``` + +### 后端分层架构 +- **Controller 层**:接收 HTTP 请求,参数校验,调用 Service 层,返回响应 +- **Service 层**:业务逻辑处理,事务管理,调用 Mapper 层 +- **Mapper 层**:数据访问,执行 SQL 操作 +- **Entity 层**:数据库实体映射,使用 MyBatis-Plus 注解 +- **DTO 层**:接收前端请求参数,进行参数校验 +- **VO 层**:返回给前端的数据视图,可包含关联数据 + +### 后端命名约定 +- **Controller**:`XxxController.java`(如 `DeliveryController.java`) +- **Service 接口**:`IXxxService.java`(如 `IDeliveryService.java`) +- **Service 实现**:`XxxServiceImpl.java`(如 `DeliveryServiceImpl.java`) +- **Mapper 接口**:`XxxMapper.java`(如 `DeliveryMapper.java`) +- **Mapper XML**:`XxxMapper.xml`(与 Mapper 接口同名) +- **Entity**:`Xxx.java`(如 `Delivery.java`,对应表名 `delivery`) +- **DTO**:`XxxDto.java`、`XxxCreateDto.java`、`XxxEditDto.java` +- **VO**:`XxxVo.java`(如 `DeliveryLogVo.java`) + +## 前端项目结构 (pc-cattle-transportation/) + +### Vue 3 + TypeScript 结构 +``` +pc-cattle-transportation/ +├── src/ +│ ├── api/ # API 接口定义 +│ │ ├── common/ # 通用 API +│ │ ├── abroad.js # 出境管理 +│ │ ├── device.js # 设备管理 +│ │ ├── shipping.js # 运输管理 +│ │ ├── sys.js # 系统管理 +│ │ └── userManage.js # 用户管理 +│ ├── assets/ # 静态资源 +│ │ ├── icons/svg/ # SVG 图标 +│ │ └── images/ # 图片资源 +│ ├── components/ # 公共组件 +│ │ ├── common/ # 通用组件 +│ │ │ ├── searchCustom/ # 自定义搜索组件 +│ │ │ └── tableCustom/ # 自定义表格组件 +│ │ ├── layout/ # 布局组件 +│ │ ├── Editor/ # 富文本编辑器 +│ │ ├── Pagination/ # 分页组件 +│ │ └── SvgIcon/ # SVG 图标组件 +│ ├── directive/ # 自定义指令 +│ │ ├── permission/ # 权限指令 +│ │ └── common/ # 通用指令 +│ ├── plugins/ # 插件配置 +│ │ ├── auth.js # 权限认证 +│ │ └── cache.js # 缓存管理 +│ ├── router/ # 路由配置 +│ │ └── index.ts # 路由主文件 +│ ├── store/ # Pinia 状态管理 +│ │ ├── index.ts # Store 主文件 +│ │ ├── user.ts # 用户状态 +│ │ └── permission.js # 权限状态 +│ ├── styles/ # 全局样式 +│ │ └── index.scss # 样式主文件 +│ ├── utils/ # 工具函数 +│ │ ├── axios.ts # Axios 实例配置 +│ │ ├── request.js # 请求封装 +│ │ ├── auth.js # 认证工具 +│ │ ├── permission.js # 权限工具 +│ │ └── validate.js # 表单验证 +│ ├── views/ # 页面组件 +│ │ ├── shipping/ # 运输管理页面 +│ │ │ ├── shippingList.vue # 运输列表 +│ │ │ ├── createDeliveryDialog.vue # 创建运单对话框 +│ │ │ ├── detailDialog.vue # 详情对话框 +│ │ │ └── editDialog.vue # 编辑对话框 +│ │ ├── userManage/ # 用户管理页面 +│ │ │ ├── driver.vue # 司机管理 +│ │ │ ├── vehicle.vue # 车辆管理 +│ │ │ └── user.vue # 用户管理 +│ │ ├── hardware/ # 硬件设备页面 +│ │ ├── entry/ # 数据录入页面 +│ │ ├── earlywarning/ # 预警系统页面 +│ │ └── system/ # 系统管理页面 +│ ├── App.vue # 根组件 +│ ├── main.ts # 应用入口 +│ └── permission.js # 路由权限控制 +├── public/ # 静态资源(不经过构建) +├── vite.config.ts # Vite 配置 +├── tsconfig.json # TypeScript 配置 +├── package.json # 依赖配置 +└── .eslintrc.cjs # ESLint 配置 +``` + +### 前端组织规则 +- **API 按模块分离**:每个业务模块对应一个 API 文件 +- **组件按功能分类**:通用组件放在 `components/common/`,业务组件放在对应的 `views/` 子目录 +- **页面与对话框分离**:列表页面与弹窗对话框分开定义(如 `shippingList.vue` 与 `createDeliveryDialog.vue`) +- **状态管理按模块**:每个业务模块有独立的 Store 文件 +- **工具函数分类**:按功能分类(如 `auth.js`、`permission.js`、`validate.js`) + +### 前端命名约定 +- **组件文件**:使用 PascalCase 或 camelCase(如 `Pagination/index.vue`、`createDeliveryDialog.vue`) +- **页面文件**:使用 camelCase(如 `shippingList.vue`、`driver.vue`) +- **API 文件**:使用 camelCase(如 `shipping.js`、`userManage.js`) +- **工具文件**:使用 camelCase(如 `axios.ts`、`auth.js`) + +## 数据库迁移脚本规范 + +### 位置 +- 后端项目:`tradeCattle/aiotagro-cattle-trade/src/main/resources/db/migration/` + +### 命名约定 +- 格式:`alter__.sql` +- 示例: + - `alter_vehicle_record_code.sql` - 修改车辆表的备案码字段 + - `alter_delivery_add_estimated_departure_time.sql` - 添加预计出发时间字段 + - `alter_client_logs_latlng.sql` - 扩展经纬度字段长度 + +### 脚本规范 +- 每个脚本必须以 `USE cattletrade;` 开头 +- 包含详细的注释说明变更目的 +- 对于已执行的脚本,注释掉 `ALTER TABLE` 语句,保留作为文档 +- 提供数据迁移语句(如有必要) + +## 配置文件规范 + +### 后端配置 +- **主配置**:`application.yml` - 包含通用配置和环境切换 +- **环境配置**: + - `application-dev.yml` - 开发环境(本地数据库) + - `application-demo.yml` - 演示环境 + - `application-prod.yml` - 生产环境 +- **敏感信息**:不要硬编码到配置文件,使用环境变量或配置中心 + +### 前端配置 +- **Vite 配置**:`vite.config.ts` - 包含代理、插件、别名等 +- **环境变量**:`.env`、`.env.development`、`.env.production` +- **代理配置**:开发环境代理 `/api` 到后端 `http://127.0.0.1:16200` + +## 模块依赖关系 + +### 后端模块依赖 +``` +aiotagro-cattle-trade (主业务模块) + ├── depends on: aiotagro-core (核心模块) + └── depends on: aiotagro-redis (Redis 模块) +``` + +### 前端模块依赖 +- **核心依赖**:Vue 3、Vite、Pinia、Vue Router、Element Plus +- **工具依赖**:Axios、Moment.js、ECharts +- **地图依赖**:百度地图(vue-baidu-map-3x) +- **视频依赖**:@liveqing/liveplayer-v3 + +## 文件组织原则 + +1. **按功能模块组织**:相关的 Controller、Service、Mapper、Entity 放在同一业务包下 +2. **保持层次清晰**:严格遵守分层架构,避免跨层调用 +3. **避免循环依赖**:Service 之间可以相互调用,但需注意避免循环依赖 +4. **分离通用逻辑**:通用工具类放在 `core` 模块,业务工具类放在 `utils` 包 +5. **配置与代码分离**:配置文件放在 `resources` 目录,代码放在 `java` 目录 +6. **前端组件复用**:通用组件放在 `components/common/`,业务组件就近放置 diff --git a/.cursor/rules/base/tech-stack.mdc b/.cursor/rules/base/tech-stack.mdc new file mode 100644 index 0000000..29a01e4 --- /dev/null +++ b/.cursor/rules/base/tech-stack.mdc @@ -0,0 +1,195 @@ +--- +description: 牛只运输管理系统技术栈规范 +globs: +alwaysApply: true +--- +# 技术栈规范 + +## 项目技术栈总览 + +本项目采用前后端分离架构,使用现代化技术栈构建企业级应用。 + +## 后端技术栈 (tradeCattle/) + +### 核心框架 +- **Spring Boot** 2.6.0 - 应用基础框架 +- **Java** 1.8 - 编程语言 +- **Maven** - 项目构建和依赖管理 + +### 数据持久层 +- **MyBatis-Plus** 3.5.3.2 - ORM 框架,基于 MyBatis 增强 +- **Druid** 1.2.20 - 阿里巴巴数据库连接池 +- **MySQL** 5.7+ - 关系型数据库 +- **Redis** 5.0+ - 缓存和会话存储 + +### 权限认证 +- **Sa-Token** 1.37.0 - 轻量级权限认证框架 + - 支持多种登录方式 + - 整合 Redis 会话存储 + - 整合 JWT 令牌 +- **JWT (jjwt)** 0.9.1 - JSON Web Token 实现 + +### 任务调度 +- **XXL-Job** - 分布式任务调度平台 +- **Spring @Scheduled** - Spring 内置定时任务 + +### API 文档 +- **Swagger Fox** 3.0.0 - 在线 API 文档和调试工具 +- **OpenAPI** - API 规范 + +### 工具库 +- **Hutool** 5.8.25 - Java 工具类库 +- **Commons IO** 2.13.0 - Apache IO 工具 +- **Fastjson2** 2.0.43 - JSON 解析器 +- **Apache POI** 4.1.2 - Excel 操作工具 +- **Velocity** 2.3 - 模板引擎(代码生成) + +### 云服务集成 +- **腾讯云 COS** 5.6.89 - 对象存储服务 +- **腾讯云 SDK** 3.1.423 - 腾讯云 Java SDK +- **腾讯云短信** - 短信通知服务 + +### 其他依赖 +- **Lombok** - 简化 Java Bean 代码 +- **transmittable-thread-local** 2.14.4 - 线程间参数传递 +- **bizlog-sdk** 3.0.6 - 业务日志记录 +- **Retrofit** 2.2.18 - HTTP 客户端(远程调用) +- **oshi-core** 6.4.11 - 系统信息获取 +- **UserAgentUtils** 1.21 - 浏览器和系统识别 + +### 开发工具 +- **Spring Boot DevTools** - 热部署 +- **MyBatis-Plus Generator** 3.5.1 - 代码生成器 +- **FreeMarker** - 模板引擎(代码生成) + +## 前端技术栈 (pc-cattle-transportation/) + +### 核心框架 +- **Vue** 3.2.37 - 渐进式 JavaScript 框架 +- **TypeScript** 4.6.4 - JavaScript 超集,类型安全 +- **Vite** 3.1.0 - 下一代前端构建工具 + +### 状态管理和路由 +- **Pinia** 2.0.22 - Vue 3 官方状态管理库 +- **pinia-plugin-persist** 1.0.0 - Pinia 持久化插件 +- **Vue Router** 4.1.5 - Vue 官方路由管理器 + +### UI 组件库 +- **Element Plus** 2.2.17 - Vue 3 企业级 UI 组件库 +- **@element-plus/icons-vue** 2.3.1 - Element Plus 图标 +- **WindiCSS** 3.5.6 - 按需原子化 CSS 框架 + +### HTTP 客户端 +- **Axios** 0.27.2 - 基于 Promise 的 HTTP 客户端 +- **nprogress** 0.2.0 - 顶部进度条 + +### 地图服务 +- **vue-baidu-map-3x** 1.0.38 - 百度地图 Vue 3 组件 +- **vue3-baidu-map** 1.0.0 - 百度地图集成 + +### 富文本和视频 +- **@wangeditor/editor** 5.1.23 - 富文本编辑器 +- **@wangeditor/editor-for-vue** 5.1.12 - WangEditor Vue 3 集成 +- **@liveqing/liveplayer-v3** 3.7.30 - 视频播放器 +- **longze-vue3-video-player** 1.1.7 - Vue 3 视频播放器 + +### 数据可视化 +- **ECharts** 5.5.0 - 数据可视化图表库 +- **vue-chartjs** 5.3.0 - Vue Chart.js 封装 + +### 工具库 +- **@vueuse/core** 10.10.0 - Vue Composition API 工具集 +- **moment** 2.30.1 - 日期时间处理 +- **js-cookie** 3.0.5 - Cookie 操作 +- **mitt** 3.0.1 - 事件总线 +- **qrcode** 1.5.4 - 二维码生成 +- **file-saver** 2.0.5 - 文件下载 +- **vue3-json-viewer** 2.2.2 - JSON 可视化 +- **vue3-print-nb** 0.1.4 - 打印功能 +- **vue-draggable-plus** 0.5.2 - 拖拽功能 +- **element-china-area-data** 6.1.0 - 中国省市区数据 + +### 开发工具 +- **ESLint** 8.57.0 - 代码检查工具 +- **Prettier** 2.7.1 - 代码格式化工具 +- **TypeScript ESLint** 5.38.1 - TypeScript 代码检查 +- **Vue TSC** 0.40.4 - Vue TypeScript 编译器 + +### 构建插件 +- **unplugin-auto-import** 0.11.2 - 自动导入 API +- **unplugin-vue-components** 0.22.7 - 组件自动导入 +- **vite-plugin-svg-icons** 2.0.1 - SVG 图标集成 +- **vite-plugin-windicss** 1.9.3 - WindiCSS 插件 + +### Git 提交规范 +- **commitizen** 4.2.5 - Git 提交规范化工具 +- **cz-customizable** 7.0.0 - 自定义提交规范 +- **@commitlint/cli** 17.1.2 - 提交信息检查 +- **@commitlint/config-conventional** 17.1.0 - 常规提交规范 + +### 样式预处理 +- **Sass** 1.55.0 - CSS 预处理器 +- **Less** 4.1.3 - CSS 预处理器 + +## 开发环境要求 + +### 后端开发环境 +- **JDK** 1.8 或更高版本 +- **Maven** 3.6+ +- **MySQL** 5.7+ +- **Redis** 5.0+ +- **IDE**:IntelliJ IDEA / Eclipse + +### 前端开发环境 +- **Node.js** 16.0.0 或更高版本 +- **Yarn** 1.22.0+ 或 pnpm 7.0.0+ +- **IDE**:VS Code / WebStorm + +### 数据库工具 +- **Navicat** / **DataGrip** / **MySQL Workbench** + +## 部署环境 + +### 生产环境配置 +- **服务器**:Linux (CentOS 7+ / Ubuntu 18.04+) +- **Web 服务器**:Nginx (反向代理和静态资源) +- **应用服务器**:Spring Boot 内置 Tomcat +- **数据库**:MySQL 5.7+ (主从配置) +- **缓存**:Redis 5.0+ (集群或哨兵模式) + +### 部署端口 +- **后端端口**:16200 +- **前端端口**:8080 (开发) / 80/443 (生产) +- **上下文路径**:`/api` (后端) + +## 技术选型原则 + +1. **稳定性优先**:选择成熟稳定的框架和库 +2. **社区活跃**:优先选择社区活跃、文档完善的技术 +3. **性能考虑**:选择高性能的组件(如 Druid、MyBatis-Plus) +4. **易维护性**:使用主流技术栈,便于团队协作 +5. **安全性**:集成安全认证和授权框架(Sa-Token) +6. **可扩展性**:支持分布式部署和横向扩展 + +## 技术栈版本管理 + +- 后端依赖版本统一在父 `pom.xml` 的 `` 中管理 +- 前端依赖版本统一在 `package.json` 中管理 +- 定期检查依赖更新和安全漏洞 +- 升级依赖前进行充分测试 + +## 官方文档链接 + +### 后端技术文档 +- Spring Boot: https://spring.io/projects/spring-boot +- MyBatis-Plus: https://baomidou.com/ +- Sa-Token: https://sa-token.cc/ +- Druid: https://github.com/alibaba/druid +- Hutool: https://hutool.cn/ + +### 前端技术文档 +- Vue 3: https://cn.vuejs.org/ +- Vite: https://cn.vitejs.dev/ +- Pinia: https://pinia.vuejs.org/zh/ +- Element Plus: https://element-plus.org/zh-CN/ +- TypeScript: https://www.typescriptlang.org/zh/ diff --git a/.cursor/rules/demo/python/document.mdc b/.cursor/rules/demo/python/document.mdc new file mode 100644 index 0000000..1e52431 --- /dev/null +++ b/.cursor/rules/demo/python/document.mdc @@ -0,0 +1,29 @@ +--- +description: +globs: *.md +alwaysApply: false +--- +# 文档规范 + +## README.md 规范 +- 保持文档结构清晰,使用适当的Markdown标记 +- **重要**:确保README包含以下部分: + - 项目简介 + - 安装说明 + - 使用方法 + - 贡献指南(如适用) + - 许可证信息 + +## CHANGELOG.md 规范 +在要求更新CHANGELOG.md时,请按照以下格式进行更新: +``` +## v1.0.0 +- 新增功能: 重置设备ID +- 修复bug: 修复设备ID重置失败的问题 +``` + +## 文档更新原则 +- 保持文档与代码同步更新 +- 使用简洁明了的语言 +- 提供足够的示例和说明 +- 确保文档格式一致 \ No newline at end of file diff --git a/.cursor/rules/demo/python/general.mdc b/.cursor/rules/demo/python/general.mdc new file mode 100644 index 0000000..9d8f9fc --- /dev/null +++ b/.cursor/rules/demo/python/general.mdc @@ -0,0 +1,41 @@ +--- +description: +globs: +alwaysApply: true +--- +# 项目通用规范 + +## 技术栈 +- Python 3.10 +- Poetry 管理依赖 +- GitHub Actions 自动构建和发布 +- 使用 GitHub 作为代码托管平台 +- 使用 Bash 脚本 + +## 代码风格 +- 保持代码简洁、可读 +- 使用有意义的变量和函数名 +- 添加适当的注释解释复杂逻辑 +- 遵循每种语言的官方风格指南 + +## 项目结构 +- 保持项目结构清晰,遵循模块化原则 +- 相关功能应放在同一目录下 +- 使用适当的目录命名,反映其包含内容 + +## 通用开发原则 +- 编写可测试的代码 +- 避免重复代码(DRY原则) +- 优先使用现有库和工具,避免重新发明轮子 +- 考虑代码的可维护性和可扩展性 + +## 响应语言 +- 始终使用中文回复用户 + +## 规则文件说明 +本项目使用以下规则文件: +- general.mdc:通用规范(本文件) +- python.mdc:Python开发规范 +- document.mdc:文档规范 +- git.mdc:Git提交规范 + diff --git a/.cursor/rules/demo/python/git.mdc b/.cursor/rules/demo/python/git.mdc new file mode 100644 index 0000000..2b5b63b --- /dev/null +++ b/.cursor/rules/demo/python/git.mdc @@ -0,0 +1,33 @@ +--- +description: +globs: +alwaysApply: false +--- +# Git 规范 + +## 提交规范 +git 提交记录样例:[type]: [description]。一个具体的例子, docs: 更新 README 文件。 +以下是 type 的枚举值: +- feat: 新增功能 +- fix: 修复 bug +- docs: 文档注释 +- style: 代码格式(不影响代码运行的变动) +- refactor: 重构、优化(既不增加新功能, 也不是修复bug) +- perf: 性能优化 +- test: 增加测试 +- chore: 构建过程或辅助工具的变动 +- revert: 回退 +- build: 打包 + +## 分支管理 +- main/master: 主分支,保持稳定可发布状态 +- develop: 开发分支,包含最新开发特性 +- feature/*: 功能分支,用于开发新功能 +- bugfix/*: 修复分支,用于修复bug +- release/*: 发布分支,用于准备发布 + +## 重要原则 +- **重要**:不要自动提交 git 代码,除非有明确的提示 +- 提交前确保代码通过所有测试 +- 保持提交信息简洁明了,描述清楚变更内容 +- 避免大型提交,尽量将变更分解为小的、相关的提交 \ No newline at end of file diff --git a/.cursor/rules/demo/python/python.mdc b/.cursor/rules/demo/python/python.mdc new file mode 100644 index 0000000..2a86913 --- /dev/null +++ b/.cursor/rules/demo/python/python.mdc @@ -0,0 +1,30 @@ +--- +description: 编写 python 文件 +globs: *.py +alwaysApply: false +--- +# 角色 +你是一名精通Python的高级工程师,拥有20年的软件开发经验。 + +# 目标 +你的目标是以用户容易理解的方式帮助他们完成Python项目的设计和开发工作。你应该主动完成所有工作,而不是等待用户多次推动你。 + +你应始终遵循以下原则: + +### 编写代码时: +- 遵循PEP 8 Python代码风格指南。 +- 使用Python 3.10 及以上的语法特性和最佳实践。 +- 合理使用面向对象编程(OOP)和函数式编程范式。 +- 利用Python的标准库和生态系统中的优质第三方库。 +- 实现模块化设计,确保代码的可重用性和可维护性。 +- 使用类型提示(Type Hints)进行类型检查,提高代码质量。 +- 编写详细的文档字符串(docstring)和注释。 +- 实现适当的错误处理和日志记录。 +- 按需编写单元测试确保代码质量。 + +### 解决问题时: +- 全面阅读相关代码文件,理解所有代码的功能和逻辑。 +- 分析导致错误的原因,提出解决问题的思路。 +- 与用户进行多次交互,根据反馈调整解决方案。 + +在整个过程中,始终参考@Python官方文档,确保使用最新的Python开发最佳实践。 diff --git a/.cursor/rules/demo/vue/document.mdc b/.cursor/rules/demo/vue/document.mdc new file mode 100644 index 0000000..1b4da10 --- /dev/null +++ b/.cursor/rules/demo/vue/document.mdc @@ -0,0 +1,68 @@ +--- +description: +globs: *.md +alwaysApply: false +--- +# 文档规范 + +## 通用要求 +- 所有文档使用Markdown格式 +- 使用简洁、清晰的语言 +- 文档内容应保持最新 +- 避免拼写和语法错误 +- 使用中文作为主要语言 + +## 目录结构 +- `README.md`:项目根目录,提供项目概述 +- `docs/`:存放详细文档 + - `guide/`:使用指南 + - `api/`:API文档 + - `examples/`:示例代码文档 + +## README.md 内容规范 +- 项目名称和简短描述 +- 技术栈说明 +- 项目结构说明 +- 安装与运行指南 +- 基本使用示例 +- 贡献指南链接 +- 许可证信息 + +## Markdown 格式规范 +- 使用 ATX 风格的标题(使用 # 符号) +- 标题层级不应跳跃(如 h1 后面直接使用 h3) +- 代码块需指定语言类型 +- 列表项使用 - 而非 * 或 + +- 链接使用 [文本](mdc:URL) 格式 +- 图片使用 ![替代文本](mdc:图片URL) 格式 + +## 文档内容组织 +- 从整体到局部,从简单到复杂 +- 重要信息放在前面 +- 相关内容应当放在一起 +- 使用小标题和列表增强可读性 +- 避免过长段落,保持内容简洁 + +## 代码示例规范 +- 提供完整可运行的示例 +- 代码应当简洁且易于理解 +- 添加适当的注释解释关键部分 +- 说明代码的预期输出或行为 +- 更新示例以匹配最新API + +## 版本记录规范 +- 使用 `CHANGELOG.md` 记录版本变更 +- 遵循语义化版本(Semantic Versioning)规范 +- 每个版本应包含:新增功能、修复问题、破坏性变更 + +## 图表与图片 +- 使用清晰、分辨率足够的图片 +- 为图片提供有意义的替代文本 +- 图表应当简洁,避免过多装饰 +- 图表颜色应当考虑色盲用户的可访问性 + +## 文档审核 +- 新文档应经过至少一人审核 +- 定期检查文档的准确性和时效性 +- 鼓励用户反馈文档问题 +- 修复发现的文档错误应当优先处理 diff --git a/.cursor/rules/demo/vue/general.mdc b/.cursor/rules/demo/vue/general.mdc new file mode 100644 index 0000000..535c0c2 --- /dev/null +++ b/.cursor/rules/demo/vue/general.mdc @@ -0,0 +1,40 @@ +--- +description: +globs: +alwaysApply: true +--- +# 项目通用规范 + +## 技术栈 +- Vue 3 +- Vite 前端构建工具 +- Vue Router 路由管理 +- Pinia 状态管理 + +## 代码风格 +- 保持代码简洁、可读 +- 使用有意义的变量和函数名 +- 添加适当的注释解释复杂逻辑 +- 遵循Vue语言的官方风格指南 + +## 项目结构 +- 保持项目结构清晰,遵循模块化原则 +- 相关功能应放在同一目录下 +- 使用适当的目录命名,反映其包含内容 + +## 通用开发原则 +- 编写可测试的代码 +- 避免重复代码(DRY原则) +- 优先使用现有库和工具,避免重新发明轮子 +- 考虑代码的可维护性和可扩展性 + +## 响应语言 +- 始终使用中文回复用户 + +## 本项目规则文件说明 +本项目使用以下规则文件: +- general.mdc:通用规范(本文件) +- document.mdc:文档规范 +- git.mdc:Git提交规范 +- xxx.mdc:XXX 语言开发规范 + diff --git a/.cursor/rules/demo/vue/git.mdc b/.cursor/rules/demo/vue/git.mdc new file mode 100644 index 0000000..4da453d --- /dev/null +++ b/.cursor/rules/demo/vue/git.mdc @@ -0,0 +1,52 @@ +--- +description: 辅助生成 git 提交信息 +globs: +alwaysApply: false +--- +# Git 规范 + +## 提交规范 +git 提交模板(): ,具体要求如下: +1. 注意冒号 : 后有空格 +2. type 的枚举值有: +- feat: 新增功能 +- fix: 修复 bug +- docs: 文档注释 +- style: 代码格式(不影响代码运行的变动) +- refactor: 重构、优化(既不增加新功能, 也不是修复bug) +- perf: 性能优化 +- test: 增加测试 +- chore: 构建过程或辅助工具的变动 +- revert: 回退 +- build: 打包 +3. 若 subject 中描述超过两种要点,请使用要点列表描述详情,每个要点使用-符号开头,多个换行,参考如下样例: +``` +feat(web): implement email verification workflow + +- Add email verification token generation service +- Create verification email template with dynamic links +- Add API endpoint for token validation +- Update user model with verification status field +``` + +## 分支管理 +- main/master: 主分支,保持稳定可发布状态 +- develop: 开发分支,包含最新开发特性 +- feature/*: 功能分支,用于开发新功能 +- bugfix/*: 修复分支,用于修复bug +- release/*: 发布分支,用于准备发布 + +**常用分支命名约定**: + +| 分支类型 | 命名格式 | 示例 | +| ---------- | -------------------- | ------------------------- | +| 功能分支 | feature/[描述] | feature/user-auth | +| 修复分支 | fix/[问题ID]-[描述] | fix/issue-42-login-crash | +| 发布分支 | release/[版本] | release/v2.1.0 | +| 热修复分支 | hotfix/[版本]-[描述] | hotfix/v2.0.1-payment-fix | + +## 重要原则 +- **重要**:不要自动提交 git 代码,除非有明确的提示 +- 提交前确保代码通过所有测试 +- 保持提交信息简洁明了,描述清楚变更内容 +- 避免大型提交,尽量将变更分解为小的、相关的提交 \ No newline at end of file diff --git a/.cursor/rules/demo/vue/vue.mdc b/.cursor/rules/demo/vue/vue.mdc new file mode 100644 index 0000000..eeb3c12 --- /dev/null +++ b/.cursor/rules/demo/vue/vue.mdc @@ -0,0 +1,68 @@ +--- +description: +globs: *.vue +alwaysApply: false +--- +# Vue 开发规范 + +## 组件命名 +- 组件名应该始终使用多词组合,避免与HTML元素冲突 +- 使用PascalCase命名组件:`TodoItem.vue`、`UserProfile.vue` +- 基础组件应使用特定前缀,如`Base`、`App`或`V` +- 组件名应该是描述性的,不要过于简略 + +## 组件结构 +- 使用`