feat: 自动保存/移除撤销与红点, 间隔合并改进(DAILY/稀疏/交错拆分), 删死代码, 更新测试与文档
- organize: seriesKey 移除 weekday, 解锁每3天等 DAILY 序列合并 - organize: fitSeries 放宽阈值(稀疏序列如 BUS LAW Workshop 合并) - organize: 新增 splitIntoChains, GCD=1 的交错多班次拆为多个系列 - useCalendar: 移除 dirty/history/undo/snapshot/markSaved 死代码 - HeaderBar: 移除撤销按钮与红点●, 下载兜底序列化当前状态 - 测试: 42 项(原32), 覆盖 DAILY/稀疏/交错拆分/两两和候选等场景 - 文档: README 精简, 新增 docs/organize-algorithm.md 与 auto-save-design.md - 保留移动端 CSS 适配
This commit is contained in:
18
README.md
18
README.md
@@ -5,11 +5,11 @@
|
||||
## 功能
|
||||
|
||||
- 拖入即用:拖拽或选择 `.ics` 文件,浏览器内直接解析
|
||||
- 智能去重:自动检测重复模式,将扁平事件合并为 RRULE 重复事件 + EXDATE
|
||||
- 智能去重:检测事件间隔(每周 / 每两周 / 每 N 天),将扁平事件合并为 RRULE 重复事件 + EXDATE;交错的多班次自动拆分为多个系列
|
||||
- 自动保存:所有编辑即时生效,下载时兜底序列化最新状态,无需手动保存
|
||||
- 可视化编辑:编辑标题/地点/时间/重复规则,点击网格切换排除日期
|
||||
- 拆分事件:把一个重复事件按日期拆成前后两段
|
||||
- 增删事件:新增单次/重复事件,删除任意事件
|
||||
- 撤销重做:快照式 undo/redo,最多 50 步
|
||||
- 导出 ICS:下载整理后的 `.ics`,可直接导入日历应用
|
||||
|
||||
## 项目结构
|
||||
@@ -25,21 +25,25 @@ timeTableFix/
|
||||
│ ├── main.js 应用挂载
|
||||
│ ├── App.vue 布局装配
|
||||
│ ├── composables/
|
||||
│ │ └── useCalendar.js 中心 store + 快照 undo/redo
|
||||
│ │ └── useCalendar.js 中心 store(自动保存,无 undo)
|
||||
│ ├── lib/
|
||||
│ │ ├── weekday.js 星期常量与工具
|
||||
│ │ ├── date.js 日期工具
|
||||
│ │ ├── colors.js 事件配色
|
||||
│ │ ├── uuid.js UUID 生成(含非安全上下文回退)
|
||||
│ │ ├── ical-io.js ICS 文本 <-> plain model
|
||||
│ │ ├── recur.js RRULE 网格展开
|
||||
│ │ ├── organize.js GCD 去重算法
|
||||
│ │ ├── organize.js 间隔去重 + 链拆分算法
|
||||
│ │ ├── event-factory.js 事件构造工厂
|
||||
│ │ └── split.js 事件拆分逻辑
|
||||
│ └── components/
|
||||
│ ├── HeaderBar.vue 顶栏:整理/撤销/重做/导入/下载
|
||||
│ ├── HeaderBar.vue 顶栏:整理/导入/下载
|
||||
│ ├── DropZone.vue 拖拽/选择文件
|
||||
│ ├── EventList.vue 侧栏事件列表
|
||||
│ ├── EventDetail.vue 编辑表单 + 拆分
|
||||
│ └── OccurrenceGrid.vue 排除日期网格
|
||||
│ ├── OccurrenceGrid.vue 排除日期网格
|
||||
│ ├── MonthPreview.vue 月预览
|
||||
│ └── WeekPreview.vue 周预览
|
||||
├── test/ Vitest 单元测试
|
||||
│ ├── golden-org.ics 测试用例(61 事件的真实课表)
|
||||
│ ├── weekday.test.js
|
||||
@@ -47,6 +51,8 @@ timeTableFix/
|
||||
│ ├── recur.test.js
|
||||
│ └── organize.test.js
|
||||
└── docs/ 设计文档
|
||||
├── organize-algorithm.md 间隔合并与链拆分算法详解
|
||||
└── auto-save-design.md 自动保存设计
|
||||
```
|
||||
|
||||
## Ubuntu 从零安装
|
||||
|
||||
Reference in New Issue
Block a user