feat(board): 已完成列按完成时间倒序排列
- 已完成列的展示顺序改由 completedAt 倒序决定(新增 sortCompletedDesc 纯函数), 最近完成的永远在最上面;缺 completedAt 的旧数据排在有完成时间的任务之后, 彼此退回 sortOrder 倒序 - 该列停用列内排序:拖拽与 ↑↓ 只能跨列,列头标注「按完成时间倒序」说明口径 - 数据层不动:不迁移 sortOrder,导入导出、快照结构与 schemaVersion 均不变, 倒序只在 BoardView.visibleColumns 单点发生 - 新增 ADR-009,并在 ADR-008 的否决项里标注被部分推翻 - 单测 705 → 738(sortOrder +5、BoardView +5、BoardColumn +1),README 同步
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
一个轻量的个人看板工具:打开即用、数据存在本地、不依赖后端。
|
||||
|
||||
- 固定三列:**待办 / 进行中 / 已完成**
|
||||
- **已完成列按完成时间倒序**:最近完成的永远在最上面(列内不支持手动调序)
|
||||
- 快速新增、拖拽排序、详情编辑、删除撤销;详情里可直接切换状态
|
||||
- **批量添加**:一次录入多行清单,整批共用目标列 / 优先级 / 标签 / 截止日期
|
||||
- **批量编辑**:多选后可统一移动列、改优先级、加/减标签、设截止日期、归档
|
||||
@@ -92,7 +93,8 @@ npm run dev
|
||||
| `↑` `↓` | 在列内上移 / 下移 |
|
||||
| `Enter` | 打开任务详情 |
|
||||
|
||||
在输入框内输入时不会触发全局快捷键。方向键移动在筛选态下只允许跨列(列内排序需要看到完整列表才有意义)。
|
||||
在输入框内输入时不会触发全局快捷键。方向键移动在筛选态下只允许跨列(列内排序需要看到完整列表才有意义);
|
||||
「已完成」列的列内顺序由完成时间决定,`↑` `↓` 在该列不生效(拖拽同理只能跨列)。
|
||||
|
||||
---
|
||||
|
||||
@@ -316,7 +318,7 @@ E2E 需要真实浏览器,默认不放进 CI(要求 runner 预装 Chrome)
|
||||
|
||||
## 测试
|
||||
|
||||
- 单元测试:705 个用例,覆盖 `src/` 下的纯逻辑与组件行为。
|
||||
- 单元测试:738 个用例,覆盖 `src/` 下的纯逻辑与组件行为。
|
||||
- 端到端测试:28 个用例,分两组运行 —— 交互类跑 dev server,PWA 类跑生产构建(Service Worker 只在构建产物中生成)。覆盖「新增 → 拖拽 → 完成 → 刷新保持」「批量添加」「多选批量删除 + 撤销」「导出 → 清空 → 导入还原」「删除撤销」「搜索筛选」「键盘快捷键与方向键移动」「深色模式切换」「今日视图」「离线打开」等主链路,每个用例使用独立的浏览器上下文。
|
||||
|
||||
```bash
|
||||
@@ -339,6 +341,7 @@ PLAYWRIGHT_CHANNEL=chromium npm run test:e2e # 用自带 Chromium(需先 npx
|
||||
|
||||
- 单用户、单设备,无协作与同步能力(离线可用,但多设备之间不会同步)。
|
||||
- 看板列固定为三列,不支持自定义。
|
||||
- 「已完成」列固定按完成时间倒序,不支持手动调序(拖拽与方向键只能跨列)。
|
||||
- 归档阈值固定为「已完成超过 7 天」,暂不可配置。
|
||||
- 今日视图的分组规则固定(逾期 > 今天到期 > 进行中 > 待办),不可自定义。
|
||||
- 统计只覆盖本周完成数等基础指标,没有趋势图或历史留存。
|
||||
|
||||
Reference in New Issue
Block a user