81dd92cf22b531f291e8f3f9e739f6452a79aad9
Todo Monitor
双视图待办管理工具——在无限画布上创建 Markdown 便签,一键切换为结构化监控大屏。
技术栈
| 层级 | 技术 |
|---|---|
| 前端 | Vue 3 + Composition API + TypeScript |
| 画布 | Konva.js |
| 状态管理 | Pinia |
| 构建 | Vite |
| 后端 | Express + better-sqlite3 |
| 数据库 | SQLite |
快速开始
# 启动后端(端口 3001)
cd backend
npm install
npm run dev
# 启动前端(端口 5173)
cd frontend
npm install
npm run dev
浏览器打开 http://localhost:5173。
核心功能
无限画布
- 双击空画布创建便签,支持 Markdown 编辑
- 拖拽便签移动 / 右下角缩放
- 滚轮缩放画布,空画布拖拽平移视角
- 分组框:拖拽绘制矩形区域,便签落入框内自动归属分组
监控大屏
- 便签自动解析为监控卡片,5 种类型:任务卡、里程碑卡、指标卡、倒计时卡、项目卡
- 看板 / 列表 / 网格三种布局
- 按状态、优先级、标签等维度筛选排序
- 统计概览栏:总数 / 进行中 / 已完成 / 逾期 / 阻塞
选择系统
- 指针 / 便签 / 分组 / 框选 四种工具模式
- Ctrl+点击选中对象,框选批量选中
- 选中多个对象后整体拖拽移动
语法解析
支持三种 Markdown 解析模式,详见 语法说明:
- YAML Front Matter — 结构化元数据
- 约定式 Markdown — 按自然书写风格自动识别
- 行内快捷字段 —
@字段名(值)快速标注
编辑器内 Ctrl+S 保存。
项目结构
todomonitor/
├── backend/
│ └── src/
│ ├── index.js # Express 入口
│ ├── db.js # SQLite 初始化
│ └── routes/
│ ├── notes.js # 便签 CRUD
│ ├── groups.js # 分组 CRUD
│ └── batch.js # 批量操作
├── frontend/
│ └── src/
│ ├── App.vue
│ ├── components/
│ │ ├── canvas/ # 画布视图组件
│ │ ├── dashboard/ # 大屏视图组件
│ │ ├── shared/ # 共享 UI 组件
│ │ └── layout/ # 导航栏
│ ├── stores/ # Pinia 状态管理
│ ├── utils/ # API 客户端 / 解析引擎
│ ├── types/ # TypeScript 类型
│ └── composables/ # 组合式函数
├── 需求.md
├── 语法说明.md
└── README.md
数据模型
便签 (notes)
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INTEGER | 主键 |
| content | TEXT | Markdown 内容 |
| x, y | REAL | 画布坐标 |
| width, height | REAL | 尺寸 |
| color | TEXT | 背景色 |
| group_id | INTEGER | 所属分组 |
| created_at | TEXT | 创建时间 |
| updated_at | TEXT | 更新时间 |
分组 (groups)
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INTEGER | 主键 |
| name | TEXT | 分组名称 |
| x, y | REAL | 坐标 |
| width, height | REAL | 尺寸 |
| color | TEXT | 边框颜色 |
| priority | INTEGER | 排序优先级 (0-99) |
Description
Todo Monitor 是一套画布 + 监控大屏双模式轻量化待办管理系统,融合自由画布脑图式记录与结构化数据看板两种工作流。
支持在无限画布中自由创建 Markdown 便签、拖拽分组排布,一键切换至监控视图自动解析任务指标,适用于个人任务规划、项目拆解、进度跟踪、需求梳理等场景,本地 SQLite 存储,开箱即用无需额外数据库服务。
134 KiB
Languages
Vue
79.4%
TypeScript
12.9%
JavaScript
6%
CSS
1.3%
HTML
0.4%