3.3 KiB
3.3 KiB
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 对后台进程的限制可能导致提醒不准时。