# Hua.Todo 产品需求文档 (PRD) v1.2.0

## 1. 项目概述
在 v1.1.0 版本成功实现 MAUI + WebView 跨平台架构的基础上，v1.2.0 版本将重点提升任务管理的精细化程度，完善平台支持（Linux），并增强用户体验（暗色模式、提醒功能）。

## 2. 核心目标
- **完善平台覆盖**：正式支持 Linux 平台。
- **增强任务组织**：引入搜索、过滤和标签系统。
- **提升交互体验**：支持本地通知提醒及暗色模式。
- **数据安全保障**：实现基础的数据导入导出功能。

## 3. 功能需求

### 3.1 平台支持：Linux 官方支持
- **适配性**：确保 WebView 在 Linux 环境下的正常渲染与交互。
- **打包部署**：提供 Linux 平台的打包脚本（如 .deb 或 .tar.gz）。

### 3.2 任务检索与过滤 (Search & Filter)
- **关键词搜索**：在主界面顶部增加搜索框，支持按任务标题模糊匹配。
- **高级过滤**：
  - 按优先级过滤（高、中、低）。
  - 按标签过滤。
  - 按创建/完成时间段过滤。

### 3.3 本地提醒 (Local Reminders)
- **提醒设置**：在任务编辑界面增加“提醒时间”字段。
- **通知触发**：当达到提醒时间时，通过平台原生 API 发送本地通知（Notification）。
- **状态反馈**：已过期的提醒任务在列表中有明显的视觉标识。

### 3.4 标签系统 (Tag System)
- **多标签支持**：一个任务可关联多个标签。
- **标签管理**：支持自定义标签名称和颜色。
- **快速归类**：通过标签快速筛选相关任务。

### 3.5 主题增强：暗色模式 (Dark Mode)
- **自动切换**：根据系统主题自动切换浅色/深色模式。
- **手动控制**：在设置中提供手动切换开关。
- **UI 适配**：Vue 前端及 MAUI 原生部分均需完成暗色模式适配。

### 3.6 数据迁移 (Data Migration)
- **导出功能**：支持将所有任务数据导出为 JSON 格式文件。
- **导入功能**：支持从 JSON 文件恢复数据，解决跨设备迁移问题。

## 4. 技术实现要点

### 4.1 Linux 适配
- 使用 WebKitGTK 作为 WebView 容器。
- 适配 Linux 下的全局快捷键实现。

### 4.2 本地通知
- 使用 `Plugin.LocalNotification` 或 MAUI 自带的通知机制（取决于 .NET 10 的最新支持）。
- 确保后台服务在移动端能准时触发提醒。

### 4.3 标签数据结构
- 在 `TaskEntity` 中增加 `Tags` 关联（多对多关系或简单的 JSON 存储）。

### 4.4 主题管理
- 使用 CSS Variables (Custom Properties) 管理前端主题颜色。
- 监听 `(prefers-color-scheme: dark)` 媒体查询。

## 5. 版本规划

### 5.1 v1.2.0 目标
- [ ] Linux 平台完整支持与打包脚本。
- [ ] 搜索框及多维过滤功能。
- [ ] 本地提醒（提醒时间设置与通知触发）。
- [ ] 基础标签功能（创建、关联、过滤）。
- [ ] 全局暗色模式适配。
- [ ] 数据导入导出（JSON）。

### 5.2 后续版本规划
- **v1.3.0**：云同步功能（接入第三方云盘或自建服务）。
- **v1.4.0**：统计图表（任务完成趋势、时间分配分析）。

## 6. 风险评估
- **Linux 碎片化**：不同发行版下 WebView 的依赖库可能不一致。
- **移动端后台限制**：Android/iOS 对后台进程的限制可能导致提醒不准时。
