zant-admin 1.0.4 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/README.en.md +414 -25
  2. package/README.md +460 -285
  3. package/bin/cli.js +3 -3
  4. package/bin/generator.js +502 -502
  5. package/bin/prompts.js +158 -158
  6. package/bin/utils.js +133 -133
  7. package/package.json +2 -2
  8. package/public/logo.png +0 -0
  9. package/src/App.vue +16 -16
  10. package/src/api/methods/department.js +36 -0
  11. package/src/api/methods/employee.js +22 -0
  12. package/src/api/methods/logError.js +8 -8
  13. package/src/api/methods/logOperation.js +8 -8
  14. package/src/api/methods/login.js +6 -6
  15. package/src/api/methods/position.js +26 -0
  16. package/src/api/methods/quartz.js +36 -36
  17. package/src/api/methods/region.js +16 -16
  18. package/src/api/methods/sysAccount.js +29 -29
  19. package/src/api/methods/sysDict.js +29 -29
  20. package/src/api/methods/sysDictItem.js +26 -26
  21. package/src/api/methods/sysMenu.js +42 -42
  22. package/src/api/methods/sysRole.js +35 -35
  23. package/src/api/methods/sysUser.js +25 -25
  24. package/src/api/methods/system.js +15 -15
  25. package/src/api/request.js +225 -225
  26. package/src/assets/css/style.css +2 -2
  27. package/src/assets/css/zcui.css +1023 -1023
  28. package/src/assets/imgs/logo.png +0 -0
  29. package/src/assets/imgs/md/console.png +0 -0
  30. package/src/assets/imgs/md/login.png +0 -0
  31. package/src/assets/imgs/md/menu.png +0 -0
  32. package/src/assets/imgs/md/serviceMonitoring.png +0 -0
  33. package/src/assets/imgs/md/statistics.png +0 -0
  34. package/src/components/FormTable.vue +5 -19
  35. package/src/components/IconPicker.vue +351 -351
  36. package/src/components/MainPage.vue +838 -838
  37. package/src/components/details/logErrorDetails.vue +58 -58
  38. package/src/components/details/logOperationDetails.vue +76 -76
  39. package/src/components/edit/QuartzEdit.vue +221 -221
  40. package/src/components/edit/SysAccountEdit.vue +185 -185
  41. package/src/components/edit/SysDictEdit.vue +116 -116
  42. package/src/components/edit/SysDictItemEdit.vue +136 -136
  43. package/src/components/edit/SysRoleEdit.vue +111 -111
  44. package/src/components/edit/organizationalStructure/DepartmentEdit.vue +162 -0
  45. package/src/components/edit/organizationalStructure/EmployeeEdit.vue +295 -0
  46. package/src/components/edit/organizationalStructure/PositionEdit.vue +166 -0
  47. package/src/components/edit/sysMenuEdit.vue +2 -1
  48. package/src/config/index.js +74 -74
  49. package/src/directives/permission.js +49 -49
  50. package/src/main.js +37 -37
  51. package/src/router/index.js +4 -6
  52. package/src/stores/config.js +43 -43
  53. package/src/stores/dict.js +33 -33
  54. package/src/stores/menu.js +81 -81
  55. package/src/stores/user.js +21 -21
  56. package/src/utils/baseEcharts.js +661 -661
  57. package/src/utils/dictTemplate.js +26 -26
  58. package/src/utils/regionUtils.js +173 -173
  59. package/src/utils/useFormCRUD.js +59 -59
  60. package/src/views/baiscstatis/center.vue +474 -474
  61. package/src/views/baiscstatis/iframePage.vue +29 -29
  62. package/src/views/baiscstatis/notFound.vue +192 -192
  63. package/src/views/console.vue +821 -821
  64. package/src/views/demo/button.vue +269 -269
  65. package/src/views/demo/importexport.vue +119 -119
  66. package/src/views/demo/region.vue +322 -322
  67. package/src/views/demo/statistics.vue +214 -214
  68. package/src/views/home.vue +6 -6
  69. package/src/views/login.vue +264 -149
  70. package/src/views/operations/log/logError.vue +78 -78
  71. package/src/views/operations/log/logLogin.vue +66 -66
  72. package/src/views/operations/log/logOperation.vue +103 -103
  73. package/src/views/operations/log/logQuartz.vue +56 -56
  74. package/src/views/operations/quartz.vue +179 -179
  75. package/src/views/operations/serviceMonitoring.vue +134 -134
  76. package/src/views/organizationalStructure/department.vue +194 -0
  77. package/src/views/organizationalStructure/employee.vue +234 -0
  78. package/src/views/organizationalStructure/position.vue +196 -0
  79. package/src/views/system/sysAccount.vue +128 -128
  80. package/src/views/system/sysDict.vue +159 -159
  81. package/src/views/system/sysDictItem.vue +118 -118
  82. package/src/views/system/sysMenu.vue +225 -225
  83. package/src/views/system/sysRole.vue +207 -207
  84. package/src/assets/imgs/md/1.png +0 -0
  85. package/src/assets/imgs/md/10.png +0 -0
  86. package/src/assets/imgs/md/11.png +0 -0
  87. package/src/assets/imgs/md/2.png +0 -0
  88. package/src/assets/imgs/md/3.png +0 -0
  89. package/src/assets/imgs/md/4.png +0 -0
  90. package/src/assets/imgs/md/5.png +0 -0
  91. package/src/assets/imgs/md/6.png +0 -0
  92. package/src/assets/imgs/md/7.png +0 -0
  93. package/src/assets/imgs/md/8.png +0 -0
  94. package/src/assets/imgs/md/9.png +0 -0
package/README.md CHANGED
@@ -5,12 +5,13 @@
5
5
 
6
6
  <div align="center">
7
7
 
8
- ![ZAntAdmin](https://img.shields.io/badge/ZAntAdmin-管理平台-blue.svg)
9
- ![Vue](https://img.shields.io/badge/Vue-3.5-green.svg)
8
+ ![ZAntAdmin](https://img.shields.io/badge/ZAntAdmin-2.0.0-blue.svg)
9
+ ![Vue](https://img.shields.io/badge/Vue-3.5.13-green.svg)
10
+ ![Vite](https://img.shields.io/badge/Vite-7.0.6-646CFF.svg)
10
11
  ![Ant Design Vue](https://img.shields.io/badge/Ant%20Design%20Vue-4.2.6-red.svg)
11
12
  ![License](https://img.shields.io/badge/License-MIT-yellow.svg)
12
13
 
13
- [在线演示](http://106.13.37.129:8123) | [后端项目](https://gitee.com/zchty/zant-core)
14
+ [在线演示](http://106.13.37.129:8123) | [后端项目](https://gitee.com/zchty/zant-core) | [更新日志](./CHANGELOG.md)
14
15
 
15
16
  </div>
16
17
 
@@ -22,423 +23,597 @@
22
23
  - [快速开始](#快速开始)
23
24
  - [核心功能](#核心功能)
24
25
  - [项目特色](#项目特色)
26
+ - [API 接口](#api-接口)
27
+ - [浏览器支持](#浏览器支持)
25
28
  - [贡献指南](#贡献指南)
26
29
  - [许可证](#许可证)
27
30
 
28
31
  ## 项目简介
29
32
 
30
- ZAntAdmin 是一个基于 Vue 3.5 + Vite + Ant Design Vue 4.2.6 构建的现代化前端管理系统。该项目采用最新的前端技术栈,提供了完整的用户认证、权限管理、动态路由、数据可视化等功能,适用于企业级管理系统的开发。
31
-
32
-
33
- ### 效果预览
34
-
35
- <div>
36
- <img src="./src/assets/imgs/md/1.png" alt="登录页面" width="300" style="margin-right: 10px; margin-bottom: 10px; border: 1px solid #d9d9d9; border-radius: 4px;">
37
- <img src="./src/assets/imgs/md/2.png" alt="首页" width="300" style="margin-right: 10px; margin-bottom: 10px; border: 1px solid #d9d9d9; border-radius: 4px;">
38
- <img src="./src/assets/imgs/md/3.png" alt="服务监控" width="300" style="margin-bottom: 10px; border: 1px solid #d9d9d9; border-radius: 4px;">
39
- </div>
40
-
41
- <div>
42
- <img src="./src/assets/imgs/md/4.png" alt="统计图" width="300" style="margin-right: 10px; margin-bottom: 10px; border: 1px solid #d9d9d9; border-radius: 4px;">
43
- <img src="./src/assets/imgs/md/5.png" alt="菜单管理" width="300" style="margin-right: 10px; margin-bottom: 10px; border: 1px solid #d9d9d9; border-radius: 4px;">
44
- <img src="./src/assets/imgs/md/6.png" alt="页面6" width="300" style="margin-bottom: 10px; border: 1px solid #d9d9d9; border-radius: 4px;">
45
- </div>
46
-
47
- <div>
48
- <img src="./src/assets/imgs/md/7.png" alt="页面7" width="300" style="margin-right: 10px; margin-bottom: 10px; border: 1px solid #d9d9d9; border-radius: 4px;">
49
- <img src="./src/assets/imgs/md/8.png" alt="页面8" width="300" style="margin-right: 10px; margin-bottom: 10px; border: 1px solid #d9d9d9; border-radius: 4px;">
50
- <img src="./src/assets/imgs/md/9.png" alt="页面9" width="300" style="margin-bottom: 10px; border: 1px solid #d9d9d9; border-radius: 4px;">
51
- </div>
52
-
53
- <div>
54
- <img src="./src/assets/imgs/md/10.png" alt="页面10" width="300" style="margin-right: 10px; border: 1px solid #d9d9d9; border-radius: 4px;">
55
- <img src="./src/assets/imgs/md/11.png" alt="页面11" width="300" style="border: 1px solid #d9d9d9; border-radius: 4px;">
56
- </div>
57
-
58
-
33
+ ZAntAdmin 是一个基于 **Vue 3.5 + Vite + Ant Design Vue 4.2.6** 构建的现代化前端管理系统。该项目采用最新的前端技术栈,提供了完整的用户认证、权限管理、动态路由、数据可视化等功能,适用于企业级管理系统的快速开发。
34
+
35
+ ### ✨ 主要特性
36
+
37
+ - 🚀 **最新技术栈** - 基于 Vue 3.5、Vite 7、Ant Design Vue 4 等前沿技术
38
+ - 🔐 **完善的权限系统** - 基于 Token 的认证、动态路由、角色权限控制
39
+ - 📦 **丰富的组件库** - 封装了 FormTable、IconPicker 等通用业务组件
40
+ - 🎨 **现代化 UI** - 基于 Ant Design Vue 的企业级设计体系
41
+ - 📱 **响应式设计** - 适配桌面、平板等多种设备
42
+ - 🛠️ **CLI 脚手架** - 提供项目快速生成工具,支持多种模板选择
43
+ - 📊 **数据可视化** - 集成 ECharts 图表库,支持丰富的数据展示
44
+ - 🌍 **国际化支持** - 预留国际化接口,便于多语言扩展
45
+
46
+
47
+ ### 🖼️ 效果预览
48
+
49
+ <table>
50
+ <tr>
51
+ <td align="center">
52
+ <img src="./src/assets/imgs/md/login.png" alt="登录页面" width="280">
53
+ <br>登录页面
54
+ </td>
55
+ <td align="center">
56
+ <img src="./src/assets/imgs/md/console.png" alt="控制台" width="280">
57
+ <br>控制台
58
+ </td>
59
+ <td align="center">
60
+ <img src="./src/assets/imgs/md/serviceMonitoring.png" alt="服务监控" width="280">
61
+ <br>服务监控
62
+ </td>
63
+ </tr>
64
+ <tr>
65
+ <td align="center">
66
+ <img src="./src/assets/imgs/md/statistics.png" alt="统计图表" width="280">
67
+ <br>统计图表
68
+ </td>
69
+ <td align="center">
70
+ <img src="./src/assets/imgs/md/menu.png" alt="菜单管理" width="280">
71
+ <br>菜单管理
72
+ </td>
73
+ </tr>
74
+ </table>
59
75
 
60
76
  ## 技术架构
61
77
 
62
78
  ### 核心框架
63
- - **Vue 3**: 采用 Composition API 和 `<script setup>` 语法糖
64
- - **Vite**: 现代化前端构建工具,提供快速的开发体验
65
- - **Vue Router 4**: 路由管理,支持动态路由和路由守卫
66
- - **Pinia**: 状态管理,替代 Vuex,提供更简洁的 API
79
+
80
+ | 技术 | 版本 | 说明 |
81
+ |------|------|------|
82
+ | [Vue](https://vuejs.org/) | 3.5.13 | 渐进式 JavaScript 框架,采用 Composition API 和 `<script setup>` 语法糖 |
83
+ | [Vite](https://vitejs.dev/) | 7.0.6 | 下一代前端构建工具,提供极速的开发体验 |
84
+ | [Vue Router](https://router.vuejs.org/) | 4.4.5 | 官方路由管理器,支持动态路由和路由守卫 |
85
+ | [Pinia](https://pinia.vuejs.org/) | 2.2.6 | Vue 官方推荐的状态管理方案,替代 Vuex |
67
86
 
68
87
  ### UI 框架
69
- - **Ant Design Vue 4**: 企业级 UI 组件库
70
- - **@ant-design/icons-vue**: Ant Design 图标库
88
+
89
+ | 技术 | 版本 | 说明 |
90
+ |------|------|------|
91
+ | [Ant Design Vue](https://antdv.com/) | 4.2.6 | 企业级 UI 设计语言和组件库 |
92
+ | [@ant-design/icons-vue](https://github.com/ant-design/ant-design-icons) | 7.0.1 | Ant Design 官方图标库 |
71
93
 
72
94
  ### 工具库
73
- - **alova**: 请求库,提供更强大的请求管理能力
74
- - **dayjs**: 轻量级日期处理库
75
- - **echarts**: 数据可视化图表库
76
- - **file-saver**: 文件保存工具
77
- - **pinia-plugin-persist**: Pinia 持久化插件
95
+
96
+ | 技术 | 版本 | 说明 |
97
+ |------|------|------|
98
+ | [Alova](https://alova.js.org/) | 3.2.6 | 下一代请求工具,提供更强大的请求管理能力 |
99
+ | [Dayjs](https://day.js.org/) | 1.11.13 | 轻量级日期处理库,Moment.js 的替代方案 |
100
+ | [ECharts](https://echarts.apache.org/) | 6.0.0 | 开源可视化库,提供丰富的图表类型 |
101
+ | [file-saver](https://github.com/eligrey/FileSaver.js) | 2.0.5 | 文件保存工具,支持客户端文件下载 |
102
+ | [pinia-plugin-persist](https://github.com/Seb-L/pinia-plugin-persist) | 1.0.0 | Pinia 状态持久化插件 |
78
103
 
79
104
  ### 开发工具
80
- - **ESLint**: 代码质量检查
81
- - **Prettier**: 代码格式化
82
- - **vite-plugin-clean**: 构建时清理旧文件
105
+
106
+ | 工具 | 版本 | 说明 |
107
+ |------|------|------|
108
+ | [ESLint](https://eslint.org/) | 9.12.0 | 代码质量检查和规范 |
109
+ | [Prettier](https://prettier.io/) | 3.3.3 | 代码格式化工具 |
110
+ | [vite-plugin-clean](https://github.com/zjxxxxxxxxx/vite-plugin-clean) | 2.0.1 | 构建时清理旧文件插件 |
83
111
 
84
112
  ## 项目结构
85
113
 
86
114
  ```
87
- ZAntAdmin/
88
- ├── public/ # 静态资源
89
- ├── src/
90
- │ ├── api/ # API 接口
115
+ zant-admin/
116
+ ├── bin/ # CLI 脚手架工具
117
+ ├── cli.js # 命令行入口
118
+ │ ├── generator.js # 项目生成器
119
+ │ ├── prompts.js # 交互式提示
120
+ │ └── utils.js # 工具函数
121
+ ├── public/ # 静态资源(不经过构建处理)
122
+ │ └── logo.png # 项目 Logo
123
+ ├── src/ # 源代码目录
124
+ │ ├── api/ # API 接口层
91
125
  │ │ ├── methods/ # 各模块 API 方法
92
- │ │ └── request.js # 请求封装
126
+ │ │ │ ├── department.js # 部门管理接口
127
+ │ │ │ ├── employee.js # 员工管理接口
128
+ │ │ │ ├── login.js # 登录认证接口
129
+ │ │ │ ├── sysAccount.js # 账户管理接口
130
+ │ │ │ ├── sysDict.js # 字典管理接口
131
+ │ │ │ ├── sysMenu.js # 菜单管理接口
132
+ │ │ │ ├── sysRole.js # 角色管理接口
133
+ │ │ │ └── ... # 其他接口
134
+ │ │ └── request.js # 请求封装配置
93
135
  │ ├── assets/ # 静态资源
94
136
  │ │ ├── css/ # 样式文件
137
+ │ │ │ ├── style.css # 全局样式
138
+ │ │ │ └── zcui.css # 自定义 UI 样式
95
139
  │ │ └── imgs/ # 图片资源
96
140
  │ ├── components/ # 公共组件
97
141
  │ │ ├── details/ # 详情组件
98
142
  │ │ ├── edit/ # 编辑组件
99
- │ │ └── pages/ # 页面组件
143
+ │ │ │ ├── organizationalStructure/ # 组织架构编辑
144
+ │ │ │ ├── SysAccountEdit.vue # 账户编辑
145
+ │ │ │ ├── SysRoleEdit.vue # 角色编辑
146
+ │ │ │ └── ...
147
+ │ │ ├── FormTable.vue # 通用表格表单组件
148
+ │ │ ├── IconPicker.vue # 图标选择器组件
149
+ │ │ └── MainPage.vue # 主页面布局组件
100
150
  │ ├── config/ # 配置文件
101
151
  │ ├── directives/ # 自定义指令
152
+ │ │ └── permission.js # 权限指令 v-permission
102
153
  │ ├── router/ # 路由配置
103
- ├── stores/ # 状态管理
154
+ │ └── index.js # 路由入口配置
155
+ │ ├── stores/ # Pinia 状态管理
156
+ │ │ ├── config.js # 配置状态
157
+ │ │ ├── dict.js # 字典状态
158
+ │ │ ├── menu.js # 菜单状态
159
+ │ │ └── user.js # 用户状态
104
160
  │ ├── utils/ # 工具函数
161
+ │ │ ├── baseEcharts.js # ECharts 基础配置
162
+ │ │ ├── dictTemplate.js # 字典模板工具
163
+ │ │ ├── regionUtils.js # 区域工具函数
164
+ │ │ └── useFormCRUD.js # 表单 CRUD 封装
105
165
  │ ├── views/ # 页面视图
166
+ │ │ ├── baiscstatis/ # 基础统计页面
167
+ │ │ ├── demo/ # 示例页面
168
+ │ │ ├── operations/ # 运维管理
169
+ │ │ ├── organizationalStructure/ # 组织架构
170
+ │ │ ├── system/ # 系统管理
171
+ │ │ ├── console.vue # 控制台
172
+ │ │ ├── home.vue # 首页
173
+ │ │ └── login.vue # 登录页
106
174
  │ ├── App.vue # 根组件
107
175
  │ └── main.js # 入口文件
176
+ ├── templates/ # CLI 项目模板
108
177
  ├── .env.development # 开发环境变量
109
178
  ├── .env.production # 生产环境变量
110
179
  ├── .env.test # 测试环境变量
111
180
  ├── eslint.config.js # ESLint 配置
112
181
  ├── .prettierrc.json # Prettier 配置
113
- ├── index.html # HTML 模板
114
- ├── package.json # 项目依赖
115
- └── vite.config.js # Vite 配置
182
+ ├── vite.config.js # Vite 配置
183
+ └── package.json # 项目依赖
116
184
  ```
117
185
 
118
186
  ## 核心功能
119
187
 
120
- ### 1. 用户认证与权限管理
121
- - 基于 Token 的用户认证
122
- - 动态权限控制
123
- - 角色管理
124
- - 权限指令 (`v-permission`)
125
-
126
- ### 2. 动态路由系统
127
- - 基于后端菜单配置的动态路由加载
128
- - 路由守卫实现访问控制
129
- - 多级菜单支持
130
- - 路由缓存控制
131
-
132
- ### 3. 数据管理
133
- - 通用 CRUD 操作封装
134
- - 表单验证
135
- - 数据导入导出
136
- - 文件上传下载
137
-
138
- ### 4. 系统管理
139
- - 用户管理
140
- - 角色管理
141
- - 菜单管理
142
- - 字典管理
143
- - 系统监控
144
- - 日志管理
145
-
146
- ### 5. 数据可视化
147
- - 基于 ECharts 的图表展示
148
- - 统计分析页面
149
- - 数据仪表盘
188
+ ### 🔐 1. 用户认证与权限管理
150
189
 
151
- ## 快速开始
190
+ - **基于 Token 的认证** - JWT Token 实现无状态认证
191
+ - **动态权限控制** - 根据用户角色动态分配权限
192
+ - **角色管理** - 支持多角色配置和权限分配
193
+ - **权限指令** - 自定义 `v-permission` 指令控制按钮级权限
194
+ - **路由守卫** - 全局路由守卫实现访问控制
152
195
 
153
- ### 环境要求
154
- - Node.js >= 16.0.0 (推荐 LTS 版本)
155
- - npm >= 7.0.0
196
+ ### 🛣️ 2. 动态路由系统
156
197
 
157
- ### 方式一:使用脚手架(推荐)
198
+ - **后端配置路由** - 基于后端返回的菜单配置动态生成路由
199
+ - **路由懒加载** - 按需加载页面组件,优化首屏性能
200
+ - **多级菜单支持** - 支持无限层级菜单嵌套
201
+ - **路由缓存** - 支持页面缓存配置,提升切换性能
202
+ - **面包屑导航** - 自动生成面包屑导航
158
203
 
159
- ZAnt Admin 脚手架是一个基于 Vue 3 + Vite + Ant Design Vue 的前端管理系统快速生成工具。通过简单的命令行操作,您可以快速创建功能完整的管理系统项目。
204
+ ### 📊 3. 数据管理
160
205
 
161
- #### 安装脚手架
206
+ - **通用 CRUD 封装** - [useFormCRUD](src/utils/useFormCRUD.js) 工具函数简化增删改查
207
+ - **表单验证** - 基于 Ant Design Vue 的表单验证机制
208
+ - **数据导入导出** - 支持 Excel 文件导入导出
209
+ - **文件上传下载** - 封装文件上传下载功能
210
+ - **分页查询** - 统一分页查询处理
162
211
 
163
- ```bash
164
- # 全局安装脚手架
165
- npm install -g zant-admin
166
-
167
- # 或者使用 npx 直接运行
168
- npx zant-admin create my-project
169
- ```
170
-
171
- #### 创建新项目
172
-
173
- ##### 交互式创建(推荐)
174
- ```bash
175
- zant-admin create my-project --interactive
176
- ```
177
-
178
- 系统将引导您完成以下配置:
179
- - 项目描述
180
- - 作者名称
181
- - 项目模板选择
182
- - 功能特性选择
183
- - 是否跳过依赖安装
212
+ ### ⚙️ 4. 系统管理
184
213
 
185
- ##### 命令行参数创建
186
- ```bash
187
- # 基本创建
188
- zant-admin create my-project
189
-
190
- # 指定模板和描述
191
- zant-admin create my-project --template basic --description "基础管理系统"
214
+ | 模块 | 功能描述 |
215
+ |------|----------|
216
+ | **用户管理** | 用户增删改查、状态管理、密码重置 |
217
+ | **角色管理** | 角色配置、权限分配、角色关联用户 |
218
+ | **菜单管理** | 菜单配置、权限标识、路由配置 |
219
+ | **字典管理** | 数据字典维护、字典项管理 |
220
+ | **部门管理** | 组织架构管理、部门层级维护 |
221
+ | **职位管理** | 职位信息维护、职位关联员工 |
222
+ | **员工管理** | 员工信息管理、员工状态维护 |
223
+ | **系统监控** | 服务监控、在线用户、数据监控 |
224
+ | **日志管理** | 操作日志、登录日志、错误日志、定时任务日志 |
192
225
 
193
- # 跳过依赖安装
194
- zant-admin create my-project --skip-install
195
-
196
- # 禁用交互式模式
197
- zant-admin create my-project --no-interactive
198
- ```
226
+ ### 📈 5. 数据可视化
199
227
 
200
- #### 脚手架命令
228
+ - **ECharts 图表** - 集成 ECharts 6.x,支持多种图表类型
229
+ - **统计分析页面** - 提供数据统计和分析视图
230
+ - **数据仪表盘** - 可视化数据展示面板
231
+ - **实时监控** - 服务状态实时监控展示
201
232
 
202
- ##### create 命令
203
- 创建一个新的 ZAnt Admin 项目。
233
+ ## 快速开始
204
234
 
205
- **参数:**
206
- - `<project-name>`: 项目名称(必需)
235
+ ### 环境要求
207
236
 
208
- **选项:**
209
- - `-t, --template <template>`: 项目模板 (default: "default")
210
- - `-d, --description <description>`: 项目描述
211
- - `-a, --author <author>`: 作者名称
212
- - `--skip-install`: 跳过依赖安装
213
- - `--no-interactive`: 禁用交互式模式
237
+ 在开始之前,请确保您的环境满足以下要求:
214
238
 
215
- ##### list-templates 命令
216
- 显示可用的项目模板。
239
+ | 环境 | 版本要求 | 说明 |
240
+ |------|----------|------|
241
+ | Node.js | >= 16.0.0 | 推荐使用 LTS 版本 |
242
+ | npm | >= 7.0.0 | 或 yarn、pnpm |
243
+ | 浏览器 | 现代浏览器 | Chrome、Firefox、Edge、Safari 最新版 |
217
244
 
218
- ```bash
219
- zant-admin list-templates
220
- ```
245
+ ### 安装 CLI 脚手架(推荐)
221
246
 
222
- ##### 查看帮助
223
247
  ```bash
224
- zant-admin --help
225
- ```
248
+ # 全局安装脚手架
249
+ npm install -g zant-admin
226
250
 
227
- ### 方式二:手动安装
251
+ # 创建新项目
252
+ zant-admin create my-project
228
253
 
229
- #### 项目模板
254
+ # 进入项目目录
255
+ cd my-project
230
256
 
231
- ##### 默认模板 (default)
232
- - 包含完整的管理系统功能
233
- - 预设了常用的页面和组件
234
- - 推荐用于大多数项目
257
+ # 启动开发服务器
258
+ npm run dev
259
+ ```
235
260
 
236
- ##### 基础模板 (basic)
237
- - 仅包含核心功能
238
- - 适合需要高度自定义的项目
239
- - 包含登录、首页、控制台等基础页面
261
+ 更多脚手架使用说明请参考 [CLI 脚手架工具](#cli-脚手架工具) 章节。
240
262
 
241
- ##### 完整模板 (full)
242
- - 包含所有示例页面和高级功能
243
- - 适合学习和参考
244
- - 包含用户管理、权限管理等完整示例
263
+ ### CLI 脚手架工具
245
264
 
246
- #### 功能特性
265
+ ZAntAdmin 提供了功能强大的 CLI 脚手架工具,帮助您快速创建项目。
247
266
 
248
- 在交互式模式下,您可以选择以下功能特性:
267
+ #### 全局安装
249
268
 
250
- ##### 用户管理模块
251
- - 用户列表页面
252
- - 用户增删改查功能
253
- - 用户状态管理
269
+ ```bash
270
+ npm install -g zant-admin
271
+ ```
254
272
 
255
- ##### 权限管理模块
256
- - 角色管理
257
- - 权限配置
258
- - 访问控制
273
+ #### 可用命令
259
274
 
260
- ##### 数据可视化图表
261
- - ECharts 集成
262
- - 数据统计图表
263
- - 仪表盘展示
275
+ | 命令 | 说明 | 示例 |
276
+ |------|------|------|
277
+ | `create <project-name>` | 创建新项目 | `zant-admin create my-project` |
278
+ | `list-templates` | 查看可用模板 | `zant-admin list-templates` |
279
+ | `--help` | 查看帮助信息 | `zant-admin --help` |
280
+ | `--version` | 查看版本号 | `zant-admin --version` |
264
281
 
265
- ##### 文件上传功能
266
- - 图片上传
267
- - 文件管理
268
- - 上传进度显示
282
+ #### 创建项目选项
269
283
 
270
- ##### 国际化支持
271
- - 多语言切换
272
- - 中英文支持
273
- - 语言包管理
284
+ ```bash
285
+ zant-admin create <project-name> [options]
286
+
287
+ Options:
288
+ -t, --template <template> 选择项目模板 (default: "default")
289
+ -d, --description <desc> 项目描述
290
+ -a, --author <author> 作者名称
291
+ --skip-install 跳过依赖安装
292
+ --no-interactive 禁用交互式模式
293
+ ```
274
294
 
275
- #### 项目结构
295
+ #### 项目模板
276
296
 
277
- 生成的项目具有以下结构:
297
+ | 模板名称 | 说明 |
298
+ |----------|------|
299
+ | `default` | 默认模板,包含完整的管理系统功能 |
300
+ | `basic` | 基础模板,仅包含核心功能,适合高度自定义 |
301
+ | `full` | 完整模板,包含所有示例页面和高级功能 |
278
302
 
279
- ```
280
- my-project/
281
- ├── public/ # 静态资源
282
- ├── src/
283
- │ ├── api/ # 接口请求
284
- │ ├── assets/ # 静态资源
285
- │ ├── components/ # 公共组件
286
- │ ├── config/ # 配置文件
287
- │ ├── locales/ # 国际化文件(如果选择)
288
- │ ├── router/ # 路由配置
289
- │ ├── stores/ # 状态管理
290
- │ ├── utils/ # 工具函数
291
- │ ├── views/ # 页面视图
292
- │ ├── App.vue # 根组件
293
- │ └── main.js # 入口文件
294
- ├── package.json # 项目配置
295
- ├── vite.config.js # Vite 配置
296
- └── README.md # 项目说明
297
- ```
303
+ #### 交互式创建示例
298
304
 
299
- #### 安装依赖
300
305
  ```bash
301
- npm install
302
- ```
306
+ $ zant-admin create my-project --interactive
307
+
308
+ ? 请输入项目描述: 我的管理系统
309
+ ? 请输入作者名称: zc
310
+ ? 请选择项目模板: default
311
+ ? 请选择功能特性: (Press <space> to select)
312
+ ❯◉ 用户管理模块
313
+ ◉ 权限管理模块
314
+ ◉ 数据可视化图表
315
+ ◯ 文件上传功能
316
+ ◯ 国际化支持
317
+ ? 是否跳过依赖安装? (y/N) N
318
+
319
+ ✔ 项目创建成功!
320
+ ✔ 依赖安装完成!
303
321
 
304
- #### 启动开发服务器
305
- ```bash
322
+ cd my-project
306
323
  npm run dev
307
324
  ```
308
325
 
309
- #### 构建生产版本
310
- ```bash
311
- npm run build
312
- ```
326
+ ### 手动克隆项目
313
327
 
314
- #### 预览生产构建
315
328
  ```bash
316
- npm run preview
317
- ```
318
-
319
- # 代码检查与修复
320
- npm run lint
321
-
322
- # 代码格式化
323
- npm run format
329
+ # 克隆项目
330
+ git clone https://gitee.com/your-username/zant-admin.git
324
331
 
325
- ### 开发规范
332
+ # 进入项目目录
333
+ cd zant-admin
326
334
 
327
- #### 开发指南
328
-
329
- ##### 启动开发服务器
335
+ # 安装依赖
336
+ npm install
330
337
 
331
- ```bash
332
- cd my-project
333
- npm install # 如果跳过了依赖安装
338
+ # 启动开发服务器
334
339
  npm run dev
335
340
  ```
336
341
 
337
- ##### 构建生产版本
342
+ ### 常用命令
338
343
 
339
344
  ```bash
345
+ # 启动开发服务器(默认端口 8080)
346
+ npm run dev
347
+
348
+ # 构建生产版本(输出到 dist 目录)
340
349
  npm run build
341
- ```
342
350
 
343
- ##### 代码检查
351
+ # 预览生产构建
352
+ npm run preview
344
353
 
345
- ```bash
354
+ # 代码检查并自动修复
346
355
  npm run lint
347
- ```
348
-
349
- ##### 代码格式化
350
356
 
351
- ```bash
357
+ # 代码格式化
352
358
  npm run format
353
359
  ```
354
360
 
355
- #### 技术栈
356
-
357
- - **Vue 3**: 渐进式 JavaScript 框架
358
- - **Vite**: 下一代前端构建工具
359
- - **Ant Design Vue**: 企业级 UI 设计语言
360
- - **Pinia**: Vue 状态管理
361
- - **Vue Router**: Vue 官方路由
362
- - **ESLint + Prettier**: 代码规范和格式化
363
-
364
- #### 常见问题
365
-
366
- ##### Q: 创建项目时出现权限错误?
367
- A: 请确保您有足够的权限在目标目录创建文件。
361
+ ### 环境配置
368
362
 
369
- ##### Q: 依赖安装失败?
370
- A: 可以尝试使用 `--skip-install` 跳过安装,然后手动运行 `npm install`。
363
+ 项目支持多环境配置,通过 `.env` 文件管理不同环境的变量:
371
364
 
372
- ##### Q: 如何自定义模板?
373
- A: 您可以修改 `templates/` 目录下的模板文件来自定义生成内容。
365
+ | 文件 | 说明 |
366
+ |------|------|
367
+ | `.env.development` | 开发环境配置 |
368
+ | `.env.test` | 测试环境配置 |
369
+ | `.env.production` | 生产环境配置 |
374
370
 
375
- ##### Q: 支持 TypeScript 吗?
376
- A: 当前版本主要支持 JavaScript,TypeScript 支持将在后续版本中添加。
371
+ ### 开发规范
377
372
 
378
373
  #### Vue 组件规范
374
+
379
375
  1. 使用 Composition API (`<script setup>`) 语法糖
380
376
  2. 组件命名使用 PascalCase (大驼峰命名法)
381
377
  3. 组件文件扩展名统一使用 `.vue`
382
378
  4. 使用 `scoped` 样式避免全局污染
383
379
 
384
380
  #### JavaScript 规范
381
+
385
382
  1. 使用 ES6+ 语法
386
383
  2. 使用 `import/export` 模块化导入导出
387
384
  3. 变量声明优先使用 `const`,其次使用 `let`,避免使用 `var`
388
385
  4. 使用箭头函数简化代码
389
386
 
390
387
  #### CSS 规范
388
+
391
389
  1. CSS 类名使用 kebab-case (短横线命名法)
392
390
  2. 组件样式使用 `scoped` 避免全局污染
393
391
 
394
392
  #### 代码提交规范
395
- 1. 遵循 conventional commit 规范
393
+
394
+ 1. 遵循 [Conventional Commits](https://www.conventionalcommits.org/) 规范
396
395
  2. 提交前确保通过 ESLint 检查
397
396
 
397
+ ```bash
398
+ # 示例
399
+ feat: 添加用户管理功能
400
+ fix: 修复登录页面样式问题
401
+ docs: 更新 README 文档
402
+ style: 格式化代码
403
+ refactor: 重构权限控制逻辑
404
+ ```
405
+
398
406
  ## 项目特色
399
407
 
400
- ### 1. 模块化设计
401
- 项目采用高度模块化的设计,各功能模块相互独立,便于维护和扩展。
408
+ ### 🧩 1. 模块化设计
409
+
410
+ 项目采用高度模块化的设计,各功能模块相互独立,便于维护和扩展:
411
+ - 清晰的目录结构,职责分离
412
+ - 组件化开发,提高复用性
413
+ - 模块间低耦合,易于扩展
414
+
415
+ ### 🧰 2. 通用组件封装
416
+
417
+ 提供了丰富的通用业务组件,提高开发效率:
418
+
419
+ | 组件 | 路径 | 说明 |
420
+ |------|------|------|
421
+ | **FormTable** | [src/components/FormTable.vue](src/components/FormTable.vue) | 通用表格表单组件,支持搜索、分页、操作 |
422
+ | **IconPicker** | [src/components/IconPicker.vue](src/components/IconPicker.vue) | 图标选择器组件,集成 Ant Design 图标 |
423
+ | **MainPage** | [src/components/MainPage.vue](src/components/MainPage.vue) | 主页面布局组件,统一页面结构 |
424
+ | **DepartmentEdit** | [src/components/edit/...](src/components/edit/organizationalStructure/DepartmentEdit.vue) | 部门编辑弹窗组件 |
425
+ | **SysRoleEdit** | [src/components/edit/...](src/components/edit/SysRoleEdit.vue) | 角色编辑弹窗组件 |
426
+
427
+ ### 🛠️ 3. 工具函数库
428
+
429
+ 封装了常用的工具函数,简化业务逻辑开发:
430
+
431
+ | 工具 | 路径 | 说明 |
432
+ |------|------|------|
433
+ | **useFormCRUD** | [src/utils/useFormCRUD.js](src/utils/useFormCRUD.js) | 表单增删改查操作封装 |
434
+ | **regionUtils** | [src/utils/regionUtils.js](src/utils/regionUtils.js) | 省市区数据工具函数 |
435
+ | **dictTemplate** | [src/utils/dictTemplate.js](src/utils/dictTemplate.js) | 字典数据模板工具 |
436
+ | **baseEcharts** | [src/utils/baseEcharts.js](src/utils/baseEcharts.js) | ECharts 基础配置 |
437
+
438
+ ### 📱 4. 响应式设计
439
+
440
+ 基于 Ant Design Vue 的响应式设计,适配不同屏幕尺寸的设备:
441
+ - 自适应布局,支持桌面、平板、手机
442
+ - 侧边栏可折叠,优化小屏体验
443
+ - 表格、表单的响应式适配
444
+
445
+ ### 🌍 5. 国际化支持
446
+
447
+ 预留了国际化接口,便于后续多语言扩展:
448
+ - 基于 Vue I18n 的国际化方案
449
+ - 语言包结构清晰,易于维护
450
+ - 支持动态切换语言
451
+
452
+ ### 🚀 6. 性能优化
453
+
454
+ - **路由懒加载** - 按需加载页面组件
455
+ - **组件按需引入** - 减少打包体积
456
+ - **Pinia 持久化** - 状态数据本地存储
457
+ - **Vite 构建优化** - 快速的开发和构建体验
458
+
459
+ ## API 接口
460
+
461
+ 项目采用模块化方式组织 API 接口,位于 `src/api/methods/` 目录下:
462
+
463
+ ### 接口模块
464
+
465
+ | 模块 | 文件 | 说明 |
466
+ |------|------|------|
467
+ | **登录认证** | `login.js` | 登录、登出、获取用户信息 |
468
+ | **账户管理** | `sysAccount.js` | 账户增删改查、密码管理 |
469
+ | **角色管理** | `sysRole.js` | 角色增删改查、权限分配 |
470
+ | **菜单管理** | `sysMenu.js` | 菜单增删改查、路由配置 |
471
+ | **字典管理** | `sysDict.js` / `sysDictItem.js` | 字典类型和字典项管理 |
472
+ | **部门管理** | `department.js` | 部门组织架构管理 |
473
+ | **职位管理** | `position.js` | 职位信息管理 |
474
+ | **员工管理** | `employee.js` | 员工信息管理 |
475
+ | **日志管理** | `logOperation.js` / `logError.js` / `logLogin.js` | 操作日志、错误日志、登录日志 |
476
+ | **定时任务** | `quartz.js` | 定时任务管理 |
477
+ | **区域数据** | `region.js` | 省市区数据获取 |
402
478
 
403
- ### 2. 通用组件封装
404
- 提供了丰富的通用组件,如表单表格、图标选择器等,提高开发效率。
479
+ ### 请求封装
405
480
 
406
- ### 3. 工具函数库
407
- 封装了常用的工具函数,如区域工具、表单 CRUD 操作等,简化业务逻辑开发。
481
+ 请求核心配置位于 [src/api/request.js](src/api/request.js),基于 Alova 实现:
408
482
 
409
- ### 4. 响应式设计
410
- 基于 Ant Design Vue 的响应式设计,适配不同屏幕尺寸的设备。
483
+ ```javascript
484
+ // 示例:使用封装好的请求方法
485
+ import { getUserList, addUser, updateUser, deleteUser } from '@/api/methods/sysUser.js'
411
486
 
412
- ### 5. 国际化支持
413
- 预留了国际化接口,便于后续多语言扩展。
487
+ // 获取用户列表
488
+ const { data } = await getUserList({ page: 1, size: 10 })
489
+
490
+ // 添加用户
491
+ await addUser({ username: 'admin', nickname: '管理员' })
492
+ ```
493
+
494
+ ## 浏览器支持
495
+
496
+ | 浏览器 | 版本要求 |
497
+ |--------|----------|
498
+ | Chrome | >= 80 |
499
+ | Firefox | >= 75 |
500
+ | Safari | >= 13 |
501
+ | Edge | >= 80 |
502
+
503
+ > 不支持 IE 浏览器
414
504
 
415
505
  ## 部署说明
416
506
 
417
- ### 环境配置
418
- 项目支持多环境配置,通过 `.env` 文件管理不同环境的变量:
419
- - `.env.development`: 开发环境
420
- - `.env.test`: 测试环境
421
- - `.env.production`: 生产环境
507
+ ### 构建生产版本
508
+
509
+ ```bash
510
+ # 执行构建命令
511
+ npm run build
512
+
513
+ # 构建输出位于 dist/ 目录
514
+ ```
515
+
516
+ ### 部署方式
517
+
518
+ #### 方式一:静态服务器部署
519
+
520
+ 将 `dist` 目录下的文件部署到任意静态 Web 服务器:
521
+
522
+ ```bash
523
+ # 使用 nginx 示例
524
+ server {
525
+ listen 80;
526
+ server_name your-domain.com;
527
+ root /path/to/dist;
528
+ index index.html;
529
+
530
+ location / {
531
+ try_files $uri $uri/ /index.html;
532
+ }
533
+
534
+ location /api {
535
+ proxy_pass http://your-backend-server;
536
+ }
537
+ }
538
+ ```
422
539
 
423
- ### 构建部署
424
- 1. 执行构建命令:`npm run build`
425
- 2. 将 `dist` 目录下的文件部署到 Web 服务器
426
- 3. 配置服务器支持 SPA 路由模式
540
+ #### 方式二:Docker 部署
541
+
542
+ ```dockerfile
543
+ FROM nginx:alpine
544
+ COPY dist/ /usr/share/nginx/html/
545
+ COPY nginx.conf /etc/nginx/conf.d/default.conf
546
+ EXPOSE 80
547
+ ```
548
+
549
+ ### 环境变量配置
550
+
551
+ | 变量名 | 说明 | 默认值 |
552
+ |--------|------|--------|
553
+ | `VITE_APP_BASE_API` | API 基础路径 | `/api` |
554
+ | `VITE_APP_TITLE` | 应用标题 | `ZAntAdmin` |
555
+ | `VITE_APP_PORT` | 开发服务器端口 | `8080` |
427
556
 
428
557
 
429
558
  ## 贡献指南
430
559
 
431
- 1. 提出问题或建议
432
- - 提交 Issue 描述问题或建议
433
- - 提供相关的代码片段或截图
560
+ 欢迎提交 Issue 和 Pull Request 来帮助改进这个项目!
561
+
562
+ ### 提交 Issue
563
+
564
+ - 描述清楚问题的复现步骤
565
+ - 提供相关的代码片段或错误截图
566
+ - 标注使用的版本号和环境信息
567
+
568
+ ### 提交 Pull Request
569
+
570
+ 1. Fork 本项目到您的仓库
571
+ 2. 创建特性分支:`git checkout -b feature/AmazingFeature`
572
+ 3. 提交更改:`git commit -m 'feat: Add some AmazingFeature'`
573
+ 4. 推送到分支:`git push origin feature/AmazingFeature`
574
+ 5. 提交 Pull Request 到主仓库
575
+
576
+ ### 开发注意事项
434
577
 
435
- 2. 参与开发
436
- - Fork 本项目
437
- - 创建特性分支 (`git checkout -b feature/AmazingFeature`)
438
- - 提交更改 (`git commit -m 'Add some AmazingFeature'`)
439
- - 推送到分支 (`git push origin feature/AmazingFeature`)
440
- - 提交 Pull Request
578
+ - 确保代码通过 ESLint 检查:`npm run lint`
579
+ - 保持代码风格一致
580
+ - 提交信息遵循 Conventional Commits 规范
581
+ - 更新相关文档(如有必要)
441
582
 
442
583
  ## 许可证
443
584
 
444
- 本项目采用 MIT 许可证,详情请参阅 LICENSE 文件。
585
+ 本项目采用 [MIT](LICENSE) 许可证开源。
586
+
587
+ ```
588
+ MIT License
589
+
590
+ Copyright (c) 2024 zc
591
+
592
+ Permission is hereby granted, free of charge, to any person obtaining a copy
593
+ of this software and associated documentation files (the "Software"), to deal
594
+ in the Software without restriction, including without limitation the rights
595
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
596
+ copies of the Software, and to permit persons to whom the Software is
597
+ furnished to do so, subject to the following conditions:
598
+
599
+ The above copyright notice and this permission notice shall be included in all
600
+ copies or substantial portions of the Software.
601
+
602
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
603
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
604
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
605
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
606
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
607
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
608
+ SOFTWARE.
609
+ ```
610
+
611
+ ---
612
+
613
+ <div align="center">
614
+
615
+ **如果觉得这个项目对您有帮助,请给个 Star ⭐**
616
+
617
+ [返回顶部](#目录)
618
+
619
+ </div>