一个功能强大、界面优雅的看板式任务管理工具,支持多项目管理、拖拽排序、实时协作等功能。基于 React + TypeScript 构建,提供流畅的用户体验。
- 拖拽式操作: 支持卡片在列间拖拽移动,操作直观流畅
- 自定义列: 可自由添加、编辑、删除看板列,支持自定义颜色主题
- 卡片详情: 完整的卡片编辑功能,支持标题、描述、完成状态等
- 快速添加: 一键快速添加新卡片,提升工作效率
- 项目切换: 支持多个项目并行管理,一键切换不同工作空间
- 默认模板: 提供个人备忘、工作项目、学习计划等默认项目模板
- 项目管理: 完整的项目增删改功能,支持项目描述和时间追踪
- 关键词搜索: 支持按标题和描述内容搜索卡片
- 列筛选: 可按指定看板列筛选显示卡片
- 实时过滤: 搜索结果实时更新,无需等待
- 活动追踪: 记录所有操作历史,包括卡片创建、移动、完成等
- 统计面板: 显示项目进度、完成率等关键指标
- 数据导出: 支持导出看板数据,便于备份和分析
- 现代化设计: 采用 Radix UI 组件库,界面清爽专业
- 响应式布局: 适配不同屏幕尺寸,支持移动端访问
- 主题定制: 支持深色模式和自定义颜色主题
- 流畅动画: 精心设计的交互动画,提升用户体验
- 前端框架: React 18.3.1 + TypeScript
- 构建工具: Vite 6.3.5 (快速开发与构建)
- UI 组件: Radix UI (无障碍、可定制的组件库)
- 拖拽功能: React DnD (强大的拖拽交互)
- 样式方案: Tailwind CSS (原子化CSS框架)
- 状态管理: Custom Hooks + LocalStorage
- 图标库: Lucide React (现代化图标)
- 通知系统: Sonner (优雅的Toast通知)
- Node.js >= 16.0.0
- npm >= 7.0.0
# 安装依赖
npm install
# 启动开发服务器
npm run dev
# 构建生产版本
npm run build访问 http://localhost:3000 即可使用应用。
ZeTodo/
├── src/
│ ├── App.tsx # 主应用组件
│ ├── main.tsx # 应用入口
│ ├── components/ # 组件目录
│ │ ├── ui/ # 基础UI组件(Radix UI)
│ │ ├── KanbanColumn.tsx # 看板列组件
│ │ ├── KanbanCard*.tsx # 各种卡片组件
│ │ ├── ProjectSelector.tsx # 项目选择器
│ │ ├── SearchFilter.tsx # 搜索过滤组件
│ │ ├── ActivityPanel.tsx # 活动面板
│ │ ├── StatisticsPanel.tsx # 统计面板
│ │ ├── ExportMenu.tsx # 导出菜单
│ │ └── ... # 其他功能组件
│ ├── hooks/ # 自定义Hooks
│ │ ├── useKanbanStore.ts # 看板状态管理
│ │ ├── useProjectStore.ts # 项目状态管理
│ │ ├── useAutoScroll.ts # 自动滚动Hook
│ │ └── useLocalStorage.ts # 本地存储Hook
│ ├── types/
│ │ └── kanban.ts # TypeScript类型定义
│ ├── styles/ # 样式文件
│ └── guidelines/ # 开发指南
├── package.json # 项目配置
├── vite.config.ts # Vite配置
├── index.html # HTML模板
└── README.md # 项目说明
应用使用浏览器 LocalStorage 进行数据持久化,包括:
- 看板数据:
kanban-board-{projectId} - 活动记录:
kanban-activities-{projectId} - 项目列表:
kanban-projects - 当前项目:
kanban-current-project
数据格式遵循 TypeScript 类型定义,确保类型安全。
- 创建项目: 点击项目选择器创建新的工作空间
- 管理看板列: 添加、编辑、删除看板列,设置颜色主题
- 操作卡片: 通过拖拽移动卡片,双击编辑详情
- 搜索筛选: 使用搜索栏快速定位所需卡片
- 数据导出: 通过导出菜单备份项目数据
- 活动追踪: 查看所有操作历史和项目进度
- 批量操作: 支持多选和批量操作卡片
// 在 types/kanban.ts 中扩展 Card 接口
export interface Card {
// ... 现有属性
priority?: 'low' | 'medium' | 'high';
tags?: string[];
}修改 src/components/ColumnColorPicker.tsx 中的颜色配置:
const colorOptions = [
{ name: 'purple', class: 'bg-purple-100', label: '紫色' },
// 添加更多颜色选项
];欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 创建特性分支:
git checkout -b feature/AmazingFeature - 提交更改:
git commit -m 'Add some AmazingFeature' - 推送分支:
git push origin feature/AmazingFeature - 提交 Pull Request
- 遵循 React Hooks 最佳实践
- 使用 TypeScript 严格模式
- 组件采用函数式设计
- 状态管理基于自定义 Hooks
- UI 组件基于 Radix UI 构建
本项目基于 MIT 许可证开源。
用 ❤️ 打造的现代化任务管理工具
