zt-admin-template 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.
Files changed (80) hide show
  1. package/package.json +11 -0
  2. package/template/.env.development +2 -0
  3. package/template/.env.production +2 -0
  4. package/template/.env.test +2 -0
  5. package/template/.kiro/specs/course-backend-integration/.config.kiro +1 -0
  6. package/template/.kiro/specs/course-backend-integration/design.md +234 -0
  7. package/template/.kiro/specs/course-backend-integration/requirements.md +116 -0
  8. package/template/.kiro/specs/course-backend-integration/tasks.md +0 -0
  9. package/template/COMPLETION_CHECKLIST.md +305 -0
  10. package/template/DEPLOYMENT_GUIDE.md +391 -0
  11. package/template/FINAL_SUMMARY.md +428 -0
  12. package/template/IMPLEMENTATION_SUMMARY.md +382 -0
  13. package/template/INTEGRATION_GUIDE.md +458 -0
  14. package/template/PROJECT_OVERVIEW.md +343 -0
  15. package/template/QUICK_START.md +273 -0
  16. package/template/RBAC_Tutorial.md +424 -0
  17. package/template/README.md +16 -0
  18. package/template/React_Antd_TS_Tutorial.md +279 -0
  19. package/template/START_ALL.md +163 -0
  20. package/template/SYSTEM_MANAGEMENT.md +247 -0
  21. package/template/eslint.config.js +29 -0
  22. package/template/index.html +13 -0
  23. package/template/koa-server/README.md +65 -0
  24. package/template/koa-server/app.js +625 -0
  25. package/template/koa-server/package-lock.json +1547 -0
  26. package/template/koa-server/package.json +26 -0
  27. package/template/koa-server/public/assets/index-B1Cj4mG9.css +1 -0
  28. package/template/koa-server/public/assets/index-Mgxg-xqT.js +503 -0
  29. package/template/koa-server/public/favicon.svg +1 -0
  30. package/template/koa-server/public/icons.svg +24 -0
  31. package/template/koa-server/public/index.html +14 -0
  32. package/template/koa-server/uploads/1774265088480-962006467.png +0 -0
  33. package/template/koa-server/uploads/file-1774346891704-610962013.png +0 -0
  34. package/template/koa-server/uploads/file-1774346898887-58636533.png +0 -0
  35. package/template/koa-server/uploads/file-1774346912676-771862547.png +0 -0
  36. package/template/koa-server/uploads/file-1774347025308-130037894.png +0 -0
  37. package/template/koa-server/uploads/file-1774347031104-766499773.png +0 -0
  38. package/template/koa-server/uploads/file-1774347094969-731402203.png +0 -0
  39. package/template/koa-server/uploads/file-1774347101948-330296656.png +0 -0
  40. package/template/koa-server/uploads/file-1774351682377-932868720.png +0 -0
  41. package/template/koa-server/uploads/file-1774352037654-877426905.png +0 -0
  42. package/template/koa-server/uploads/file-1774352175463-386248997.png +0 -0
  43. package/template/koa-server/uploads/file-1774361446433-405859961.png +0 -0
  44. package/template/koa-server/uploads/file-1774361512207-465806267.png +0 -0
  45. package/template/lianxi.html +15 -0
  46. package/template/package-lock.json +6307 -0
  47. package/template/package.json +36 -0
  48. package/template/public/favicon.svg +1 -0
  49. package/template/public/icons.svg +24 -0
  50. package/template/src/App.css +184 -0
  51. package/template/src/App.tsx +44 -0
  52. package/template/src/api/course.ts +86 -0
  53. package/template/src/api/menu.ts +55 -0
  54. package/template/src/api/role.ts +58 -0
  55. package/template/src/api/user.ts +58 -0
  56. package/template/src/assets/hero.png +0 -0
  57. package/template/src/assets/react.svg +1 -0
  58. package/template/src/assets/vite.svg +1 -0
  59. package/template/src/components/Child.tsx +10 -0
  60. package/template/src/components/MainLayout.tsx +169 -0
  61. package/template/src/components/SunZi.tsx +13 -0
  62. package/template/src/contexts/ThemeContext.tsx +33 -0
  63. package/template/src/hooks/usePermission.tsx +62 -0
  64. package/template/src/index.css +111 -0
  65. package/template/src/main.tsx +13 -0
  66. package/template/src/pages/Dashboard.tsx +39 -0
  67. package/template/src/pages/Users.tsx +95 -0
  68. package/template/src/pages/banner/BannerList.tsx +182 -0
  69. package/template/src/pages/course/Course.tsx +586 -0
  70. package/template/src/pages/course/CourseList.tsx +168 -0
  71. package/template/src/pages/system/menu/Menu.tsx +501 -0
  72. package/template/src/pages/system/role/Role.tsx +458 -0
  73. package/template/src/pages/system/user/User.tsx +364 -0
  74. package/template/src/types/permission.ts +21 -0
  75. package/template/src/utils/request.tsx +94 -0
  76. package/template/src/vite-env.d.ts +1 -0
  77. package/template/tsconfig.app.json +32 -0
  78. package/template/tsconfig.json +7 -0
  79. package/template/tsconfig.node.json +13 -0
  80. package/template/vite.config.ts +30 -0
@@ -0,0 +1,391 @@
1
+ # 完整部署和测试指南
2
+
3
+ ## 项目完成情况
4
+
5
+ ### ✅ 已完成
6
+
7
+ 1. **二次封装 axios** (`src/utils/request.tsx`)
8
+ - 请求拦截器(添加 token)
9
+ - 响应拦截器(统一处理错误)
10
+ - 支持所有 HTTP 方法
11
+
12
+ 2. **多环境配置**
13
+ - `.env.development` - 开发环境
14
+ - `.env.test` - 测试环境
15
+ - `.env.production` - 生产环境
16
+
17
+ 3. **API 服务层** (`src/api/`)
18
+ - `user.ts` - 用户 API
19
+ - `role.ts` - 角色 API
20
+ - `menu.ts` - 菜单 API
21
+
22
+ 4. **后端 Koa 服务** (`koa-server/app.js`)
23
+ - 用户管理接口
24
+ - 角色管理接口
25
+ - 菜单管理接口
26
+ - CORS 支持
27
+
28
+ 5. **前端集成**
29
+ - 用户管理页面 - API 集成完成
30
+ - 角色管理页面 - API 集成完成
31
+ - 菜单管理页面 - API 集成完成
32
+
33
+ ## 快速启动
34
+
35
+ ### 方式一:分别启动(推荐)
36
+
37
+ **步骤 1:启动后端服务**
38
+ ```bash
39
+ cd koa-server
40
+ npm install
41
+ npm run dev
42
+ ```
43
+
44
+ 输出:
45
+ ```
46
+ Koa 服务器已启动: http://localhost:8080
47
+ ```
48
+
49
+ **步骤 2:启动前端应用**
50
+ ```bash
51
+ npm install
52
+ npm run dev
53
+ ```
54
+
55
+ 输出:
56
+ ```
57
+ VITE v5.4.21 ready in 463 ms
58
+ ➜ Local: http://localhost:5174/
59
+ ```
60
+
61
+ ### 方式二:使用 npm 脚本
62
+
63
+ 在项目根目录创建 `start-all.bat`:
64
+
65
+ ```batch
66
+ @echo off
67
+ start cmd /k "cd koa-server && npm install && npm run dev"
68
+ timeout /t 3
69
+ start cmd /k "npm install && npm run dev"
70
+ ```
71
+
72
+ 运行:
73
+ ```bash
74
+ start-all.bat
75
+ ```
76
+
77
+ ## 测试流程
78
+
79
+ ### 1. 验证后端服务
80
+
81
+ ```bash
82
+ curl http://localhost:8080/health
83
+ ```
84
+
85
+ 预期响应:
86
+ ```json
87
+ {"status":"ok"}
88
+ ```
89
+
90
+ ### 2. 验证前端应用
91
+
92
+ 访问 `http://localhost:5174`
93
+
94
+ ### 3. 测试用户管理
95
+
96
+ 1. 点击左侧菜单"系统管理" > "用户管理"
97
+ 2. 应该看到 3 个用户列表
98
+ 3. 测试功能:
99
+ - **新增**:点击"新增"按钮,填写信息,点击"确定"
100
+ - **编辑**:点击编辑图标,修改信息,点击"确定"
101
+ - **删除**:点击删除图标,确认删除
102
+ - **刷新**:点击"刷新"按钮,重新加载数据
103
+
104
+ ### 4. 测试角色管理
105
+
106
+ 1. 点击左侧菜单"系统管理" > "角色管理"
107
+ 2. 应该看到 3 个角色列表
108
+ 3. 测试功能:
109
+ - **新增**:创建新角色并分配权限
110
+ - **编辑**:修改角色信息和权限
111
+ - **删除**:删除角色
112
+ - **权限分配**:在弹窗中选择权限
113
+
114
+ ### 5. 测试菜单管理
115
+
116
+ 1. 点击左侧菜单"系统管理" > "菜单管理"
117
+ 2. 应该看到树形菜单
118
+ 3. 测试功能:
119
+ - **新增**:添加新菜单
120
+ - **编辑**:修改菜单信息
121
+ - **删除**:删除菜单
122
+ - **展开/折叠**:展开或折叠菜单树
123
+
124
+ ## 环境变量配置
125
+
126
+ ### 开发环境 (`.env.development`)
127
+ ```
128
+ VITE_API_URL=http://localhost:8080
129
+ ```
130
+
131
+ ### 测试环境 (`.env.test`)
132
+ ```
133
+ VITE_API_URL=http://localhost:8081
134
+ ```
135
+
136
+ ### 生产环境 (`.env.production`)
137
+ ```
138
+ VITE_API_URL=http://47.113.230.113
139
+ ```
140
+
141
+ ## 构建命令
142
+
143
+ ### 开发
144
+ ```bash
145
+ npm run dev
146
+ ```
147
+
148
+ ### 测试构建
149
+ ```bash
150
+ npm run build:test
151
+ ```
152
+
153
+ ### 生产构建
154
+ ```bash
155
+ npm run build
156
+ ```
157
+
158
+ ### 代码检查
159
+ ```bash
160
+ npm run lint
161
+ ```
162
+
163
+ ## 后端 API 文档
164
+
165
+ ### 基础 URL
166
+ ```
167
+ http://localhost:8080
168
+ ```
169
+
170
+ ### 用户管理
171
+
172
+ | 方法 | 端点 | 请求体 | 响应 |
173
+ |------|------|--------|------|
174
+ | GET | `/system/user/list?pageNum=1&pageSize=10` | - | `{rows: [], total: 0}` |
175
+ | GET | `/system/user/:id` | - | `{id, username, ...}` |
176
+ | POST | `/system/user` | `{username, nickName, ...}` | `{id, ...}` |
177
+ | PUT | `/system/user` | `{id, username, ...}` | `{id, ...}` |
178
+ | DELETE | `/system/user/:id` | - | `{msg: "删除成功"}` |
179
+
180
+ ### 角色管理
181
+
182
+ | 方法 | 端点 | 请求体 | 响应 |
183
+ |------|------|--------|------|
184
+ | GET | `/system/role/list?pageNum=1&pageSize=10` | - | `{rows: [], total: 0}` |
185
+ | GET | `/system/role/:id` | - | `{id, roleName, ...}` |
186
+ | POST | `/system/role` | `{roleName, roleKey, ...}` | `{id, ...}` |
187
+ | PUT | `/system/role` | `{id, roleName, ...}` | `{id, ...}` |
188
+ | DELETE | `/system/role/:id` | - | `{msg: "删除成功"}` |
189
+
190
+ ### 菜单管理
191
+
192
+ | 方法 | 端点 | 请求体 | 响应 |
193
+ |------|------|--------|------|
194
+ | GET | `/system/menu/list` | - | `[{id, menuName, children: []}]` |
195
+ | GET | `/system/menu/:id` | - | `{id, menuName, ...}` |
196
+ | POST | `/system/menu` | `{menuName, path, ...}` | `{id, ...}` |
197
+ | PUT | `/system/menu` | `{id, menuName, ...}` | `{id, ...}` |
198
+ | DELETE | `/system/menu/:id` | - | `{msg: "删除成功"}` |
199
+
200
+ ## 响应格式
201
+
202
+ 所有 API 响应格式:
203
+
204
+ ```json
205
+ {
206
+ "code": 200,
207
+ "message": "成功",
208
+ "data": {}
209
+ }
210
+ ```
211
+
212
+ ## 错误处理
213
+
214
+ ### 常见错误
215
+
216
+ 1. **CORS 错误**
217
+ ```
218
+ Access to XMLHttpRequest blocked by CORS policy
219
+ ```
220
+ 解决:确保后端已启用 CORS
221
+
222
+ 2. **连接超时**
223
+ ```
224
+ Network Error: timeout of 10000ms exceeded
225
+ ```
226
+ 解决:检查后端服务是否启动
227
+
228
+ 3. **404 错误**
229
+ ```
230
+ 404 Not Found
231
+ ```
232
+ 解决:检查 API 端点是否正确
233
+
234
+ 4. **500 错误**
235
+ ```
236
+ 500 Internal Server Error
237
+ ```
238
+ 解决:查看后端日志
239
+
240
+ ## 调试技巧
241
+
242
+ ### 前端调试
243
+
244
+ 1. 打开浏览器开发者工具(F12)
245
+ 2. 切换到 Network 标签查看请求
246
+ 3. 切换到 Console 标签查看日志
247
+ 4. 使用 React DevTools 查看组件状态
248
+
249
+ ### 后端调试
250
+
251
+ 1. 查看服务器启动日志
252
+ 2. 使用 curl 测试 API:
253
+ ```bash
254
+ curl http://localhost:8080/system/user/list
255
+ ```
256
+ 3. 使用 Postman 测试 API
257
+
258
+ ## 生产部署
259
+
260
+ ### 前端部署
261
+
262
+ 1. 构建生产版本
263
+ ```bash
264
+ npm run build
265
+ ```
266
+
267
+ 2. 上传 `dist` 目录到服务器
268
+ ```bash
269
+ scp -r dist/* user@server:/var/www/admin-system
270
+ ```
271
+
272
+ 3. 配置 Web 服务器(Nginx)
273
+ ```nginx
274
+ server {
275
+ listen 80;
276
+ server_name example.com;
277
+ root /var/www/admin-system;
278
+ index index.html;
279
+
280
+ location / {
281
+ try_files $uri $uri/ /index.html;
282
+ }
283
+ }
284
+ ```
285
+
286
+ ### 后端部署
287
+
288
+ 1. 安装生产依赖
289
+ ```bash
290
+ cd koa-server
291
+ npm install --production
292
+ ```
293
+
294
+ 2. 使用 PM2 启动
295
+ ```bash
296
+ npm install -g pm2
297
+ pm2 start app.js --name admin-server
298
+ pm2 save
299
+ pm2 startup
300
+ ```
301
+
302
+ 3. 配置反向代理(Nginx)
303
+ ```nginx
304
+ server {
305
+ listen 80;
306
+ server_name api.example.com;
307
+
308
+ location / {
309
+ proxy_pass http://localhost:8080;
310
+ proxy_set_header Host $host;
311
+ proxy_set_header X-Real-IP $remote_addr;
312
+ }
313
+ }
314
+ ```
315
+
316
+ ## 性能优化
317
+
318
+ ### 前端优化
319
+
320
+ 1. 代码分割
321
+ 2. 懒加载
322
+ 3. 缓存策略
323
+ 4. 压缩资源
324
+
325
+ ### 后端优化
326
+
327
+ 1. 数据库索引
328
+ 2. 缓存策略
329
+ 3. 分页加载
330
+ 4. 连接池
331
+
332
+ ## 监控和日志
333
+
334
+ ### 前端日志
335
+
336
+ - 浏览器控制台
337
+ - 错误追踪服务(如 Sentry)
338
+
339
+ ### 后端日志
340
+
341
+ - 应用日志
342
+ - 访问日志
343
+ - 错误日志
344
+
345
+ ## 常见问题
346
+
347
+ ### Q: 如何修改 API 地址?
348
+ A: 修改对应的 `.env.*` 文件中的 `VITE_API_URL`
349
+
350
+ ### Q: 如何添加新的 API?
351
+ A: 在 `src/api/` 目录下创建新文件,参考现有 API 的写法
352
+
353
+ ### Q: 如何处理认证?
354
+ A: 在 `src/utils/request.tsx` 的请求拦截器中添加 token
355
+
356
+ ### Q: 如何处理错误?
357
+ A: 在 `src/utils/request.tsx` 的响应拦截器中处理错误
358
+
359
+ ### Q: 如何实现权限控制?
360
+ A: 在路由或组件中检查用户权限
361
+
362
+ ## 下一步
363
+
364
+ 1. **数据库集成**
365
+ - 连接 MongoDB 或 MySQL
366
+ - 实现数据持久化
367
+
368
+ 2. **用户认证**
369
+ - 实现登录功能
370
+ - 添加 JWT 认证
371
+
372
+ 3. **权限管理**
373
+ - 实现基于角色的访问控制
374
+ - 添加权限验证
375
+
376
+ 4. **监控和日志**
377
+ - 添加操作日志
378
+ - 实现性能监控
379
+
380
+ ## 支持
381
+
382
+ - 前端文档:`SYSTEM_MANAGEMENT.md`
383
+ - 后端文档:`koa-server/README.md`
384
+ - 集成指南:`INTEGRATION_GUIDE.md`
385
+ - 启动指南:`START_ALL.md`
386
+
387
+ ---
388
+
389
+ **项目状态**: ✅ 完成并可部署
390
+ **最后更新**: 2026-01-18
391
+ **版本**: 1.0.0