2026-02-28 16:41:39 +08:00
|
|
|
|
# 开发日志 - 2026年2月24日
|
|
|
|
|
|
|
|
|
|
|
|
## 昨日进展回顾
|
|
|
|
|
|
|
|
|
|
|
|
### 2026-02-23 完成内容
|
|
|
|
|
|
1. 学校端任务管理功能完善
|
|
|
|
|
|
2. 导航菜单二级结构重构
|
|
|
|
|
|
3. UI规范:禁止Emoji图标
|
|
|
|
|
|
|
|
|
|
|
|
## 今日开发内容
|
|
|
|
|
|
|
|
|
|
|
|
### 1. 学校端家长管理功能实现
|
|
|
|
|
|
|
|
|
|
|
|
**需求背景:**
|
|
|
|
|
|
- 后端API已完整实现,但前端缺少家长管理界面
|
|
|
|
|
|
- 学校管理员需要管理家长账号、关联学生、重置密码等功能
|
|
|
|
|
|
|
|
|
|
|
|
**实现内容:**
|
|
|
|
|
|
|
|
|
|
|
|
#### 1.1 路由配置
|
|
|
|
|
|
- 添加 `/school/parents` 路由
|
|
|
|
|
|
- 添加菜单项到"人员管理"子菜单
|
|
|
|
|
|
- 使用 IdcardOutlined 图标
|
|
|
|
|
|
|
|
|
|
|
|
#### 1.2 API接口 (school.ts)
|
|
|
|
|
|
```typescript
|
|
|
|
|
|
// 类型定义
|
|
|
|
|
|
interface Parent {
|
|
|
|
|
|
id: number;
|
|
|
|
|
|
name: string;
|
|
|
|
|
|
phone: string;
|
|
|
|
|
|
email?: string;
|
|
|
|
|
|
loginAccount: string;
|
|
|
|
|
|
status: string;
|
|
|
|
|
|
childrenCount: number;
|
|
|
|
|
|
children: ParentChild[];
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
interface ParentChild {
|
|
|
|
|
|
id: number;
|
|
|
|
|
|
name: string;
|
|
|
|
|
|
relationship: string;
|
|
|
|
|
|
class?: { id: number; name: string; };
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// API函数
|
|
|
|
|
|
getParents(params) // 获取家长列表
|
|
|
|
|
|
getParent(id) // 获取家长详情
|
|
|
|
|
|
createParent(data) // 创建家长
|
|
|
|
|
|
updateParent(id, data) // 更新家长
|
|
|
|
|
|
deleteParent(id) // 删除家长
|
|
|
|
|
|
resetParentPassword(id) // 重置密码
|
|
|
|
|
|
getParentChildren(parentId) // 获取家长的孩子列表
|
|
|
|
|
|
addChildToParent(parentId, data) // 关联学生
|
|
|
|
|
|
removeChildFromParent(parentId, studentId) // 解除关联
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
#### 1.3 家长管理页面 (ParentListView.vue)
|
|
|
|
|
|
|
|
|
|
|
|
**页面结构:**
|
|
|
|
|
|
- 页面头部:标题、统计(家长总数、活跃家长)
|
|
|
|
|
|
- 搜索栏:按姓名/手机号/账号搜索
|
|
|
|
|
|
- 卡片网格布局:展示家长信息
|
|
|
|
|
|
- 操作按钮:编辑、孩子、重置密码、删除
|
|
|
|
|
|
|
|
|
|
|
|
**核心功能:**
|
|
|
|
|
|
- 家长CRUD操作
|
|
|
|
|
|
- 重置密码(生成临时密码)
|
|
|
|
|
|
- 管理关联孩子(查看、添加、解除)
|
|
|
|
|
|
|
|
|
|
|
|
#### 1.4 后端补充
|
|
|
|
|
|
- 添加重置密码路由:`POST /school/parents/:id/reset-password`
|
|
|
|
|
|
- 实现 `resetParentPassword` 服务方法
|
|
|
|
|
|
|
|
|
|
|
|
### 2. 选择孩子功能优化
|
|
|
|
|
|
|
|
|
|
|
|
**问题描述:**
|
|
|
|
|
|
- 原使用下拉框选择学生
|
|
|
|
|
|
- 实际学校学生数量成百上千,下拉框体验差
|
|
|
|
|
|
|
|
|
|
|
|
**优化方案:**
|
|
|
|
|
|
- 改用弹窗 + 表格 + 搜索的方式
|
|
|
|
|
|
- 支持按姓名搜索、按班级筛选
|
|
|
|
|
|
- 分页加载,支持大量数据
|
|
|
|
|
|
- 单选表格,点击行选中
|
|
|
|
|
|
|
|
|
|
|
|
**技术实现:**
|
|
|
|
|
|
```typescript
|
|
|
|
|
|
// 新增变量
|
|
|
|
|
|
selectStudentModalVisible // 弹窗可见性
|
|
|
|
|
|
studentSearchKeyword // 搜索关键词
|
|
|
|
|
|
studentClassFilter // 班级筛选
|
|
|
|
|
|
selectedStudent // 选中的学生
|
|
|
|
|
|
studentTableData // 表格数据
|
|
|
|
|
|
studentPagination // 分页状态
|
|
|
|
|
|
classOptions // 班级选项
|
|
|
|
|
|
|
|
|
|
|
|
// 新增方法
|
|
|
|
|
|
openSelectStudentModal() // 打开选择弹窗
|
|
|
|
|
|
loadStudentsForSelect() // 加载学生数据
|
|
|
|
|
|
handleStudentSearch() // 搜索学生
|
|
|
|
|
|
handleStudentTableChange() // 分页变化
|
|
|
|
|
|
confirmAddChild() // 确认添加
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 3. UI调整
|
|
|
|
|
|
|
|
|
|
|
|
**关系标签显示:**
|
|
|
|
|
|
- 在孩子姓名同一行显示关系标签
|
|
|
|
|
|
- 标签格式:`关系:父亲` / `关系:母亲` 等
|
|
|
|
|
|
- 使用不同颜色区分:
|
|
|
|
|
|
- 父亲 - 蓝色
|
|
|
|
|
|
- 母亲 - 粉色
|
|
|
|
|
|
- 祖父 - 绿色
|
|
|
|
|
|
- 祖母 - 橙色
|
|
|
|
|
|
- 其他 - 默认灰色
|
|
|
|
|
|
|
|
|
|
|
|
**样式优化:**
|
|
|
|
|
|
- 孩子列表项垂直居中对齐
|
|
|
|
|
|
- 班级名称使用灰色文字显示
|
|
|
|
|
|
- 关系标签使用 Tag 组件
|
|
|
|
|
|
|
|
|
|
|
|
## 文件变更清单
|
|
|
|
|
|
|
|
|
|
|
|
### 新增文件
|
|
|
|
|
|
| 文件 | 说明 |
|
|
|
|
|
|
|-----|------|
|
|
|
|
|
|
| `src/views/school/parents/ParentListView.vue` | 家长管理页面 |
|
|
|
|
|
|
|
|
|
|
|
|
### 修改文件
|
|
|
|
|
|
| 文件 | 变更内容 |
|
|
|
|
|
|
|-----|---------|
|
|
|
|
|
|
| `src/router/index.ts` | 添加家长管理路由 |
|
|
|
|
|
|
| `src/views/school/LayoutView.vue` | 添加家长管理菜单项 |
|
|
|
|
|
|
| `src/api/school.ts` | 添加家长相关API和类型 |
|
|
|
|
|
|
| `src/modules/school/school.controller.ts` | 添加重置密码路由 |
|
|
|
|
|
|
| `src/modules/school/school.service.ts` | 添加重置密码方法 |
|
|
|
|
|
|
|
|
|
|
|
|
## 测试验证
|
|
|
|
|
|
|
|
|
|
|
|
- [x] 家长列表加载正常
|
|
|
|
|
|
- [x] 搜索家长功能正常
|
|
|
|
|
|
- [x] 添加家长功能正常
|
|
|
|
|
|
- [x] 编辑家长功能正常
|
|
|
|
|
|
- [x] 删除家长功能正常
|
|
|
|
|
|
- [x] 重置密码功能正常
|
|
|
|
|
|
- [x] 管理孩子弹窗正常
|
|
|
|
|
|
- [x] 选择孩子弹窗(表格+搜索)正常
|
|
|
|
|
|
- [x] 关联学生功能正常
|
|
|
|
|
|
- [x] 解除关联功能正常
|
|
|
|
|
|
- [x] 关系标签显示正常
|
|
|
|
|
|
|
|
|
|
|
|
## 待处理事项
|
|
|
|
|
|
|
|
|
|
|
|
### 明日计划
|
|
|
|
|
|
1. 产品文档整理
|
|
|
|
|
|
- [ ] 完善API文档
|
|
|
|
|
|
- [ ] 用户操作手册
|
|
|
|
|
|
|
|
|
|
|
|
2. 技术优化
|
|
|
|
|
|
- [ ] TypeScript 编译警告修复
|
|
|
|
|
|
- [ ] 前端构建优化
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 服务启动命令
|
|
|
|
|
|
```bash
|
|
|
|
|
|
cd /Users/retirado/ccProgram
|
|
|
|
|
|
./start-all.sh
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 测试账号
|
|
|
|
|
|
| 角色 | 账号 | 密码 |
|
|
|
|
|
|
|------|------|------|
|
2026-03-14 16:50:54 +08:00
|
|
|
|
| 超管 | admin | 123456 |
|
2026-02-28 16:41:39 +08:00
|
|
|
|
| 学校 | school1 / school | 123456 |
|
|
|
|
|
|
| 教师 | teacher1 | 123456 |
|
|
|
|
|
|
| 家长 | parent1 / parent2 | 123456 |
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
*日志创建于 2026-02-24*
|