kindergarten_java/docs/dev-logs/2026-02-24.md
2026-02-28 16:41:39 +08:00

4.6 KiB
Raw Permalink Blame History

开发日志 - 2026年2月24日

昨日进展回顾

2026-02-23 完成内容

  1. 学校端任务管理功能完善
  2. 导航菜单二级结构重构
  3. UI规范禁止Emoji图标

今日开发内容

1. 学校端家长管理功能实现

需求背景:

  • 后端API已完整实现但前端缺少家长管理界面
  • 学校管理员需要管理家长账号、关联学生、重置密码等功能

实现内容:

1.1 路由配置

  • 添加 /school/parents 路由
  • 添加菜单项到"人员管理"子菜单
  • 使用 IdcardOutlined 图标

1.2 API接口 (school.ts)

// 类型定义
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. 选择孩子功能优化

问题描述:

  • 原使用下拉框选择学生
  • 实际学校学生数量成百上千,下拉框体验差

优化方案:

  • 改用弹窗 + 表格 + 搜索的方式
  • 支持按姓名搜索、按班级筛选
  • 分页加载,支持大量数据
  • 单选表格,点击行选中

技术实现:

// 新增变量
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 添加重置密码方法

测试验证

  • 家长列表加载正常
  • 搜索家长功能正常
  • 添加家长功能正常
  • 编辑家长功能正常
  • 删除家长功能正常
  • 重置密码功能正常
  • 管理孩子弹窗正常
  • 选择孩子弹窗(表格+搜索)正常
  • 关联学生功能正常
  • 解除关联功能正常
  • 关系标签显示正常

待处理事项

明日计划

  1. 产品文档整理

    • 完善API文档
    • 用户操作手册
  2. 技术优化

    • TypeScript 编译警告修复
    • 前端构建优化

服务启动命令

cd /Users/retirado/ccProgram
./start-all.sh

测试账号

角色 账号 密码
超管 admin admin123
学校 school1 / school 123456
教师 teacher1 123456
家长 parent1 / parent2 123456

日志创建于 2026-02-24