修改百度地图AK

This commit is contained in:
xuqiuyun
2025-11-04 09:38:19 +08:00
parent 4b6d14a6ec
commit eacb0453dd
52 changed files with 3865 additions and 65 deletions

View File

@@ -0,0 +1,27 @@
---
description:
globs:
alwaysApply: true
---
# 核心开发原则
## 通用开发原则
- **可测试性**:编写可测试的代码,组件应保持单一职责
- **DRY 原则**:避免重复代码,提取共用逻辑到单独的函数或类
- **代码简洁**:保持代码简洁明了,遵循 KISS 原则(保持简单直接)
- **命名规范**:使用描述性的变量、函数和类名,反映其用途和含义
- **注释文档**:为复杂逻辑添加注释
- **风格一致**:遵循项目或语言的官方风格指南和代码约定
- **利用生态**:优先使用成熟的库和工具,避免不必要的自定义实现
- **架构设计**:考虑代码的可维护性、可扩展性和性能需求
- **版本控制**:编写有意义的提交信息,保持逻辑相关的更改在同一提交中
- **异常处理**:正确处理边缘情况和错误,提供有用的错误信息
## 响应语言
- 始终使用中文回复用户
## 代码质量要求
- 代码必须能够立即运行,包含所有必要的导入和依赖
- 遵循最佳实践和设计模式
- 优先考虑性能和用户体验
- 确保代码的可读性和可维护性

View File

@@ -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`逻辑删除标记TINYINT0-未删除1-已删除)
- **字段类型选择**
- 字符串VARCHAR指定长度或 TEXT超长文本
- 数值INT、BIGINT、DECIMAL精度要求高的数值
- 日期时间DATETIME、TIMESTAMP
- 布尔TINYINT(1)0-false1-true
- **字段约束**
- 合理使用 NOT NULL 约束
- 添加 DEFAULT 默认值
- 添加 COMMENT 注释说明
### 索引规范
- 主键自动创建索引
- 频繁查询的字段添加普通索引
- 多字段组合查询添加联合索引
- 唯一性约束使用唯一索引(如 `uk_license_plate`
### 迁移脚本规范
- 位置:`tradeCattle/aiotagro-cattle-trade/src/main/resources/db/migration/`
- 命名:`alter_<table_name>_<description>.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 提交规范

View File

@@ -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_<table_name>_<description>.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/`,业务组件就近放置

View File

@@ -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` 的 `<properties>` 中管理
- 前端依赖版本统一在 `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/