feat(ui): 补齐课程提醒进度并内嵌编辑器与重构后台导航

This commit is contained in:
LoveChengke committed 2026-10-17 21:21:28 +08:00
1 parent 3379eb975c
commit 536379036a
34 files changed
+1559 -455

No files matched your search

+24 -1
View File
@@ -182,6 +182,29 @@ LessonReminderTracker 只读取服务端已解析的当天 ScheduleDto 投影,
课前 60 秒开始:3 秒强调遮罩后显示实时秒数和课程时间,持续到上课;上课遮罩 5 秒后退出。
下课先提示 2 秒,再预告下节课程 10 秒;当天最后一课下课只提示 5 秒。不补弹已经过去的上下课事件。
刷新同一课表不会重置遮罩,临时换课立即更新名称,移除课程或退出账号会取消提醒。
提醒是独立本机状态,不写入教师通知、未读计数或通知队列;已经打开的通知详情和紧急提示优先展示。
提醒是独立本机状态,不写入教师通知、未读计数或通知队列;用户主动打开的通知详情和紧急提示优先展示,自动补弹的普通通知不再挡住上下课提醒。
经典与自定义两种布局使用同一个 LessonReminderContent;原生窗口仍为固定画布,自定义岛用自然尺寸缩放适配。
本次只移植课表可见提醒和动画,不自动启用语音与音效。
## 课程进度、即将下课与主窗口编辑(本批补齐)
- 对照上游 `LessonControlExpanded.axaml` 的 `LeftSeconds` 和 `ProgressPercent`,课程组件增加持续的本节进度条与距下课时间,课间自动显示下一课;起止时间保持在课程名右侧,按秒更新。
- 倒计时组件支持自动上下课、本节下课、下一节课、放学四种目标,按当天课表排序,排除其它日期。已有配置缺少新字段时自动补齐。
- 默认最后 60 秒显示即将下课倒数;经典岛在上课遮罩后持续显示本节课程、剩余时间与进度,自定义岛平时由组件显示进度,时间点提醒接管同一个岛体。
- 设置→提醒提供课前、上课、即将下课、下课独立开关,以及经典岛课中进度开关;课前提前 5–1800 秒,下课倒数提前 5–600 秒,保存后即刻生效。
- 自定义编辑器移到主窗口 `/settings/island/editor`;设置和兼容 IPC 入口都导航到主窗口,浮岛不再被扩大成全屏编辑窗口。主窗口保留侧栏,画布按内容与可用空间自动缩放,支持触摸跨行拖动、容器和独立常态/展开内容。
- 编辑使用独立预览,不上报桌面岛尺寸;配置保存按顺序执行。关闭编辑返回灵动岛设置。
## 管理后台界面与二级菜单
按用户确认,本批“重写后端”指 Web 管理后台界面与导航。参考 art-design-pro 的 sidebar-menu、breadcrumb、header-bar,重写工作区框架,服务端接口、鉴权和既有业务页面保留。
- 工作台、教学事务、班级与人员、设备运维、系统管理五个一级分组;原有全部业务入口位于二级菜单。
- 菜单直接读取路由的标题、图标、角色与生效权限;空分组隐藏,搜索结果和页签也按相同权限过滤,深链继续经过路由守卫。
- 增加面包屑、最多 20 个可关闭页签、关闭其它页签、Ctrl+K 功能搜索;页签保留该页面的完整查询参数。
- 统一浅/深主题下的侧栏、顶栏、卡片、表格和页面留白;仪表盘增加真实账号欢迎区与按权限显示的快捷入口。手机端使用同一棵二级菜单的抽屉。
- 回归使用独立临时 SQLite、临时教师和班级;不读取或改写真实班级业务数据。
### 老师消息阅读背景
通知、作业、叫人内容展示时,两种布局统一使用 `#202020` 不透明背景,原生窗口透明度临时为 1,玻璃风格和用户设置的透明度不会降低消息可读性。常驻组件、空闲展开和课程提醒仍按原有透明度显示,收起消息后恢复本机透明度偏好。
+6
View File
@@ -1604,3 +1604,9 @@ makensis 临时目录、ClassIsland 路径与日志编码等)。这里只列
迁移选择同一时段 ID 最小的行,全部原行仍保留;旧数据未记录的群组、临时层和时间点名称无法恢复。
实施选择、问题根因与实测结果见 [实施记录](dev/20261017-implementation.md)。
## 2026-10-17 课程状态与管理后台导航
课程右侧信息与本节进度参考 [LessonControlExpanded](https://github.com/ClassIsland/ClassIsland/blob/master/ClassIsland.Core/Controls/LessonsControls/LessonControlExpanded.axaml)。新增课中距下课、末段秒数倒数及独立提醒设置;主窗口中的自定义编辑页保留组件拖动与方案管理。
管理后台结构参考 [art-design-pro](https://github.com/Daymychen/art-design-pro) 的 `art-sidebar-menu`、`SidebarSubmenu`、`art-breadcrumb` 与 `art-header-bar`;采用 Vue 3 / Element Plus 原有技术栈,重新实现分组菜单、面包屑、页签和搜索,业务接口和权限校验保持原有入口。