Files
SharedClassManager/.cospec/plan/changes/fix-admin-multi-issues/proposal.md
2026-04-14 11:35:56 +08:00

60 lines
3.8 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.
# 变更:管理端多项功能修复与改版
## 原因
管理端存在多项问题需要修复跨域配置导致API调用失败、导航栏各页面不一致、作业模块用途不符需求、考勤模块交互需改版、家长手机号需要权限控制。
## 变更内容
### 1. 跨域问题修复(确认)
- 之前的 500 错误已通过添加 `PermissionChecker.get_user_class_id` 方法修复
- CORS 中间件配置本身正确(`CORSMiddleware` 已注册且包含 OPTIONS 方法)
- `AuthMiddleware` 虽已导入但未在 `main.py` 中注册为全局中间件,不影响当前功能(认证由路由层 `get_current_user` 处理)
- 后端 `.env` 文件由服务器单独配置,不在版本控制中,无需添加默认值
### 2. 统一导航栏
- 创建 `frontend/includes/nav.php` 共享模板,所有 admin 页面统一引入
- 导航项角色条件统一为:操行分管理=班主任/班长,作业管理=班主任/学习委员,考勤管理=班主任/考勤委员,科目管理=班主任/学习委员,管理员管理=班主任
- 修复 `dashboard.php` 密码链接拼写错误 `passwork.php``password.php`
- 接受参数:`$role``$current_page`(用于 active 状态)
### 3. 作业管理改版(仅加减操行分)
- 移除作业发布功能(创建作业、查看提交记录)
- 改为类似操行分管理页面的交互:选择学生 + 选择扣分类型(未交作业/迟交作业等)+ 原因 + 提交扣分
- 前端 `homework.php` 完全重写:学生列表表格 + 批量加减分模态框,扣分类型为作业相关(未交-2分、迟交-1分
- 后端保留 `add_conduct_points` 接口(已有),通过 `related_type="homework"` 关联
- 角色权限不变:班主任 + 学习委员
### 4. 考勤管理改版(学生方格扣分制)
- 前端 `attendance.php` 重写UI
- 顶部日期选择器
- 主体区域学生方格网格flex-wrap 布局每行7个
- 每个方格显示学生姓名,点击可选中(高亮变红表示缺勤扣分)
- 底部工具栏:全选/取消、批量选择状态(缺勤/迟到/请假)、提交按钮
- 下方保留历史记录表格
- 后端考勤逻辑不变,新增批量提交支持(或前端循环调用现有单个添加接口)
- 扣分规则不变:缺勤-5分、迟到-2分、请假-1分
### 5. 家长手机号权限控制
- `frontend/admin/students.php` 表格中 `家长手机号` 列仅 `班主任` 角色可见
- 非班主任角色显示为 `***` 或隐藏该列
- 新增/导入学生表单中的手机号字段保持不变(任何有学生管理权限的角色都能录入)
### 6. 附带修复
- 修复 `dashboard.php` 密码链接 `passwork.php``password.php`(如果导航模板方案未覆盖的话)
- 统一所有角色判断为 `学习委员`(当前 homework.php 用 `科代表`
## 影响
- **受影响的规范**:管理端导航、作业管理、考勤管理、学生管理
- **受影响的代码**
- `frontend/includes/nav.php`: 新建 - 统一导航栏模板
- `frontend/admin/dashboard.php`: 移除硬编码导航栏,引入 nav.php
- `frontend/admin/students.php`: 移除硬编码导航栏,引入 nav.php手机号列增加角色判断
- `frontend/admin/conduct.php`: 移除硬编码导航栏,引入 nav.php
- `frontend/admin/homework.php`: 完全重写 - 改为加减操行分模式
- `frontend/admin/attendance.php`: 完全重写 - 改为学生方格扣分制
- `frontend/admin/history.php`: 移除硬编码导航栏,引入 nav.php
- `frontend/admin/subjects.php`: 移除硬编码导航栏,引入 nav.php
- `frontend/admin/admins.php`: 移除硬编码导航栏,引入 nav.php
- `frontend/admin/password.php`: 移除硬编码导航栏,引入 nav.php
- `frontend/assets/css/admin.css`: 新增学生方格网格样式