# SmartAdmin **Repository Path**: gandong970411/smart-admin ## Basic Information - **Project Name**: SmartAdmin - **Description**: 一个神奇的项目正在开发中 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4464 - **Created**: 2025-10-16 - **Last Updated**: 2025-12-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目介绍 ## 🎯 项目概览 这是一个基于 **SmartAdmin 3.X** 的**后台管理系统**,由 **1024创新实验室** 提供的企业级快速开发平台构建。 ## 📚 技术栈 ### 后端技术 - **Java 17** + **SpringBoot 3.5.4** - **Sa-Token 1.44.0** (权限认证) - **MyBatis-Plus 3.5.12** (ORM框架) - **MySQL** + **Redis** (数据存储) - **Knife4j** (接口文档) - **p6spy** (SQL监控) ### 前端技术 - **Vue 3.4.27** + **TypeScript 5.6.3** - **Vite 5.2.12** (构建工具) - **Ant Design Vue 4.2.5** (UI组件库) - **Pinia 2.1.7** (状态管理) - **Vue Router 4.3.2** (路由管理) ## 🏗️ 项目结构 ### 后端结构 ``` admin-api/ ├── sa-admin/ # SpringBoot主项目(业务模块) │ └── module/ │ ├── business/ # 业务模块(商品、分类、OA等) │ ├── system/ # 系统模块(员工、部门、角色、菜单等) │ └── support/ # 支持模块(文件、缓存、配置等) └── sa-base/ # 通用基础jar包 └── module/support/ # 通用支撑功能 ``` ### 前端结构 ``` admin-web/ ├── api/ # API接口定义 ├── components/ # 公共组件 ├── constants/ # 枚举常量(核心特色) ├── layout/ # 布局组件 ├── router/ # 路由配置 ├── store/ # Pinia状态管理 └── views/ # 页面视图 ├── business/ # 业务页面 ├── system/ # 系统页面 └── support/ # 支撑页面 ``` ## ⭐ 核心设计理念 ### 1️⃣ **三层业务架构** - **business** - 具体业务逻辑(商品、分类、OA等) - **system** - 系统功能(员工、部门、角色、权限、菜单) - **support** - 支撑功能(文件、字典、配置、日志等基础功能) ### 2️⃣ **后端四层架构** ```java Controller → Service → Manager → DAO ↓ ↓ ↓ ↓ 接口层 业务逻辑 缓存/复杂业务 数据访问 ``` **Manager层的作用**: - 处理缓存逻辑(如 CategoryCacheManager) - 处理复杂的跨服务业务编排 - 提供可复用的业务组件 ### 3️⃣ **前端枚举常量管理(SmartEnum)** 这是 SmartAdmin 的**独创特色**: ```typescript // 统一管理所有枚举,避免魔法数字 const smartEnumPlugin = { getDescByValue(constantName, value), // 根据值获取描述 getValueDescList(constantName), // 获取所有枚举列表 getValueDesc(constantName) // 获取值-描述映射 } ``` ### 4️⃣ **响应统一封装** ```java public class ResponseDTO { private Integer code; // 返回码 private String level; // 级别(系统/用户) private String msg; // 消息 private Boolean ok; // 是否成功 private T data; // 数据 } ``` ## 🔐 核心功能亮点 ### 安全体系(满足三级等保) - ✅ 双因子登录(邮箱验证码) - ✅ 密码加密(国产SM加密 + BCrypt) - ✅ 登录失败锁定 - ✅ 密码复杂度要求 - ✅ 定期修改密码 - ✅ 数据脱敏 - ✅ 接口加解密 ### 权限体系(Sa-Token) - 基于角色的访问控制(RBAC) - 数据权限(DataScope) - 菜单权限 + 功能点权限 - 支持多设备登录控制 ### 系统功能 - 📊 **数据变更记录**:基于git diff的数据对比 - 📖 **在线帮助文档**:右侧抽屉式文档 - 💬 **意见反馈** + **版本更新记录** - 📁 **文件管理**:支持本地/云存储 - 🔄 **热加载**:smart-reload 系统钩子 - 📝 **操作日志** + **登录日志** - 💓 **心跳监控** - 🔢 **单号生成器** - 📋 **表格自定义列** ### OA办公模块 - 企业信息管理(发票、银行账户) - 通知公告(阅读记录、次数统计) - 企业员工管理 ### 支撑功能 - 数据字典管理 - 系统配置管理 - 定时任务(SmartJob) - 代码生成器 - 缓存管理(Redis/Caffeine) ## 🚀 main.js 加载逻辑(独特设计) SmartAdmin 对路由加载做了特殊优化: ```javascript 1. 判断是否有token 2. 如果有token: - 先请求用户信息和菜单 - 动态构建路由 - 再初始化Vue实例 3. 如果无token: - 直接初始化Vue实例(仅登录路由) ``` ## 📦 多环境配置 ### 后端(Maven Profile) - `dev` - 开发环境 ✅ (默认) - `test` - 测试环境 - `pre` - 预发布环境 - `prod` - 生产环境 ### 前端(Vite Mode) - `localhost` - 本地开发 - `dev` - 开发环境 - `test` - 测试环境 - `pre` - 预发布环境 - `production` - 生产环境 ## 🎨 布局模式 支持4种布局方式: - `side` - 左侧菜单(默认) - `side-expand` - 左侧展开菜单 - `top` - 顶部菜单 - `top-expand` - 顶部展开菜单 ## 📝 代码规范亮点 1. **独有的目录结构** - 业务/系统/支撑三层清晰分离 2. **错误码分级管理** - 系统级/用户级错误码 3. **公共配置文件** - sa-base.yaml 统一管理 4. **枚举常量维护** - 前端SmartEnum插件 5. **四层架构** - Controller/Service/Manager/DAO职责明确 ## 🔧 当前业务模块 ### Business模块 - **商品管理**(goods)- 支持导入导出 - **分类管理**(category)- 树形结构 + 缓存 - **OA系统**: - 企业管理(enterprise) - 银行账户(bank) - 发票管理(invoice) - 通知公告(notice) ## 📚 学习建议 1. **理解三层架构**:business/system/support 的设计思想 2. **掌握四层架构**:Manager层的作用和使用场景 3. **熟悉枚举管理**:SmartEnum的使用方式 4. **研究安全体系**:等保三级的实现细节 5. **学习缓存策略**:Manager层的缓存设计 6. **了解动态路由**:main.ts的路由加载逻辑 ## 🌐 官方资源 - 官网:https://smartadmin.1024lab.net - 文档:https://smartadmin.vip - Gitee:https://gitee.com/lab1024/smart-admin --- 这个项目是一个**高质量、企业级、开箱即用**的后台管理系统模板,特别适合快速开发**中大型企业应用**。它的设计理念、代码规范、安全体系都值得深入学习!