提交学生花名册
This commit is contained in:
1 parent
a6b8eb06dd
commit
38a1234dcb
7 files changed
+1261
-30
No files matched your search
@@ -0,0 +1,150 @@
|
||||
# 代码调整记录 - 2025-01-07 - assistant
|
||||
|
||||
## 高级检索界面参数传递功能实现
|
||||
|
||||
**时间**: 2025-01-07 22:30:00
|
||||
**修改人**: assistant
|
||||
**影响模块**: 学工管理 - 学生信息管理 - 学生花名册
|
||||
|
||||
### 修改内容
|
||||
|
||||
#### 1. 主页面功能增强
|
||||
**文件**: `web/src/views/xg/xsjcxx/stuRoster/index.vue`
|
||||
|
||||
**修改点1**: 高级检索按钮事件处理
|
||||
- 位置: 第66行
|
||||
- 修改前: `@click="showAdvancedSearch = true"`
|
||||
- 修改后: `@click="handleShowAdvancedSearch"`
|
||||
- 说明: 将直接显示弹窗改为调用处理方法,以便在显示前同步参数
|
||||
|
||||
**修改点2**: 高级查询参数定义增强
|
||||
- 位置: 第293-322行
|
||||
- 新增字段:
|
||||
```javascript
|
||||
studentNo: '', // 学号
|
||||
name: '', // 学生姓名
|
||||
phone: '', // 手机号码
|
||||
studentStatus: [], // 学籍状态
|
||||
```
|
||||
- 说明: 在 advancedQueryParams 中添加基础检索栏对应的字段
|
||||
|
||||
**修改点3**: 新增参数传递处理方法
|
||||
- 位置: 第481-501行
|
||||
- 新增方法: `handleShowAdvancedSearch`
|
||||
- 功能描述:
|
||||
```javascript
|
||||
const handleShowAdvancedSearch = () => {
|
||||
// 将基础检索栏的参数同步到高级检索参数中
|
||||
if (queryParams.studentNo) {
|
||||
advancedQueryParams.studentNo = queryParams.studentNo;
|
||||
}
|
||||
if (queryParams.name) {
|
||||
advancedQueryParams.name = queryParams.name;
|
||||
}
|
||||
if (queryParams.phone) {
|
||||
advancedQueryParams.phone = queryParams.phone;
|
||||
}
|
||||
// 状态对应学籍状况
|
||||
if (queryParams.studentStatus && queryParams.studentStatus.length > 0) {
|
||||
advancedQueryParams.studentStatus = [...queryParams.studentStatus];
|
||||
}
|
||||
|
||||
// 显示高级检索弹窗
|
||||
showAdvancedSearch.value = true;
|
||||
};
|
||||
```
|
||||
|
||||
### 功能说明
|
||||
|
||||
#### 实现效果
|
||||
1. **参数自动传递**: 用户在基础检索栏输入学号、姓名、手机号码、选择状态后,点击"高级检索"按钮时,这些参数会自动传递到高级检索界面
|
||||
2. **状态字段映射**: 基础检索栏的"状态"字段对应高级检索界面的"学籍状态"字段
|
||||
3. **数组类型处理**: 正确处理多选状态字段的数组格式传递
|
||||
4. **条件判断**: 只有当基础检索栏有值时才进行传递,避免空值覆盖
|
||||
|
||||
#### 用户体验提升
|
||||
- 避免用户在高级检索中重复输入已在基础检索中输入的内容
|
||||
- 保持检索条件的连续性和一致性
|
||||
- 提高检索操作的便利性
|
||||
|
||||
### 技术要点
|
||||
|
||||
1. **响应式数据同步**: 使用 reactive 对象的属性直接赋值实现参数同步
|
||||
2. **数组深拷贝**: 对于数组类型的 studentStatus 使用展开运算符进行深拷贝
|
||||
3. **条件判断**: 通过 if 判断确保只有有效值才进行传递
|
||||
4. **组件通信**: 利用高级检索组件的 watch 监听机制实现参数自动同步到表单
|
||||
|
||||
### 相关文件
|
||||
- 主页面: `web/src/views/xg/xsjcxx/stuRoster/index.vue`
|
||||
- 高级检索组件: `web/src/views/xg/xsjcxx/stuRoster/components/AdvancedSearchDialog.vue`
|
||||
|
||||
### 测试建议
|
||||
1. 在基础检索栏输入学号、姓名、手机号码,选择状态
|
||||
2. 点击"高级检索"按钮
|
||||
3. 验证高级检索界面中对应字段是否已自动填充
|
||||
4. 验证状态字段是否正确映射到学籍状态
|
||||
|
||||
---
|
||||
|
||||
# 校园管理系统代码调整记录
|
||||
|
||||
**日期**: 2025-01-07
|
||||
**操作人**: assistant
|
||||
**说明**: 记录2025年1月7日的代码调整和修改内容
|
||||
|
||||
---
|
||||
|
||||
## 2025-01-07 20:15:00 - 优化学生花名册主界面查询逻辑
|
||||
|
||||
### 🔧 修改内容
|
||||
**文件**: `web/src/views/xg/xsjcxx/stuRoster/index.vue`
|
||||
|
||||
**修改说明**:
|
||||
- 优化 `handleQuery` 方法,确保基本搜索时只保留检索栏的4个条件和部门树选择
|
||||
- 清除高级查询产生的额外参数,避免参数污染
|
||||
|
||||
**具体变更**:
|
||||
```javascript
|
||||
// 修改前
|
||||
const handleQuery = () => {
|
||||
queryParams.pageNum = 1;
|
||||
getList();
|
||||
};
|
||||
|
||||
// 修改后
|
||||
const handleQuery = () => {
|
||||
// 保留基本检索条件和部门选择
|
||||
const basicSearchParams = {
|
||||
pageNum: 1,
|
||||
pageSize: queryParams.pageSize,
|
||||
studentNo: queryParams.studentNo || '',
|
||||
name: queryParams.name || '',
|
||||
phone: queryParams.phone || '',
|
||||
studentStatus: queryParams.studentStatus || [],
|
||||
deptIds: queryParams.deptIds || []
|
||||
};
|
||||
|
||||
// 清空 queryParams 对象的所有属性
|
||||
Object.keys(queryParams).forEach((key) => {
|
||||
delete queryParams[key];
|
||||
});
|
||||
|
||||
// 重新设置基本检索参数
|
||||
Object.assign(queryParams, basicSearchParams);
|
||||
|
||||
getList();
|
||||
};
|
||||
```
|
||||
|
||||
**影响范围**:
|
||||
- ✅ 基本搜索功能:只使用检索栏的4个条件进行查询
|
||||
- ✅ 部门树选择:保留左侧部门树的选择状态
|
||||
- ✅ 高级查询功能:不影响高级查询的独立功能
|
||||
- ✅ 分页功能:保持正常的分页逻辑
|
||||
|
||||
**测试验证**:
|
||||
- [x] 基本搜索按钮点击后只传递基本参数
|
||||
- [x] 部门树选择状态正常保留
|
||||
- [x] 高级查询后再使用基本搜索,额外参数被正确清除
|
||||
|
||||
---
|
||||
@@ -296,6 +296,82 @@
|
||||
#### 响应数据
|
||||
返回Excel文件流
|
||||
|
||||
### 2.8.1 高级检索导出学生信息
|
||||
- **接口路径**: POST `/studentMsg/studentMsg/advancedSearchExport`
|
||||
- **权限标识**: `studentMsg:studentMsg:export`
|
||||
- **功能描述**: 根据高级检索条件导出学生信息列表,支持多维度复合查询条件
|
||||
- **版本**: 1.2.1 (2025-01-07修复MapStruct转换错误)
|
||||
- **修复**: 解决 `XgStudentMsgVo` 到 `XgStudentMsgExportVo` 转换器缺失问题
|
||||
|
||||
#### 请求参数
|
||||
支持以下高级检索条件:
|
||||
|
||||
**基础信息检索**
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
|--------|------|------|------|
|
||||
| studentNo | string | 否 | 学号(模糊查询) |
|
||||
| name | string | 否 | 姓名(模糊查询) |
|
||||
| idCard | string | 否 | 身份证号(模糊查询) |
|
||||
| phone | string | 否 | 手机号码(模糊查询) |
|
||||
| email | string | 否 | 邮箱(模糊查询) |
|
||||
| gender | array | 否 | 性别数组:0-男,1-女 |
|
||||
| nationality | array | 否 | 民族数组 |
|
||||
| politicalStatus | array | 否 | 政治面貌数组 |
|
||||
| birthDateStart | string | 否 | 出生日期开始:yyyy-MM-dd |
|
||||
| birthDateEnd | string | 否 | 出生日期结束:yyyy-MM-dd |
|
||||
|
||||
**学籍信息检索**
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
|--------|------|------|------|
|
||||
| studentStatus | array | 否 | 学籍状态数组:1-在籍,2-休学,3-复学,4-退学,5-毕业 |
|
||||
| enrollmentYearStart | integer | 否 | 入学年份开始 |
|
||||
| enrollmentYearEnd | integer | 否 | 入学年份结束 |
|
||||
| admissionCategory | array | 否 | 录取类别数组 |
|
||||
|
||||
**学院专业班级检索**
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
|--------|------|------|------|
|
||||
| collegeName | string | 否 | 学院名称(模糊查询) |
|
||||
| majorName | string | 否 | 专业名称(模糊查询) |
|
||||
| className | string | 否 | 班级名称(模糊查询) |
|
||||
| grade | array | 否 | 年级数组 |
|
||||
| counselorName | string | 否 | 辅导员姓名(模糊查询) |
|
||||
| classTeacherName | string | 否 | 班主任姓名(模糊查询) |
|
||||
|
||||
**家庭信息检索**
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
|--------|------|------|------|
|
||||
| fatherName | string | 否 | 父亲姓名(模糊查询) |
|
||||
| motherName | string | 否 | 母亲姓名(模糊查询) |
|
||||
| familyEconomicStatus | array | 否 | 家庭经济状况数组 |
|
||||
| familyIncomeMin | number | 否 | 家庭收入最小值 |
|
||||
| familyIncomeMax | number | 否 | 家庭收入最大值 |
|
||||
|
||||
**特殊身份检索**
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
|--------|------|------|------|
|
||||
| isPoorStudent | array | 否 | 是否贫困生:0-否,1-是 |
|
||||
| isMinority | array | 否 | 是否少数民族:0-否,1-是 |
|
||||
| isDisabled | array | 否 | 是否残疾:0-否,1-是 |
|
||||
| isOrphan | array | 否 | 是否孤儿:0-否,1-是 |
|
||||
|
||||
**权限范围**
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
|--------|------|------|------|
|
||||
| deptIds | array | 否 | 部门ID数组,用于权限控制 |
|
||||
|
||||
#### 响应数据
|
||||
返回Excel文件流,包含完整的学生信息数据
|
||||
|
||||
#### 修复记录
|
||||
- **2025-01-07 v1.2.1**: 修复MapStruct转换错误,解决 `XgStudentMsgVo` 到 `XgStudentMsgExportVo` 转换器缺失问题
|
||||
- **问题**: `MapstructUtils.convert()` 无法找到两个VO类之间的转换器,导致导出功能报错
|
||||
- **解决**: 在Controller中添加手动转换方法 `convertToExportVo()` 和 `convertToExportVoList()`
|
||||
- **影响**: 导出功能正常工作,所有字段完整映射
|
||||
- **2025-01-07 v1.2.0**: 修复分页限制问题,导出时pageSize设置为50000,确保能导出所有符合条件的记录
|
||||
- **问题**: 之前由于BO类默认pageSize=10,导致只能导出10条记录
|
||||
- **解决**: 取消注释Controller中的分页参数设置代码
|
||||
|
||||
### 2.9 查询学生个人信息
|
||||
- **接口路径**: GET `/studentMsg/studentMsg/personalInfo`
|
||||
- **权限标识**: `studentMsg:studentMsg:query`
|
||||
@@ -540,7 +616,10 @@ updateSupport: true
|
||||
|
||||
---
|
||||
|
||||
**文档更新时间**: 2025-01-27
|
||||
**文档版本**: 1.1.0
|
||||
**文档更新时间**: 2025-01-07
|
||||
**文档版本**: 1.2.0
|
||||
**维护人员**: Cursor AI
|
||||
**更新说明**: 新增学生信息导入功能,完善学生信息管理API文档
|
||||
**更新说明**:
|
||||
- 新增高级检索导出接口文档
|
||||
- 修复高级检索导出分页限制问题
|
||||
- 之前版本:新增学生信息导入功能,完善学生信息管理API文档
|
||||
Reference in new issue
Block a user