# 滴答清单 - Vue3 任务管理应用

一个基于 Vue3 的现代化任务管理应用，提供直观的用户界面和完整的功能。

## ✨ 功能特性

- 📝 **任务管理**: 添加、编辑、删除任务
- ✅ **任务完成**: 一键标记任务完成状态
- 📁 **项目管理**: 创建和管理多个项目，每个任务归属于特定项目
- 🏷️ **任务类型**: 支持需求分析、文档编写、开发代码、测试、运维等类型
- 🎯 **优先级设置**: 支持高、中、低三个优先级
- ⏰ **时间管理**: 设置任务的开始时间和结束时间，自动计算工作时长
- ⏱️ **计时器功能**: 为没有设置时间的任务提供计时器，自动统计工作时长
- 📊 **工作分析**: 实时分析每日工作分布，包括项目分布、类型分布和时间统计
- 🔍 **任务过滤**: 按项目、状态和类型筛选任务
- 📈 **统计信息**: 实时显示任务完成情况和今日工作统计
- 💾 **数据管理**: 支持JSON格式的数据导出、导入和清空功能
- 🗂️ **菜单系统**: 清晰的功能分区，包括任务管理、工作分析和数据管理
- ⛶ **全屏模式**: 支持浏览器宽度全屏显示，充分利用屏幕空间
- ☁️ **服务器同步**: 支持多设备数据同步，数据安全存储在服务器
- 🔄 **本地存储**: 数据自动保存到浏览器本地存储，支持数据备份和恢复
- 📱 **响应式设计**: 完美适配桌面和移动设备
- 🎨 **现代化UI**: 美观的渐变背景和卡片式设计

## 🚀 快速开始

### 安装依赖

```bash
npm install
```

### 启动开发服务器

```bash
npm run dev
```

应用将在 `http://localhost:3000` 启动

### 构建生产版本

```bash
npm run build
```

### 预览生产版本

```bash
npm run preview
```

## 🛠️ 技术栈

- **Vue 3**: 使用 Composition API
- **Vite**: 快速的构建工具
- **VueUse**: 实用的 Vue 组合式函数
- **CSS3**: 现代化的样式设计
- **Node.js**: 后端服务器
- **Express**: Web 框架
- **Docker**: 容器化部署

## 🚀 快速部署

### 本地开发
```bash
# 安装依赖
npm install

# 启动开发服务器
npm run dev
```

### 生产部署
```bash
# 使用部署脚本（推荐）
./deploy.sh

# 或手动部署
npm install
npm run build
node server.js
```

### Docker 部署
```bash
# 使用 Docker Compose
docker-compose up -d

# 或使用 Docker
docker build -t worktime-app .
docker run -d -p 3001:3001 worktime-app
```

详细部署说明请参考 [PRODUCTION_DEPLOYMENT.md](./PRODUCTION_DEPLOYMENT.md)

## 📁 项目结构

```
WorkTime/
├── src/
│   ├── App.vue          # 主应用组件
│   ├── main.js          # 应用入口
│   └── style.css        # 全局样式
├── dist/                # 构建输出目录
├── index.html           # HTML 模板
├── package.json         # 项目配置
├── vite.config.js       # Vite 配置
├── server.js            # 后端服务器
├── Dockerfile           # Docker 配置
├── docker-compose.yml   # Docker Compose 配置
├── deploy.sh            # 部署脚本
├── test-deployment.sh   # 部署测试脚本
├── example-data.json    # 示例数据文件
├── user-data.json       # 用户数据文件
├── PRODUCTION_DEPLOYMENT.md  # 生产部署指南
└── README.md           # 项目说明
```

## 🎯 使用说明

1. **功能导航**: 使用顶部菜单在"任务管理"、"工作分析"、"数据管理"之间切换
2. **创建项目**: 在任务管理页面点击"新建项目"按钮创建新项目
3. **选择项目**: 点击项目列表中的项目进行切换
4. **添加任务**: 在输入框中输入任务内容，选择项目、任务类型、优先级和时间，点击"添加"按钮
5. **使用计时器**: 对于没有设置时间的任务，点击▶️按钮开始计时，点击⏹️按钮停止计时
6. **完成任务**: 点击任务前的圆形复选框标记完成
7. **编辑任务**: 点击任务右侧的编辑按钮进行修改
8. **删除任务**: 点击任务右侧的删除按钮移除任务
9. **过滤任务**: 使用过滤器按钮查看不同项目、状态和类型的任务
10. **查看分析**: 切换到"工作分析"页面查看工作统计和分析
11. **数据管理**: 切换到"数据管理"页面导出、导入或清空数据

## 💡 特色功能

- **智能日期显示**: 自动显示"今天"、"昨天"、"X天前"等相对时间
- **时间管理**: 支持设置任务的开始和结束时间，自动计算工作时长
- **计时器功能**: 为没有设置时间的任务提供实时计时器，支持开始/停止/累计计时
- **工作分析**: 实时分析每日工作分布，包括项目分布、类型分布和时间统计
- **项目管理**: 支持多项目管理，每个项目独立显示任务数量
- **任务类型标识**: 不同颜色的标签区分任务类型
- **项目标签**: 每个任务显示所属项目名称
- **悬停效果**: 鼠标悬停时显示操作按钮
- **键盘快捷键**: 支持回车键添加任务，ESC键取消编辑
- **空状态提示**: 根据不同情况显示相应的鼓励信息

- **数据备份**: 支持JSON格式的数据导出和导入，便于数据备份和迁移
- **菜单导航**: 清晰的功能分区，提供更好的用户体验和功能组织
- **全屏体验**: 支持一键切换浏览器宽度全屏，充分利用屏幕空间
- **云端同步**: 支持服务器存储和多设备同步，确保数据安全

## 🔧 自定义配置

可以通过修改 `src/style.css` 文件来自定义应用的外观，包括：
- 颜色主题
- 字体样式
- 布局尺寸
- 动画效果

## 📁 数据格式

应用使用JSON格式存储数据，包含以下结构：

```json
{
  "tasks": [
    {
      "id": 1703123456789,
      "text": "任务内容",
      "projectId": "project-1",
      "type": "development",
      "completed": false,
      "priority": "high",
      "startTime": "2023-12-20T09:00",
      "endTime": "2023-12-20T11:00",
      "timerRunning": false,
      "timerStartTime": null,
      "timerDuration": null,
      "createdAt": "2023-12-20T09:00:00.000Z",
      "editing": false
    }
  ],
  "projects": [
    {
      "id": "project-1",
      "name": "项目名称",
      "createdAt": "2023-12-18T10:00:00.000Z"
    }
  ],
  "exportDate": "2023-12-20T16:30:00.000Z",
  "version": "1.0.0"
}
```

## �� 许可证

MIT License 