8e9d108995
Tauri 2 + React:任务列表、快捷方式、番茄钟、系统托盘、钉子穿透模式等。 Co-authored-by: Cursor <cursoragent@cursor.com>
91 lines
4.0 KiB
Markdown
91 lines
4.0 KiB
Markdown
# DeskFloat 开发进度
|
||
|
||
最后更新:2026-05-25
|
||
|
||
## 总体状态:MVP 完成 ✅
|
||
|
||
7 个里程碑全部完成,可运行/可构建,待真实环境联调与样式打磨。
|
||
|
||
---
|
||
|
||
## 里程碑详情
|
||
|
||
### 1. 项目骨架 ✅
|
||
- [x] `package.json` / `tsconfig.json` / `vite.config.ts`
|
||
- [x] `src-tauri/Cargo.toml` / `tauri.conf.json` / `build.rs`
|
||
- [x] `src-tauri/capabilities/default.json`(窗口/fs/shell/notification/global-shortcut 等权限)
|
||
- [x] 应用图标:用 `mmx image generate` 生成紫蓝玻璃风格 256² PNG,再用 `npx tauri icon` 转出 ICO/ICNS/各分辨率 PNG
|
||
- [x] 透明无边框窗口配置(decorations: false, transparent: true, alwaysOnTop, skipTaskbar)
|
||
- [x] `data-tauri-drag-region` 拖拽热区
|
||
|
||
### 2. JSON 持久化 + Zustand ✅
|
||
- [x] `storage.rs`:`AppState` 结构 + `data_path/ensure_data_file/read_state/write_state`
|
||
- [x] 启动时若 `data.json` 不存在则写入默认值(含 2 个示例快捷方式)
|
||
- [x] `commands.rs`:`load_state` / `save_state` 双向通道
|
||
- [x] `useAppStore.ts`:Zustand 全局 store + 300ms 防抖落盘
|
||
- [x] 启动 hydrate → store 落地 → `ready` 标志门控渲染
|
||
|
||
### 3. 任务列表 ✅
|
||
- [x] 工具栏触发按钮 `TasksTrigger`(含未完成数量徽标)
|
||
- [x] 展开面板 `TasksPanel`:输入框(回车新增)+ 列表
|
||
- [x] 单条任务:勾选、双击编辑、悬停显示删除/编辑按钮
|
||
- [x] @dnd-kit 拖拽排序
|
||
- [x] "清除已完成"批量动作
|
||
|
||
### 4. 自定义快捷按钮 ✅
|
||
- [x] `ShortcutsBar`:工具栏内横向滚动按钮区
|
||
- [x] `ShortcutsPanel`:管理面板(列表 + 增删改)
|
||
- [x] `ShortcutEditor`:编辑表单(名称 / 类型 / 目标 / 参数 / 工作目录 / 图标网格)
|
||
- [x] 4 种执行器:
|
||
- `url` → 前端 `@tauri-apps/plugin-opener`
|
||
- `app` / `cmd` / `powershell` → Rust `runner.rs::execute`(带 `CREATE_NO_WINDOW` 防控制台闪烁)
|
||
- [x] 27 个 lucide 图标白名单可选(避免引入全量包)
|
||
|
||
### 5. 番茄钟 ✅
|
||
- [x] `pomodoroStore.ts`:阶段(work/break)+ 剩余秒 + tick 逻辑
|
||
- [x] `PomodoroIndicator`:工具栏指示器(脉冲点 + MM:SS)
|
||
- [x] `PomodoroPanel`:开始/暂停/重置 + 进度条 + 可调工作/休息分钟
|
||
- [x] 阶段切换自动调用 `notify_user` 发系统通知
|
||
- [x] 监听 `deskfloat:toggle-pomodoro` 自定义事件(响应全局快捷键)
|
||
|
||
### 6. 设置 + 全局快捷键 + 自启 ✅
|
||
- [x] `SettingsPanel`:置顶 / 透明度 / 自启 / 数据目录入口
|
||
- [x] 三个全局热键编辑(`showHide` / `newTask` / `togglePomodoro`)
|
||
- [x] `useHotkeys.ts`:`register` + `unregisterAll`,配置变更时重新注册
|
||
- [x] 透明度通过 CSS 变量 `--bg-opacity` 实时刷新
|
||
- [x] 置顶通过 `set_always_on_top` 命令同步到窗口
|
||
- [x] 开机自启使用 `tauri-plugin-autostart`
|
||
|
||
### 7. 打磨 ✅
|
||
- [x] 折叠态(180×40)/ 正常态(560×56)/ 展开态(自适应)三档窗口尺寸动态切换(`set_window_size`)
|
||
- [x] 抽屉式面板下滑动画
|
||
- [x] 自定义 toggle / range 控件样式
|
||
- [x] README + 当前 PROGRESS 文档
|
||
- [x] 前端 `tsc -b && vite build` 通过:bundle 245 KB JS / 17 KB CSS(gzip 后 77 KB / 3.6 KB)
|
||
- [x] 后端 `cargo check` 通过
|
||
|
||
---
|
||
|
||
## 验证清单(手工 QA TODO)
|
||
|
||
下次需要在真机上跑 `npm run tauri:dev` 后逐项验证:
|
||
|
||
- [ ] 窗口透明 + 置顶 + 拖动正常
|
||
- [ ] 任务增删改查 + 拖拽排序持久化
|
||
- [ ] 4 种快捷方式分别执行成功(URL/notepad/cmd echo/PS)
|
||
- [ ] 番茄钟阶段切换通知到达
|
||
- [ ] 3 个全局快捷键在窗口失焦时仍生效
|
||
- [ ] 修改快捷键 → 旧热键释放、新热键注册
|
||
- [ ] 开机自启开关可来回切换
|
||
- [ ] `npm run tauri:build` 出 MSI / NSIS 安装包并能安装运行
|
||
|
||
---
|
||
|
||
## 后续可选增强(非 MVP)
|
||
|
||
- ~~系统托盘 + 右键菜单(show/hide/quit)~~ ✅ 已实现(`src-tauri/src/tray.rs`)
|
||
- 番茄钟"专注次数"统计(用户在初版选择不要)
|
||
- 快捷方式拖拽排序
|
||
- 多主题切换(浅色 / 高对比)
|
||
- 多窗口/多个独立工具栏布局
|