Commit Graph
6 Commits
  • 学年学期页面新增“设为当前”“归档”“撤销归档”,当前学期不能归档、删除或直接取消;已归档学期需先撤销才能重新设为当前。[BaseDataController.cs (line 286)](/E:/jiaowu/src/Jiaowu.Api/Controllers/BaseDataController.cs:286)
    切换后,其他学期自动变为历史态;已归档学期进一步弱化。所有主要学期选择器统一默认当前,并显示“当前 / 历史 / 已归档”。[academicTerms.ts (line 1)](/E:/jiaowu/web/src/utils/academicTerms.ts:1)
    桌面使用分层表格,390px 手机端改为独立学期卡片,操作不会再挤压表格。[BaseDataView.vue (line 211)](/E:/jiaowu/web/src/views/BaseDataView.vue:211)
    归档定义为“历史显示状态”,不是成绩冻结:补考成绩仍可录入并回写,已发布成绩仍可走成绩更正审批。
    已加入 SQLite 开发迁移、MySQL 正式迁移和切换/归档/撤销测试。[20260726143000_AcademicTermArchiving.cs (line 1)](/E:/jiaowu/src/Jiaowu.Api/Infrastructure/Persistence/Migrations/MySql/20260726143000_AcademicTermArchiving.cs:1)
  • ---
    成绩册 Excel 导入/导出 — 已完成
    
      后端 (GradesController.cs)
    
      GET /api/grades/sheets/{id}/template — 下载成绩导入模板
      - 根据成绩单的动态分项(GradeItems)生成对应的 Excel 列:学号 | 姓名 | 班级 | 平时成绩 | [分项1] | [分项2] | ... | 期末成绩 | 考试状态 | 备注
      - 预填已有学生信息和已有成绩
      - 附带填写说明工作表
    
      POST /api/grades/sheets/{id}/import — 从 Excel 导入成绩
      - 按学号匹配学生,批量更新平时成绩、分项成绩、期末成绩、考试状态、备注
      - 支持留空(不覆盖已有成绩)、0-100 范围校验、考试状态校验(正常/缺考/缓考/免修)
      - 导入后自动重新计算总评成绩和绩点
      - 仅限 Draft/Returned 状态的成绩单,仅限有编辑权限的用户
      - 错误时整批回滚,最多显示 50 条错误详情
    
      前端 (GradesView.vue)
    
      在成绩登记册底部操作栏新增两个按钮(仅在 canEdit 时显示):
      - 下载模板 — 调用 downloadApiFile 下载当前成绩单的 Excel 模板
      - Excel导入 — 通过隐藏 file input 选择 .xlsx 文件,调用 importExcel 上传
    
      工作流程
    
      1. 教师打开成绩单 → 点击「下载模板」
      2. 在 Excel 中填写/修改学生成绩
      3. 点击「Excel导入」选择文件上传
      4. 系统自动校验、合并成绩、重新计算总评 → 提示更新条数
      5. 成绩表刷新显示最新数据
    
    ✻ Crunched for 5m 50s
  • 已完成“成绩管理与学业档案”模块:
    教师批量录入平时、期中、期末成绩。
    自动计算总评、绩点和及格状态。
    支持缺考、缓考、免修。
    教师提交 → 学院审核/退回 → 校级发布。
    学生只能查看正式发布成绩。
    自动统计平均分、完成度、及格率和加权 GPA。
    SQLite 本地增量升级和 MySQL 正式迁移均已完成。
    分级权限在前后端同时校验。