chenshoulin
|
43e813b93a
|
docs: 更新批量操作与备份恢复说明,新增 ADR-006
- README 补充批量添加/删除、导入前自动备份、归档恢复与 CI 说明
- ADR-006 记录覆盖式操作前快照、id 查重与未保存确认等决策
|
2026-10-19 17:21:53 +08:00 |
|
chenshoulin
|
8721e8ab0b
|
feat: 补齐今日视图待办组、卡片键盘操作、深色模式
今日视图
- 补上「待办」组。此前只收 逾期 / 今天到期 / 进行中,导致待办列里没设
截止日期的任务在今日视图里完全消失 —— 用户明明有一堆事没做,却看到
「今天没有待办事项」。现在只要任务未完成且未归档,就必定出现在某个
分组里(归属优先级:逾期 > 今天到期 > 进行中 > 待办)。
- 统计卡片改为与分组一一对应(逾期 / 今天到期 / 进行中 / 本周完成),
不再用「今日待办」这种把四组混在一起、与列表长度对不上的指标。
键盘操作(可访问性)
- 卡片可聚焦(Tab / 点击),← → 换列、↑ ↓ 列内调序、Enter 打开详情。
- 换列时追加到目标列末尾:用全量长度而不是可见下标,筛选态下也安全;
列内调序要求该列渲染的是全量,否则禁用(与拖拽的规则一致)。
- 移动后手动恢复焦点 —— 卡片跨列会被重建,不恢复的话连续按键会失效。
深色模式
- 三态:跟随系统 / 浅色 / 深色,选择持久化到 localStorage。
- index.html 内联脚本在首帧之前应用主题,避免深色下闪白。
- 用 @custom-variant dark 做 class 控制(而不是纯 media query),
才能支持「强制浅色」;html 的 color-scheme 让原生控件与滚动条跟随。
验证:单元测试 480 个、端到端测试 25 个全部通过,lint 与构建无错误。
截图脚本新增深色与移动端深色两组,便于后续对照。
|
2026-10-18 17:48:55 +08:00 |
|
chenshoulin
|
442cbbd734
|
style: 重做界面视觉与信息层级
先截图审视现状,再针对性修改。主要问题与改动如下。
工具栏
- 标签筛选从「平铺全部标签」改为下拉面板,标签多时不再换行挤爆工具栏
- 备份与快捷键帮助移到导航栏 —— 它们是应用级操作,不该挤在看板工具栏里,
顺带修好了「? 帮助只在看板可用」的问题
- 到期统计(今日到期 / 逾期)合并为可点击的筛选入口,去掉两个独立控件
- 移动端工具栏从占半屏降到三行紧凑布局
卡片
- 优先级从彩色胶囊改为左侧色条,扫视一列时比读文字更快分辨轻重
- 元信息改为「优先级 · 日期 · 标签」的轻量文本行,不再三种胶囊叠在一起
- 完成态用勾选图标 + 降低不透明度
布局
- 今日视图限宽居中(max-w-3xl):此前 1440px 下卡片被拉满整屏,
标题与元信息之间出现大片空白
- 修复移动端卡片被压成细条:TaskCard 的 overflow-hidden(用于裁切左侧色条)
会让 flex 项的最小尺寸解析为 0,补 shrink-0 修正;
同时改为移动端按内容高度堆叠、桌面端列内滚动
其他
- 导航栏品牌改用看板图标,消除「看板」重复出现两次
- 统一卡片阴影、圆角与键盘焦点样式
- 新增 scripts/screenshot.mjs,便于后续对照审视视觉改动
验证:单元测试 452 个、端到端测试 23 个全部通过,lint 与构建无错误。
|
2026-10-18 14:05:06 +08:00 |
|
chenshoulin
|
4e064e82ea
|
feat: 个人轻量看板工具 MVP
从零实现一个 local-first 的个人任务看板,数据只存在浏览器本地,不依赖后端。
功能
- 固定三列看板(待办 / 进行中 / 已完成),支持拖拽改状态与列内排序
- 快速新增、详情编辑、删除撤销、已完成归档
- 搜索与筛选(关键词 / 优先级 / 标签 / 今日到期 / 逾期)
- 今日视图:按紧急度分组(逾期 > 今天到期 > 进行中)+ 统计卡片
- 导出导入 JSON;启动时自动留快照,保留最近 3 份
- 键盘快捷键(N / 「/」/ ? / Esc)
- PWA:可安装、离线可用、更新提示
技术要点
- 持久化采用 TaskRepository 端口 + 整份快照读写,schemaVersion 迁移表
显式登记升级规则(当前 v2,v1 -> v2 为归档功能补 archivedAt)
- 同列排序用相邻中点插入,间距不足时按列 normalize,避免浮点精度耗尽
- 拖拽只消费 Sortable 的事件,store 保持唯一数据源,不接管数据
- 数据损坏时先备份到 *.corrupt.<时间戳> 再报错,不覆盖用户数据
- 引入 vue-router 拆分看板与今日两个视图(见 docs/adr.md ADR-005)
验证
- 单元测试 437 个(33 个文件),行覆盖率 96.8%
- 端到端测试 23 个(Playwright),含真实拖拽与断网离线场景
- npm run build 通过,产物可静态托管
注:部署时需配置 SPA 回落,否则直接访问 /today 会 404(详见 README)。
|
2026-10-18 11:59:49 +08:00 |
|