zant-admin 1.0.0
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.
- package/README.en.md +36 -0
- package/README.md +248 -0
- package/SCAFFOLD_README.md +215 -0
- package/bin/cli.js +99 -0
- package/bin/generator.js +503 -0
- package/bin/prompts.js +159 -0
- package/bin/utils.js +134 -0
- package/package.json +74 -0
- package/public/logo.png +0 -0
- package/src/App.vue +16 -0
- package/src/api/methods/logError.js +8 -0
- package/src/api/methods/logOperation.js +8 -0
- package/src/api/methods/login.js +6 -0
- package/src/api/methods/quartz.js +36 -0
- package/src/api/methods/region.js +16 -0
- package/src/api/methods/sysAccount.js +30 -0
- package/src/api/methods/sysDict.js +29 -0
- package/src/api/methods/sysDictItem.js +26 -0
- package/src/api/methods/sysMenu.js +42 -0
- package/src/api/methods/sysRole.js +35 -0
- package/src/api/methods/sysUser.js +25 -0
- package/src/api/methods/system.js +16 -0
- package/src/api/request.js +225 -0
- package/src/assets/css/style.css +70 -0
- package/src/assets/css/zcui.css +340 -0
- package/src/assets/imgs/loginbackground.svg +69 -0
- package/src/assets/imgs/logo.png +0 -0
- package/src/assets/imgs/md/1.png +0 -0
- package/src/assets/imgs/md/10.png +0 -0
- package/src/assets/imgs/md/11.png +0 -0
- package/src/assets/imgs/md/2.png +0 -0
- package/src/assets/imgs/md/3.png +0 -0
- package/src/assets/imgs/md/4.png +0 -0
- package/src/assets/imgs/md/5.png +0 -0
- package/src/assets/imgs/md/6.png +0 -0
- package/src/assets/imgs/md/7.png +0 -0
- package/src/assets/imgs/md/8.png +0 -0
- package/src/assets/imgs/md/9.png +0 -0
- package/src/components/FormTable.vue +875 -0
- package/src/components/IconPicker.vue +344 -0
- package/src/components/MainPage.vue +957 -0
- package/src/components/details/logErrorDetails.vue +58 -0
- package/src/components/details/logOperationDetails.vue +76 -0
- package/src/components/edit/QuartzEdit.vue +221 -0
- package/src/components/edit/SysAccountEdit.vue +178 -0
- package/src/components/edit/SysDictEdit.vue +114 -0
- package/src/components/edit/SysDictItemEdit.vue +134 -0
- package/src/components/edit/SysRoleEdit.vue +109 -0
- package/src/components/edit/sysMenuEdit.vue +305 -0
- package/src/config/index.js +74 -0
- package/src/directives/permission.js +45 -0
- package/src/main.js +38 -0
- package/src/router/index.js +270 -0
- package/src/stores/config.js +37 -0
- package/src/stores/dict.js +33 -0
- package/src/stores/menu.js +57 -0
- package/src/stores/user.js +21 -0
- package/src/utils/baseEcharts.js +661 -0
- package/src/utils/dictTemplate.js +26 -0
- package/src/utils/regionUtils.js +169 -0
- package/src/utils/useFormCRUD.js +60 -0
- package/src/views/baiscstatis/center.vue +463 -0
- package/src/views/baiscstatis/iframePage.vue +31 -0
- package/src/views/baiscstatis/notFound.vue +192 -0
- package/src/views/console.vue +771 -0
- package/src/views/demo/importexport.vue +123 -0
- package/src/views/demo/region.vue +240 -0
- package/src/views/demo/statistics.vue +195 -0
- package/src/views/home.vue +7 -0
- package/src/views/login.vue +272 -0
- package/src/views/operations/log/logError.vue +78 -0
- package/src/views/operations/log/logLogin.vue +66 -0
- package/src/views/operations/log/logOperation.vue +103 -0
- package/src/views/operations/log/logQuartz.vue +57 -0
- package/src/views/operations/quartz.vue +181 -0
- package/src/views/operations/serviceMonitoring.vue +134 -0
- package/src/views/system/sysAccount.vue +123 -0
- package/src/views/system/sysDict.vue +156 -0
- package/src/views/system/sysDictItem.vue +118 -0
- package/src/views/system/sysMenu.vue +223 -0
- package/src/views/system/sysRole.vue +184 -0
- package/templates/env.production +2 -0
package/README.en.md
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# zc-ant-vue
|
|
2
|
+
|
|
3
|
+
#### Description
|
|
4
|
+
{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**}
|
|
5
|
+
|
|
6
|
+
#### Software Architecture
|
|
7
|
+
Software architecture description
|
|
8
|
+
|
|
9
|
+
#### Installation
|
|
10
|
+
|
|
11
|
+
1. xxxx
|
|
12
|
+
2. xxxx
|
|
13
|
+
3. xxxx
|
|
14
|
+
|
|
15
|
+
#### Instructions
|
|
16
|
+
|
|
17
|
+
1. xxxx
|
|
18
|
+
2. xxxx
|
|
19
|
+
3. xxxx
|
|
20
|
+
|
|
21
|
+
#### Contribution
|
|
22
|
+
|
|
23
|
+
1. Fork the repository
|
|
24
|
+
2. Create Feat_xxx branch
|
|
25
|
+
3. Commit your code
|
|
26
|
+
4. Create Pull Request
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
#### Gitee Feature
|
|
30
|
+
|
|
31
|
+
1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
|
|
32
|
+
2. Gitee blog [blog.gitee.com](https://blog.gitee.com)
|
|
33
|
+
3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
|
|
34
|
+
4. The most valuable open source project [GVP](https://gitee.com/gvp)
|
|
35
|
+
5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
|
|
36
|
+
6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
|
package/README.md
ADDED
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
<h1>ZAntAdmin</h1>
|
|
3
|
+
<img src="./public/logo.png" alt="ZAntAdmin Logo" width="120">
|
|
4
|
+
</div>
|
|
5
|
+
|
|
6
|
+
<div align="center">
|
|
7
|
+
|
|
8
|
+

|
|
9
|
+

|
|
10
|
+

|
|
11
|
+

|
|
12
|
+
|
|
13
|
+
[在线演示](http://106.13.37.129:8123) | [后端项目](https://gitee.com/zchty/zant-core)
|
|
14
|
+
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
## 📋 目录
|
|
18
|
+
|
|
19
|
+
- [项目简介](#项目简介)
|
|
20
|
+
- [技术架构](#技术架构)
|
|
21
|
+
- [项目结构](#项目结构)
|
|
22
|
+
- [快速开始](#快速开始)
|
|
23
|
+
- [核心功能](#核心功能)
|
|
24
|
+
- [项目特色](#项目特色)
|
|
25
|
+
- [贡献指南](#贡献指南)
|
|
26
|
+
- [许可证](#许可证)
|
|
27
|
+
|
|
28
|
+
## 项目简介
|
|
29
|
+
|
|
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
|
+
|
|
59
|
+
|
|
60
|
+
## 技术架构
|
|
61
|
+
|
|
62
|
+
### 核心框架
|
|
63
|
+
- **Vue 3**: 采用 Composition API 和 `<script setup>` 语法糖
|
|
64
|
+
- **Vite**: 现代化前端构建工具,提供快速的开发体验
|
|
65
|
+
- **Vue Router 4**: 路由管理,支持动态路由和路由守卫
|
|
66
|
+
- **Pinia**: 状态管理,替代 Vuex,提供更简洁的 API
|
|
67
|
+
|
|
68
|
+
### UI 框架
|
|
69
|
+
- **Ant Design Vue 4**: 企业级 UI 组件库
|
|
70
|
+
- **@ant-design/icons-vue**: Ant Design 图标库
|
|
71
|
+
|
|
72
|
+
### 工具库
|
|
73
|
+
- **alova**: 请求库,提供更强大的请求管理能力
|
|
74
|
+
- **dayjs**: 轻量级日期处理库
|
|
75
|
+
- **echarts**: 数据可视化图表库
|
|
76
|
+
- **file-saver**: 文件保存工具
|
|
77
|
+
- **pinia-plugin-persist**: Pinia 持久化插件
|
|
78
|
+
|
|
79
|
+
### 开发工具
|
|
80
|
+
- **ESLint**: 代码质量检查
|
|
81
|
+
- **Prettier**: 代码格式化
|
|
82
|
+
- **vite-plugin-clean**: 构建时清理旧文件
|
|
83
|
+
|
|
84
|
+
## 项目结构
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
ZAntAdmin/
|
|
88
|
+
├── public/ # 静态资源
|
|
89
|
+
├── src/
|
|
90
|
+
│ ├── api/ # API 接口
|
|
91
|
+
│ │ ├── methods/ # 各模块 API 方法
|
|
92
|
+
│ │ └── request.js # 请求封装
|
|
93
|
+
│ ├── assets/ # 静态资源
|
|
94
|
+
│ │ ├── css/ # 样式文件
|
|
95
|
+
│ │ └── imgs/ # 图片资源
|
|
96
|
+
│ ├── components/ # 公共组件
|
|
97
|
+
│ │ ├── details/ # 详情组件
|
|
98
|
+
│ │ ├── edit/ # 编辑组件
|
|
99
|
+
│ │ └── pages/ # 页面组件
|
|
100
|
+
│ ├── config/ # 配置文件
|
|
101
|
+
│ ├── directives/ # 自定义指令
|
|
102
|
+
│ ├── router/ # 路由配置
|
|
103
|
+
│ ├── stores/ # 状态管理
|
|
104
|
+
│ ├── utils/ # 工具函数
|
|
105
|
+
│ ├── views/ # 页面视图
|
|
106
|
+
│ ├── App.vue # 根组件
|
|
107
|
+
│ └── main.js # 入口文件
|
|
108
|
+
├── .env.development # 开发环境变量
|
|
109
|
+
├── .env.production # 生产环境变量
|
|
110
|
+
├── .env.test # 测试环境变量
|
|
111
|
+
├── eslint.config.js # ESLint 配置
|
|
112
|
+
├── .prettierrc.json # Prettier 配置
|
|
113
|
+
├── index.html # HTML 模板
|
|
114
|
+
├── package.json # 项目依赖
|
|
115
|
+
└── vite.config.js # Vite 配置
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## 核心功能
|
|
119
|
+
|
|
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
|
+
- 数据仪表盘
|
|
150
|
+
|
|
151
|
+
## 快速开始
|
|
152
|
+
|
|
153
|
+
### 环境要求
|
|
154
|
+
- Node.js (推荐 LTS 版本)
|
|
155
|
+
- npm 或 yarn
|
|
156
|
+
|
|
157
|
+
### 安装依赖
|
|
158
|
+
```bash
|
|
159
|
+
npm install
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### 开发命令
|
|
163
|
+
```bash
|
|
164
|
+
# 启动开发服务器 (默认端口 8080)
|
|
165
|
+
npm run dev
|
|
166
|
+
|
|
167
|
+
# 构建生产版本
|
|
168
|
+
npm run build
|
|
169
|
+
|
|
170
|
+
# 预览生产构建
|
|
171
|
+
npm run preview
|
|
172
|
+
|
|
173
|
+
# 代码检查与修复
|
|
174
|
+
npm run lint
|
|
175
|
+
|
|
176
|
+
# 代码格式化
|
|
177
|
+
npm run format
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### 开发规范
|
|
181
|
+
|
|
182
|
+
#### Vue 组件规范
|
|
183
|
+
1. 使用 Composition API (`<script setup>`) 语法糖
|
|
184
|
+
2. 组件命名使用 PascalCase (大驼峰命名法)
|
|
185
|
+
3. 组件文件扩展名统一使用 `.vue`
|
|
186
|
+
4. 使用 `scoped` 样式避免全局污染
|
|
187
|
+
|
|
188
|
+
#### JavaScript 规范
|
|
189
|
+
1. 使用 ES6+ 语法
|
|
190
|
+
2. 使用 `import/export` 模块化导入导出
|
|
191
|
+
3. 变量声明优先使用 `const`,其次使用 `let`,避免使用 `var`
|
|
192
|
+
4. 使用箭头函数简化代码
|
|
193
|
+
|
|
194
|
+
#### CSS 规范
|
|
195
|
+
1. CSS 类名使用 kebab-case (短横线命名法)
|
|
196
|
+
2. 组件样式使用 `scoped` 避免全局污染
|
|
197
|
+
|
|
198
|
+
#### 代码提交规范
|
|
199
|
+
1. 遵循 conventional commit 规范
|
|
200
|
+
2. 提交前确保通过 ESLint 检查
|
|
201
|
+
|
|
202
|
+
## 项目特色
|
|
203
|
+
|
|
204
|
+
### 1. 模块化设计
|
|
205
|
+
项目采用高度模块化的设计,各功能模块相互独立,便于维护和扩展。
|
|
206
|
+
|
|
207
|
+
### 2. 通用组件封装
|
|
208
|
+
提供了丰富的通用组件,如表单表格、图标选择器等,提高开发效率。
|
|
209
|
+
|
|
210
|
+
### 3. 工具函数库
|
|
211
|
+
封装了常用的工具函数,如区域工具、表单 CRUD 操作等,简化业务逻辑开发。
|
|
212
|
+
|
|
213
|
+
### 4. 响应式设计
|
|
214
|
+
基于 Ant Design Vue 的响应式设计,适配不同屏幕尺寸的设备。
|
|
215
|
+
|
|
216
|
+
### 5. 国际化支持
|
|
217
|
+
预留了国际化接口,便于后续多语言扩展。
|
|
218
|
+
|
|
219
|
+
## 部署说明
|
|
220
|
+
|
|
221
|
+
### 环境配置
|
|
222
|
+
项目支持多环境配置,通过 `.env` 文件管理不同环境的变量:
|
|
223
|
+
- `.env.development`: 开发环境
|
|
224
|
+
- `.env.test`: 测试环境
|
|
225
|
+
- `.env.production`: 生产环境
|
|
226
|
+
|
|
227
|
+
### 构建部署
|
|
228
|
+
1. 执行构建命令:`npm run build`
|
|
229
|
+
2. 将 `dist` 目录下的文件部署到 Web 服务器
|
|
230
|
+
3. 配置服务器支持 SPA 路由模式
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
## 贡献指南
|
|
234
|
+
|
|
235
|
+
1. 提出问题或建议
|
|
236
|
+
- 提交 Issue 描述问题或建议
|
|
237
|
+
- 提供相关的代码片段或截图
|
|
238
|
+
|
|
239
|
+
2. 参与开发
|
|
240
|
+
- Fork 本项目
|
|
241
|
+
- 创建特性分支 (`git checkout -b feature/AmazingFeature`)
|
|
242
|
+
- 提交更改 (`git commit -m 'Add some AmazingFeature'`)
|
|
243
|
+
- 推送到分支 (`git push origin feature/AmazingFeature`)
|
|
244
|
+
- 提交 Pull Request
|
|
245
|
+
|
|
246
|
+
## 许可证
|
|
247
|
+
|
|
248
|
+
本项目采用 MIT 许可证,详情请参阅 LICENSE 文件。
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
# ZAnt Admin 脚手架使用指南
|
|
2
|
+
|
|
3
|
+
## 简介
|
|
4
|
+
|
|
5
|
+
ZAnt Admin 脚手架是一个基于 Vue 3 + Vite + Ant Design Vue 的前端管理系统快速生成工具。通过简单的命令行操作,您可以快速创建功能完整的管理系统项目。
|
|
6
|
+
|
|
7
|
+
## 快速开始
|
|
8
|
+
|
|
9
|
+
### 安装脚手架
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# 全局安装脚手架
|
|
13
|
+
npm install -g .
|
|
14
|
+
|
|
15
|
+
# 或者使用 npx 直接运行
|
|
16
|
+
npx zant-admin create my-project
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### 创建新项目
|
|
20
|
+
|
|
21
|
+
#### 交互式创建(推荐)
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
zant-admin create my-project --interactive
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
系统将引导您完成以下配置:
|
|
28
|
+
- 项目描述
|
|
29
|
+
- 作者名称
|
|
30
|
+
- 项目模板选择
|
|
31
|
+
- 功能特性选择
|
|
32
|
+
- 是否跳过依赖安装
|
|
33
|
+
|
|
34
|
+
#### 命令行参数创建
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
# 基本创建
|
|
38
|
+
zant-admin create my-project
|
|
39
|
+
|
|
40
|
+
# 指定模板和描述
|
|
41
|
+
zant-admin create my-project --template basic --description "基础管理系统"
|
|
42
|
+
|
|
43
|
+
# 跳过依赖安装
|
|
44
|
+
zant-admin create my-project --skip-install
|
|
45
|
+
|
|
46
|
+
# 禁用交互式模式
|
|
47
|
+
zant-admin create my-project --no-interactive
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## 命令说明
|
|
51
|
+
|
|
52
|
+
### create 命令
|
|
53
|
+
|
|
54
|
+
创建一个新的 ZAnt Admin 项目。
|
|
55
|
+
|
|
56
|
+
**参数:**
|
|
57
|
+
- `<project-name>`: 项目名称(必需)
|
|
58
|
+
|
|
59
|
+
**选项:**
|
|
60
|
+
- `-t, --template <template>`: 项目模板 (default: "default")
|
|
61
|
+
- `-d, --description <description>`: 项目描述
|
|
62
|
+
- `-a, --author <author>`: 作者名称
|
|
63
|
+
- `--skip-install`: 跳过依赖安装
|
|
64
|
+
- `--no-interactive`: 禁用交互式模式
|
|
65
|
+
|
|
66
|
+
### list-templates 命令
|
|
67
|
+
|
|
68
|
+
显示可用的项目模板。
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
zant-admin list-templates
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## 项目模板
|
|
75
|
+
|
|
76
|
+
### 默认模板 (default)
|
|
77
|
+
- 包含完整的管理系统功能
|
|
78
|
+
- 预设了常用的页面和组件
|
|
79
|
+
- 推荐用于大多数项目
|
|
80
|
+
|
|
81
|
+
### 基础模板 (basic)
|
|
82
|
+
- 仅包含核心功能
|
|
83
|
+
- 适合需要高度自定义的项目
|
|
84
|
+
- 包含登录、首页、控制台等基础页面
|
|
85
|
+
|
|
86
|
+
### 完整模板 (full)
|
|
87
|
+
- 包含所有示例页面和高级功能
|
|
88
|
+
- 适合学习和参考
|
|
89
|
+
- 包含用户管理、权限管理等完整示例
|
|
90
|
+
|
|
91
|
+
## 功能特性
|
|
92
|
+
|
|
93
|
+
在交互式模式下,您可以选择以下功能特性:
|
|
94
|
+
|
|
95
|
+
### 用户管理模块
|
|
96
|
+
- 用户列表页面
|
|
97
|
+
- 用户增删改查功能
|
|
98
|
+
- 用户状态管理
|
|
99
|
+
|
|
100
|
+
### 权限管理模块
|
|
101
|
+
- 角色管理
|
|
102
|
+
- 权限配置
|
|
103
|
+
- 访问控制
|
|
104
|
+
|
|
105
|
+
### 数据可视化图表
|
|
106
|
+
- ECharts 集成
|
|
107
|
+
- 数据统计图表
|
|
108
|
+
- 仪表盘展示
|
|
109
|
+
|
|
110
|
+
### 文件上传功能
|
|
111
|
+
- 图片上传
|
|
112
|
+
- 文件管理
|
|
113
|
+
- 上传进度显示
|
|
114
|
+
|
|
115
|
+
### 国际化支持
|
|
116
|
+
- 多语言切换
|
|
117
|
+
- 中英文支持
|
|
118
|
+
- 语言包管理
|
|
119
|
+
|
|
120
|
+
## 项目结构
|
|
121
|
+
|
|
122
|
+
生成的项目具有以下结构:
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
my-project/
|
|
126
|
+
├── public/ # 静态资源
|
|
127
|
+
├── src/
|
|
128
|
+
│ ├── api/ # 接口请求
|
|
129
|
+
│ ├── assets/ # 静态资源
|
|
130
|
+
│ ├── components/ # 公共组件
|
|
131
|
+
│ ├── config/ # 配置文件
|
|
132
|
+
│ ├── locales/ # 国际化文件(如果选择)
|
|
133
|
+
│ ├── router/ # 路由配置
|
|
134
|
+
│ ├── stores/ # 状态管理
|
|
135
|
+
│ ├── utils/ # 工具函数
|
|
136
|
+
│ ├── views/ # 页面视图
|
|
137
|
+
│ ├── App.vue # 根组件
|
|
138
|
+
│ └── main.js # 入口文件
|
|
139
|
+
├── package.json # 项目配置
|
|
140
|
+
├── vite.config.js # Vite 配置
|
|
141
|
+
└── README.md # 项目说明
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## 开发指南
|
|
145
|
+
|
|
146
|
+
### 启动开发服务器
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
cd my-project
|
|
150
|
+
npm install # 如果跳过了依赖安装
|
|
151
|
+
npm run dev
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### 构建生产版本
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
npm run build
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### 代码检查
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
npm run lint
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### 代码格式化
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
npm run format
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## 技术栈
|
|
173
|
+
|
|
174
|
+
- **Vue 3**: 渐进式 JavaScript 框架
|
|
175
|
+
- **Vite**: 下一代前端构建工具
|
|
176
|
+
- **Ant Design Vue**: 企业级 UI 设计语言
|
|
177
|
+
- **Pinia**: Vue 状态管理
|
|
178
|
+
- **Vue Router**: Vue 官方路由
|
|
179
|
+
- **ESLint + Prettier**: 代码规范和格式化
|
|
180
|
+
|
|
181
|
+
## 系统要求
|
|
182
|
+
|
|
183
|
+
- Node.js >= 16.0.0
|
|
184
|
+
- npm >= 7.0.0
|
|
185
|
+
|
|
186
|
+
## 常见问题
|
|
187
|
+
|
|
188
|
+
### Q: 创建项目时出现权限错误?
|
|
189
|
+
A: 请确保您有足够的权限在目标目录创建文件。
|
|
190
|
+
|
|
191
|
+
### Q: 依赖安装失败?
|
|
192
|
+
A: 可以尝试使用 `--skip-install` 跳过安装,然后手动运行 `npm install`。
|
|
193
|
+
|
|
194
|
+
### Q: 如何自定义模板?
|
|
195
|
+
A: 您可以修改 `templates/` 目录下的模板文件来自定义生成内容。
|
|
196
|
+
|
|
197
|
+
### Q: 支持 TypeScript 吗?
|
|
198
|
+
A: 当前版本主要支持 JavaScript,TypeScript 支持将在后续版本中添加。
|
|
199
|
+
|
|
200
|
+
## 许可证
|
|
201
|
+
|
|
202
|
+
MIT License
|
|
203
|
+
|
|
204
|
+
## 贡献
|
|
205
|
+
|
|
206
|
+
欢迎提交 Issue 和 Pull Request 来改进这个脚手架工具。
|
|
207
|
+
|
|
208
|
+
## 更新日志
|
|
209
|
+
|
|
210
|
+
### v1.0.0
|
|
211
|
+
- 初始版本发布
|
|
212
|
+
- 支持项目创建和模板选择
|
|
213
|
+
- 交互式配置向导
|
|
214
|
+
- 功能特性选择
|
|
215
|
+
- 依赖自动安装
|
package/bin/cli.js
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* ZAnt Admin 脚手架 CLI 工具
|
|
5
|
+
* 基于 Vue 3 + Vite + Ant Design Vue 的前端管理系统脚手架
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { Command } from 'commander';
|
|
9
|
+
import { createProject } from './generator.js';
|
|
10
|
+
import { checkNodeVersion } from './utils.js';
|
|
11
|
+
import { collectProjectConfig, askSkipInstall } from './prompts.js';
|
|
12
|
+
|
|
13
|
+
const program = new Command();
|
|
14
|
+
|
|
15
|
+
// 设置程序信息
|
|
16
|
+
program
|
|
17
|
+
.name('zant-admin')
|
|
18
|
+
.description('基于 Vue 3 + Vite + Ant Design Vue 的前端管理系统脚手架')
|
|
19
|
+
.version('1.0.0');
|
|
20
|
+
|
|
21
|
+
// 创建项目命令
|
|
22
|
+
program
|
|
23
|
+
.command('create <project-name>')
|
|
24
|
+
.description('创建一个新的 ZAnt Admin 项目')
|
|
25
|
+
.option('-t, --template <template>', '选择项目模板', 'default')
|
|
26
|
+
.option('-d, --description <description>', '项目描述', '基于 Vue 3 + Vite + Ant Design Vue 的前端管理系统')
|
|
27
|
+
.option('-a, --author <author>', '作者名称', '')
|
|
28
|
+
.option('--skip-install', '跳过依赖安装')
|
|
29
|
+
.option('--no-interactive', '禁用交互式模式')
|
|
30
|
+
.action(async (projectName, options) => {
|
|
31
|
+
try {
|
|
32
|
+
// 检查 Node.js 版本
|
|
33
|
+
checkNodeVersion();
|
|
34
|
+
|
|
35
|
+
let finalOptions = { ...options };
|
|
36
|
+
|
|
37
|
+
// 交互式模式
|
|
38
|
+
if (options.interactive) {
|
|
39
|
+
console.log(`🚀 开始创建项目: ${projectName}`);
|
|
40
|
+
const config = await collectProjectConfig(projectName);
|
|
41
|
+
|
|
42
|
+
finalOptions = {
|
|
43
|
+
...finalOptions,
|
|
44
|
+
template: config.template,
|
|
45
|
+
description: config.description,
|
|
46
|
+
author: config.author,
|
|
47
|
+
features: config.features
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
// 询问是否跳过依赖安装
|
|
51
|
+
if (!finalOptions.skipInstall) {
|
|
52
|
+
finalOptions.skipInstall = await askSkipInstall();
|
|
53
|
+
}
|
|
54
|
+
} else {
|
|
55
|
+
console.log(`🚀 开始创建项目: ${projectName}`);
|
|
56
|
+
console.log('📋 项目配置:');
|
|
57
|
+
console.log(` 模板: ${options.template}`);
|
|
58
|
+
console.log(` 描述: ${options.description}`);
|
|
59
|
+
console.log(` 作者: ${options.author || '未指定'}`);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// 创建项目
|
|
63
|
+
await createProject(projectName, finalOptions);
|
|
64
|
+
|
|
65
|
+
console.log('✅ 项目创建成功!');
|
|
66
|
+
console.log('📁 项目目录结构已生成');
|
|
67
|
+
|
|
68
|
+
if (!finalOptions.skipInstall) {
|
|
69
|
+
console.log('📦 正在安装依赖...');
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
console.log('\n🎉 接下来您可以:');
|
|
73
|
+
console.log(` cd ${projectName}`);
|
|
74
|
+
if (!finalOptions.skipInstall) {
|
|
75
|
+
console.log(' npm run dev');
|
|
76
|
+
} else {
|
|
77
|
+
console.log(' npm install');
|
|
78
|
+
console.log(' npm run dev');
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
} catch (error) {
|
|
82
|
+
console.error('❌ 项目创建失败:', error.message);
|
|
83
|
+
process.exit(1);
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
// 显示模板列表命令
|
|
88
|
+
program
|
|
89
|
+
.command('list-templates')
|
|
90
|
+
.description('显示可用的项目模板')
|
|
91
|
+
.action(() => {
|
|
92
|
+
console.log('📋 可用模板:');
|
|
93
|
+
console.log(' default - 默认模板 (Vue 3 + Vite + Ant Design Vue)');
|
|
94
|
+
console.log(' basic - 基础模板 (仅包含核心功能)');
|
|
95
|
+
console.log(' full - 完整模板 (包含所有示例页面)');
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
// 解析命令行参数
|
|
99
|
+
program.parse();
|