kindergarten_java/docs/dev-logs/2026-02-24.md
En 6e11c874d2 chore: 忽略 target 目录和 .class 文件
- 添加 target/ 到 .gitignore
- 从 git 暂存区移除已追踪的 target 目录

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 16:50:54 +08:00

183 lines
4.6 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.

# 开发日志 - 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
```
## 测试账号
| 角色 | 账号 | 密码 |
|------|------|------|
| 超管 | admin | 123456 |
| 学校 | school1 / school | 123456 |
| 教师 | teacher1 | 123456 |
| 家长 | parent1 / parent2 | 123456 |
---
*日志创建于 2026-02-24*