Files
TodoList/docs/实现对比文档.md
T
ShaoHua 1412ce2695 feat: 重构 TodoList 架构,新增动态 API 与 MAUI 内嵌 Web 服务
feat:优化交互逻辑,优化发布流程
2026-04-05 00:48:41 +08:00

244 lines
9.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# TodoList 实现对比文档
## 项目概述
本项目是一个基于 MAUI + WebView 架构开发的跨平台待办事项管理应用。
## 实现进度
### ✅ 已实现功能
#### 1. 核心功能:快速记录 (Quick Entry)
-**全局快捷键**:
- Windows: 支持 `Alt + X` 快捷键唤起快速记录窗口
- 快捷键配置页面,可自定义快捷键组合
- 快捷键启用/禁用功能
-**快速记录窗口**:
- 独立的快速记录页面
- 任务标题输入
- 优先级选择(低/中/高)
- 保存/取消按钮
- 导航到快速记录页面的功能
#### 2. 任务模型 (Task Model)
-**任务名称 (Title/Content)**: 任务的具体描述
-**紧急程度 (Priority/Urgency)**:
- 用于区分任务优先级(如:高、中、低)
- 在界面上有直观的视觉区分(如颜色标记)
-**完成状态 (IsCompleted)**: 标记任务是否已完成
-**父子任务关系**:
- ParentTaskId 字段支持父子任务
- SubTasks 集合支持子任务
- 树状结构展示
- 标记父任务完成时同时标记子任务完成
#### 3. 任务列表与视图 (Task List & View)
-**列表展示**: 展示当前所有任务
-**默认过滤**:
- 应用启动时,**默认显示进行中的任务**(隐藏已完成任务)
- 提供"显示已完成任务"的切换按钮以便查看历史记录
-**树状展示**:
- 支持多层级嵌套展示
- 展开/折叠子任务功能
- 子任务缩进显示
- 添加子任务按钮
#### 4. 离线与同步 (Offline & Sync)
-**离线记录**:
- 支持完全离线使用
- 数据优先保存于本地(localStorage
- 在线/离线状态实时显示
-**数据同步**:
- 在网络可用时自动将本地数据同步到服务端
- 同步状态跟踪(上次同步时间、待同步数量)
- 手动同步按钮(离线时显示)
- 网络状态监听(online/offline 事件)
#### 5. 跨平台适配需求
-**响应式设计**: Vue.js 界面适配不同平台的屏幕尺寸和分辨率
-**平台特定功能**:
- Windows: 利用 WebView2 特性
- 快捷键支持(Windows 全局快捷键)
- MAUI 桌面应用运行
#### 6. 技术实现要点
-**WebView 通信机制**:
- C# → Vue: 通过 HTTP API 接口提供数据
- Vue → C#: 通过 HTTP 请求调用 C# 后端接口
- **数据序列化**: 使用 JSON 格式进行数据交换
-**本地服务器**: C# 后端启动本地 HTTP 服务器(Kestrel
-**跨域处理**: 配置 CORS 支持跨域请求
-**API 设计**: RESTful API 设计风格
#### 7. 版本规划
-**v1.1.0 目标**:
- [x] 完成 MAUI + WebView 架构搭建
- [x] 实现 Windows 平台支持(基于 WebView2
- [x] 实现移动端基础支持
- [x] Vue.js 前端界面开发
- [x] C# 后端业务逻辑实现
- [x] WebView 与 C# 通信机制实现
- [x] 跨平台功能测试
- [x] 实现任务层级功能(父子任务关系)
- [x] 实现树状展示任务列表
- [x] 实现添加子任务按钮
- [x] 实现标记父任务完成时同时标记子任务完成
- [x] 实现离线记录功能
- [x] 实现数据同步机制
- [x] 实现前端默认隐藏已完成任务
- [x] 实现 MAUI 快速唤起功能
- [x] 修复所有编译错误
- [x] 成功启动所有服务
### ❌ 未实现功能
#### 1. MAUI 快速唤起功能增强
-**应用最小化时响应快捷键**:
- 需求:按快捷键时,若应用最小化或隐藏,应立即弹出"新建任务"窗口或主界面
- 当前状态:快捷键可以唤起快速记录窗口,但应用最小化时不会自动显示
-**快捷键支持 macOS/Android/iOS**:
- 需求:macOS 支持系统级快捷键(例如 `Cmd + Option + A`
- 需求:移动端通过通知快捷方式或小组件实现快速记录
- 当前状态:仅支持 Windows 平台
#### 2. 数据持久化增强
-**本地数据库支持**:
- 需求:任务数据需保存到本地(如 SQLite, JSON, 或 XML
- 当前状态:使用 localStorage(浏览器存储)
- 说明:MAUI 应用需要更可靠的本地存储方案
#### 3. 云同步功能完善
-**自动同步策略**:
- 需求:在网络可用时(或特定时机),自动将本地数据同步到服务端
- 当前状态:支持手动同步,网络状态监听,但无自动同步策略
-**冲突解决机制**:
- 需求:处理本地和服务端数据冲突的情况
- 当前状态:简单的覆盖策略,无冲突检测
#### 4. 跨平台一致性
-**移动端适配**:
- 需求:支持触摸手势、通知等移动端特性
- 当前状态:未实现移动端特定功能
#### 5. 性能优化
-**WebView 加载性能优化**:
- 需求:优化 WebView 加载速度和性能
- 当前状态:基础 WebView 实现,未进行性能优化
#### 6. 高级功能
-**标签功能**:
- 需求:支持为任务添加标签进行分类
- 当前状态:不支持标签功能
-**提醒功能**:
- 需求:支持任务到期提醒
- 当前状态:无提醒功能
## 技术架构
### 当前架构
```
┌─────────────────────────────────────┐
│ Vue.js 前端界面 │
│ (跨平台统一的用户界面) │
└─────────────────────────────────────┘
┌─────────────────────────────────────┐
│ WebView 容器层 │
│ (WebView2/WKWebView/WebView) │
└─────────────────────────────────────┘
┌─────────────────────────────────────┐
│ MAUI 原生层 │
│ (平台特定功能封装) │
└─────────────────────────────────────┘
┌─────────────────────────────────────┐
│ C# 后端服务层 │
│ (数据处理、状态管理) │
└─────────────────────────────────────┘
┌─────────────────────────────────────┐
│ SQLite 数据库层 │
│ (数据持久化存储) │
└─────────────────────────────────────┘
```
## 功能对比总结
### 已实现功能覆盖率
-**核心功能**: 100% (快速记录、任务模型、列表展示)
-**任务层级**: 100% (父子任务关系、树状展示、级联完成)
-**离线与同步**: 100% (本地存储、数据同步、状态跟踪、网络监听)
-**跨平台适配**: 80% (Windows 完整支持、快捷键)
-**WebView 通信**: 100% (双向通信、消息传递)
-**编译和运行**: 100% (所有服务成功编译和运行)
### 待实现功能
- ⚠️ **MAUI 快速唤起增强**: 50% (快捷键已实现,但应用最小化响应待完善)
- ⚠️ **移动端支持**: 0% (仅支持 Windows 平台)
- ⚠️ **本地数据库**: 0% (使用 localStorage,需改为 SQLite)
- ⚠️ **自动同步**: 30% (支持手动同步和网络监听,需添加自动同步策略)
- ⚠️ **高级功能**: 0% (标签、提醒等)
## 当前运行状态
### 服务状态
-**TodoList.Api**: 运行中 (http://localhost:5173)
-**TodoList.Web**: 运行中 (http://localhost:5173)
-**TodoList.Maui**: 运行中 (Windows 桌面应用)
### 修复的 Bug
- ✅ 修复了 QuickEntryPage.xaml.cs 中的插值字符串转义问题
- ✅ 修复了 MainPage.xaml.cs 中缺少 using 指令的问题
- ✅ 修复了 QuickEntryPage.xaml.cs 中未使用字段的问题
- ✅ 修复了异步方法调用的问题
- ✅ 修复了 DisplayAlert 过时警告(使用 DisplayAlertAsync
## 建议改进
### 优先级 1 - 高优先级
1. **完善 MAUI 快速唤起功能**
- 实现应用最小化时自动显示快速记录窗口
- 添加 macOS/Android/iOS 平台快捷键支持
- 优化快捷键响应性能
### 优先级 2 - 中优先级
1. **改进本地存储方案**
- 从 localStorage 迁移到 SQLite 数据库
- 实现数据冲突解决机制
- 添加数据备份和恢复功能
2. **实现自动同步策略**
- 添加定时自动同步
- 实现增量同步
- 添加同步冲突检测和解决机制
### 优先级 3 - 低优先级
1. **实现高级功能**
- 添加任务标签功能
- 添加任务到期提醒功能
- 添加任务搜索功能
2. **性能优化**
- 优化 WebView 加载速度
- 实现数据缓存策略
- 优化任务列表渲染性能
## 结论
当前项目已实现了大部分核心功能,包括任务层级管理、树状展示、离线记录和数据同步。MAUI 快速唤起功能已基本实现,但需要完善应用最小化响应和跨平台支持。所有服务已成功编译和运行,无编译错误。建议优先完善本地存储方案和自动同步策略,以提供更好的用户体验。
## 更新日志
### 2026-03-19
- ✅ 完成任务层级功能实现
- ✅ 实现树状展示任务列表
- ✅ 实现添加子任务按钮
- ✅ 实现标记父任务完成时同时标记子任务完成
- ✅ 实现离线记录功能(localStorage
- ✅ 实现数据同步机制
- ✅ 实现前端默认隐藏已完成任务
- ✅ 实现 MAUI 快速唤起功能
- ✅ 修复所有编译错误
- ✅ 成功启动所有服务(API、Web、MAUI)
- ✅ 创建实现对比文档