Files
lyzsys_backend/doc/demo_部署说明.md

260 lines
6.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 项目管理模块部署说明
## 一、概述
本文档说明如何部署 lyzsys-module-demo 项目管理模块。
### 模块信息
- **模块名称**: lyzsys-module-demo
- **功能**: 项目管理(增删改查导出)
- **数据库表**: demo_project
- **菜单结构**:
- 一级菜单:项目管理
- 二级菜单:项目列表
### 命名规范遵循
✅ 所有字段名遵循驼峰命名规范,第一个单词不能只有一个字母
- `projectName`(而非 `pName`
- `projectCode`(而非 `pCode`
- `establishDate`(而非 `eDate`
## 二、部署步骤
### 1. 数据库部署
按顺序执行以下 SQL 脚本:
```bash
# 1. 创建项目管理表
mysql> source e:/workspace/lyzsys/lyzsys_backend/sql/mysql/demo_project.sql
# 2. 创建菜单配置
mysql> source e:/workspace/lyzsys/lyzsys_backend/sql/mysql/demo_menu.sql
```
**说明**
- `demo_project.sql` - 创建项目管理表,包含示例数据
- `demo_menu.sql` - 创建菜单配置,包含一级菜单、二级菜单和按钮权限
### 2. 后端部署
后端代码已自动集成到项目中,无需额外配置。
**后端文件清单**
```
lyzsys_backend/lyzsys-module-demo/
├── pom.xml # Maven 配置
└── src/main/java/cn/iocoder/lyzsys/module/demo/
├── controller/admin/project/
│ ├── ProjectController.java # 控制器
│ └── vo/
│ ├── ProjectPageReqVO.java # 分页查询请求
│ ├── ProjectRespVO.java # 响应 VO
│ └── ProjectSaveReqVO.java # 保存请求 VO
├── service/project/
│ ├── ProjectService.java # 服务接口
│ └── ProjectServiceImpl.java # 服务实现
├── dal/
│ ├── dataobject/project/
│ │ └── ProjectDO.java # 数据对象
│ └── mysql/project/
│ └── ProjectMapper.java # Mapper 接口
└── enums/
└── ErrorCodeConstants.java # 错误码常量
```
**验证后端部署**
1. Maven 重新导入项目依赖
2. 确认 `lyzsys-server/pom.xml` 包含 `lyzsys-module-demo` 依赖
3. 启动后端项目,查看日志确认模块加载成功
### 3. 前端部署
前端代码已生成,无需额外配置。
**前端文件清单**
```
lyzsys-ui-admin/src/
├── api/demo/project/
│ └── index.ts # API 接口定义
└── views/demo/project/
├── index.vue # 项目列表页面
└── ProjectForm.vue # 项目表单组件
```
**验证前端部署**
1. 重新启动前端项目(如果正在运行)
2. 使用管理员账号登录系统
3. 在左侧菜单栏查看"项目管理"菜单
## 三、功能验证
### 1. 菜单验证
登录后台管理系统,应该看到以下菜单结构:
```
项目管理(一级菜单)
└── 项目列表(二级菜单)
系统管理(已调整到最后)
基础设施(已调整到最后)
```
### 2. 权限验证
项目列表页面应包含以下操作按钮:
- ✅ 搜索
- ✅ 重置
- ✅ 新增
- ✅ 导出
- ✅ 批量删除
- ✅ 修改(每行)
- ✅ 删除(每行)
### 3. 功能验证
测试以下功能:
#### 查询功能
- [ ] 按项目名称模糊查询
- [ ] 按项目编号模糊查询
- [ ] 按立项时间范围查询
- [ ] 分页查询
#### 新增功能
- [ ] 点击"新增"按钮打开表单
- [ ] 必填字段验证(项目名称、项目编号)
- [ ] 项目编号唯一性校验
- [ ] 保存成功后刷新列表
#### 修改功能
- [ ] 点击"修改"按钮打开表单
- [ ] 回显原有数据
- [ ] 修改后保存成功
#### 删除功能
- [ ] 单个删除确认提示
- [ ] 删除成功后刷新列表
- [ ] 批量删除功能
#### 导出功能
- [ ] 点击"导出"按钮
- [ ] 下载 Excel 文件
- [ ] 验证导出数据正确
## 四、接口文档
### API 端点
**Base URL**: `/demo/project`
| 接口 | 方法 | 说明 | 权限 |
|-----|------|------|------|
| `/create` | POST | 创建项目 | demo:project:create |
| `/update` | PUT | 修改项目 | demo:project:update |
| `/delete` | DELETE | 删除项目 | demo:project:delete |
| `/delete-list` | DELETE | 批量删除 | demo:project:delete |
| `/page` | GET | 分页查询 | demo:project:query |
| `/get` | GET | 查询详情 | demo:project:query |
| `/export-excel` | GET | 导出Excel | demo:project:export |
### 请求示例
**创建项目**
```json
POST /demo/project/create
{
"projectName": "示例项目",
"projectCode": "PROJ-2024-001",
"establishDate": "2024-01-01 00:00:00"
}
```
**查询列表**
```
GET /demo/project/page?pageNo=1&pageSize=10&projectName=示例
```
## 五、常见问题
### 1. 菜单不显示
**原因**:可能是权限问题
**解决**
1. 确认已执行 `demo_menu.sql`
2. 检查当前登录用户的角色权限
3. 在"系统管理 > 菜单管理"中确认菜单已创建
4. 在"系统管理 > 角色管理"中给当前角色分配菜单权限
### 2. 后端接口 404
**原因**:模块未启动或路由配置错误
**解决**
1. 检查 `lyzsys-server/pom.xml` 是否包含 demo 模块依赖
2. 重新编译启动项目
3. 查看启动日志确认模块加载
### 3. 前端页面报错
**原因**API 接口路径不匹配
**解决**
1. 检查 `src/api/demo/project/index.ts` 中的接口路径
2. 确认后端 Controller 的 `@RequestMapping` 路径
3. 查看浏览器控制台错误信息
### 4. 项目编号重复错误
**原因**:唯一性校验生效
**解决**:这是正常的业务校验,请使用不同的项目编号
## 六、扩展开发
### 添加新字段
1. **修改数据库表**
```sql
ALTER TABLE demo_project ADD COLUMN new_field VARCHAR(100) COMMENT '新字段';
```
2. **修改后端代码**
-`ProjectDO.java` 中添加字段
-`ProjectRespVO.java``ProjectSaveReqVO.java` 中添加字段
- 根据需要修改 `ProjectMapper.java` 查询条件
3. **修改前端代码**
-`api/demo/project/index.ts` 中添加字段定义
-`ProjectForm.vue` 中添加表单项
-`index.vue` 中添加表格列
### 添加新功能
参考现有的增删改查实现,遵循以下开发流程:
1. 在 Service 层添加业务方法
2. 在 Controller 层添加接口
3. 在前端 API 文件中添加接口调用
4. 在前端页面中实现 UI 交互
## 七、技术栈
### 后端
- Spring Boot 2.7.18
- MyBatis Plus 3.5.15
- MySQL 8.0+
### 前端
- Vue 3.5.12
- Element Plus 2.11.1
- TypeScript 5.3.3
- Vite 5.1.4
## 八、联系方式
如有问题,请联系开发团队或查阅项目文档。
---
**生成时间**: 2024年
**版本**: v1.0