fix(island): 将组件与提醒合入岛体并重写布局设置
This commit is contained in:
1 parent
ead66f0b93
commit
c83b03d8e6
10 files changed
+1591
-551
No files matched your search
@@ -52,6 +52,18 @@
|
||||
|
||||
本机方案存 config.json 的决定予以保留:这是设备个体偏好,不增加服务端配置或同步通道。通知/作业/叫人使用同一个 IslandApp.vue 实例及原状态机,custom 模式仅通过 Teleport 把它放到组件槽;不是固定层盖在自定义层上,也没有第二个岛窗口。主要行禁用提醒时回落到允许提醒的第一行;全部禁用时不展示提醒槽。多种内容仍服从原队列/列表规则,不会在多个位置重复投递。
|
||||
|
||||
## 自定义灵动岛界面重写
|
||||
|
||||
按后续反馈,将组件栏明确收进同一个岛体:普通组件和提醒共用外层背景、圆角与阴影,嵌入提醒只保留原渲染器的内容、动画与操作,去掉原卡片的第二层背景形状。每行的普通组件与提醒上下排布,岛宽取两者中较宽的一项,避免横向累加造成留白。没有消息的通知、作业、叫人组件不占位。固定模式继续使用原有完整卡片。
|
||||
|
||||
编辑界面重写为左侧组件库、中央岛内预览、右侧当前对象设置。组件库按日常信息、消息提醒、组合容器分组,采用统一 SVG 线性图标;组件设置分为内容、外观、高级三个标签,独立外观关闭时禁用覆盖项。行名称、间距、主要行和通知开关放在行设置中,整体配色、缩放和多行选项放在整体外观中;方案复制与导入导出收在顶部菜单。
|
||||
|
||||
主设置页以两个选项选择经典或自定义灵动岛,自定义模式直接进入「编辑岛内组件」,隐藏不适用的固定宽高等选项。退出全屏编辑时,先在隐藏期间等待常态组件重新测量,避免保留行工具栏的空白高度;自然宽度测量也不再被上一轮获准窗口宽度撑住。分离多行时按实际外层留白计算尺寸。
|
||||
|
||||
新增回归检查设置标签隔离、共用岛体且无第二层形状、无消息不占位,以及退出编辑后的自然内容尺寸;关闭提醒通过原渲染器的「知道了」按钮验证。最终截图留档在 `.cache/island-rewrite-final-shots/`。
|
||||
|
||||
本轮视觉回归通过 102/102,随后补充的岛宽修正与展开可见性检查通过后台 28/28,并通过二次启动。后台最终几何检查先等待原渲染器的形变兜底和尺寸防抖完成,避免在隐藏窗口的中间动画帧判断最终尺寸。客户端构建、类型检查、lint、改动文件格式检查及文档严格构建均通过。
|
||||
|
||||
## 十项自检
|
||||
|
||||
1. 第三周周三第二节:ClassPlan 的规则与 ClassPlanEntry 的 timeLayoutItemId → `resolveActiveClassPlan` → `loadTermContext/resolveCurrentWeek` → `projectPlan` → `/schedules/active-week` → `refreshIslandSchedule` 的整周 IndexedDB 缓存 → `recomputeClassState` 发送当天课程 → `ComponentNode.vue` 课程表组件。
|
||||
|
||||
+17
-14
@@ -1566,22 +1566,25 @@ makensis 临时目录、ClassIsland 路径与日志编码等)。这里只列
|
||||
[LessonsService 的启用解析](https://github.com/ClassIsland/ClassIsland/blob/master/ClassIsland/Services/LessonsService.cs)、
|
||||
[组件文档](https://docs.classisland.tech/app/component/)。复刻能力与语义,不引入 .NET 或已退役插件。
|
||||
|
||||
| 需求 | 实现入口 | 验收入口 |
|
||||
| -------------------------------------------- | --------------------------------------------- | --------------------------------------- |
|
||||
| 日课表、1–9 周轮换、四种时间点、显式位置外键 | 时间表与课表编辑页、class-plans 模块 | `packages/server/scripts/verify-v14.ts` |
|
||||
| 换课/临时层/预定/群组,原表不变 | schedules 与 class-plan-groups | 同上 |
|
||||
| 本机多行、多方案、组件独立设置与触摸拖动 | 设置→灵动岛→编辑布局;托盘同名入口 | `verify:desktop` 的组件布局用例 |
|
||||
| 容器、规则隐藏、四档字体与外观覆盖 | 编辑器右侧设置 | 同上 + 显式视觉回归 |
|
||||
| 通知/作业/叫人组件 | 主要且允许通知的行,复用 IslandApp 卡片与操作 | 原有固定模式回归 + 组件布局回归 |
|
||||
| 换服务端重置退避与令牌 | config-events / client-agent | 本地假服务端心跳用例 |
|
||||
| 即时远控与回执 | clients / client-agent | 冒烟假执行器;不调用系统命令 |
|
||||
| 下载与安装阶段进度 | 客户端管理页/桌面关于页 | 进度 GET、ADMIN 房间事件、IPC |
|
||||
| 集体成绩与转出过滤 | grades / lib/students | 临时数据库隐私与范围负断言 |
|
||||
| 自动学年升级与可配周数 | 学期周次页 | dry-run、快照与事务幂等 |
|
||||
| 自启动按钮与日期归档 | 系统设置页/通知日期选择器 | 注入系统适配器、Web 回归 |
|
||||
| 四种内置岗位组与只读名单 | 权限组页/学生名单页 | 跨年级、跨部 403 |
|
||||
| 需求 | 实现入口 | 验收入口 |
|
||||
| -------------------------------------------- | ---------------------------------------------- | --------------------------------------- |
|
||||
| 日课表、1–9 周轮换、四种时间点、显式位置外键 | 时间表与课表编辑页、class-plans 模块 | `packages/server/scripts/verify-v14.ts` |
|
||||
| 换课/临时层/预定/群组,原表不变 | schedules 与 class-plan-groups | 同上 |
|
||||
| 本机多行、多方案、组件独立设置与触摸拖动 | 设置→灵动岛→编辑岛内组件;托盘同名入口 | `verify:desktop` 的组件布局用例 |
|
||||
| 容器、规则隐藏、四档字体与外观覆盖 | 右侧按内容/外观/高级分栏;行设置和整体外观独立 | 同上 + 显式视觉回归 |
|
||||
| 通知/作业/叫人组件 | 主要且允许通知的行内,共用岛体和原提醒操作 | 原有固定模式回归 + 组件布局回归 |
|
||||
| 换服务端重置退避与令牌 | config-events / client-agent | 本地假服务端心跳用例 |
|
||||
| 即时远控与回执 | clients / client-agent | 冒烟假执行器;不调用系统命令 |
|
||||
| 下载与安装阶段进度 | 客户端管理页/桌面关于页 | 进度 GET、ADMIN 房间事件、IPC |
|
||||
| 集体成绩与转出过滤 | grades / lib/students | 临时数据库隐私与范围负断言 |
|
||||
| 自动学年升级与可配周数 | 学期周次页 | dry-run、快照与事务幂等 |
|
||||
| 自启动按钮与日期归档 | 系统设置页/通知日期选择器 | 注入系统适配器、Web 回归 |
|
||||
| 四种内置岗位组与只读名单 | 权限组页/学生名单页 | 跨年级、跨部 403 |
|
||||
|
||||
天气组件本轮不做:没有可离线使用的数据源,验收不依赖外网。
|
||||
自定义组件栏位于灵动岛内部,提醒内容也在同一个岛体内展开,不再嵌套另一张带底色的岛卡片。
|
||||
编辑器左侧按用途添加组件、中央预览岛内排列、右侧只显示当前对象的设置;方案操作收在顶部菜单。
|
||||
主设置页选择经典或自定义灵动岛,自定义模式的组件尺寸、配色在编辑器中调整,主设置页保留位置与提醒选项。
|
||||
迁移保留旧 Schedule 作为审计来源;新门面只写新模型。重复占用同一时间点的旧行无法同时成为一节课,
|
||||
迁移选择同一时段 ID 最小的行,全部原行仍保留;旧数据未记录的群组、临时层和时间点名称无法恢复。
|
||||
|
||||
|
||||
Reference in new issue
Block a user