提交学生花名册
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] 高级查询后再使用基本搜索,额外参数被正确清除
|
||||
|
||||
---
|
||||
Reference in new issue
Block a user