# TodoList 跨平台待办事项管理应用 一个基于 MAUI + WebView 架构开发的跨平台待办事项管理应用,支持 Windows、macOS、Android、iOS 和 Linux(预览)平台。通过 HTTP API 实现前后端通信,提供轻量、高效的任务管理体验。 ## 🚀 功能特点 ### 核心功能 - **跨平台支持**:基于 MAUI + WebView 架构,支持 Windows、macOS、Android、iOS 和 Linux(预览) - **任务管理**:支持创建、编辑、删除、完成状态切换 - **优先级管理**:支持高、中、低三种优先级设置,通过颜色直观区分 - **任务状态跟踪**:清晰标记任务完成状态,支持过滤查看(全部/进行中/已完成) - **本地数据持久化**:使用 SQLite 数据库保存数据,支持完全离线使用 - **HTTP API 通信**:前后端通过 RESTful API 进行数据交互 ### 技术特性 - **现代化架构**:MAUI + WebView + C# 后端 + Vue.js 前端 - **分层设计**:Core(核心层)+ API(后端)+ Web(前端) - **响应式界面**:Vue.js 3 实现的现代化用户界面 - **统一 API 设计**:RESTful API 风格,支持跨域请求 ## 🛠️ 技术栈 ### 后端技术栈 - **开发语言**:C# 10 - **框架**:.NET 10 - **UI 框架**:MAUI (Multi-platform App UI) - **Web 服务器**:Kestrel (ASP.NET Core 内置) - **API 框架**:ASP.NET Core Web API - **数据访问**:Entity Framework Core - **数据库**:SQLite (本地存储) - **依赖注入**:Microsoft.Extensions.DependencyInjection ### 前端技术栈 - **开发语言**:TypeScript - **框架**:Vue.js 3 - **构建工具**:Vite - **HTTP 客户端**:Axios - **状态管理**:Pinia - **UI 组件库**:Element Plus / Vant (移动端) - **CSS 预处理器**:SCSS ## 📦 安装与使用 ### 环境要求 - **后端**: - .NET 10 SDK - Visual Studio 2022 或更高版本 - **前端**: - Node.js 18+ - npm 或 yarn ### 快速开始 #### 1. 克隆或下载项目 ```bash git clone <仓库地址> cd TodoList ``` #### 2. 启动后端 API ```bash cd src/TodoList.Api dotnet restore dotnet ef database update dotnet run ``` API 将在 `http://localhost:5173` 启动 #### 3. 启动前端 Web ```bash cd src/TodoList.Web npm install npm run dev ``` 前端将在 `http://localhost:5173` 启动 ### 使用说明 - **添加任务**:在前端界面中输入任务内容,设置优先级,点击添加按钮 - **管理任务**:查看任务列表,支持按状态过滤(全部/进行中/已完成) - **完成任务**:点击任务前的复选框切换完成状态 - **删除任务**:点击删除按钮移除任务 ## 🔧 开发指南 ### 项目结构 ``` TodoList/ ├── docs/ # 文档目录 │ ├── 产品需求文档.md │ ├── 产品需求文档-1.1.0.md │ ├── 技术设计文档.md │ └── 代码规范文档.md ├── src/ # 源代码目录 │ ├── TodoList.Core/ # 核心业务逻辑层 │ │ ├── Entities/ # 实体类 │ │ │ ├── Task.cs │ │ │ └── TaskPriority.cs │ │ └── Interfaces/ # 接口定义 │ │ ├── ITaskRepository.cs │ │ └── ITaskService.cs │ ├── TodoList.Api/ # 后端 API 项目 │ │ ├── Controllers/ # API 控制器 │ │ │ └── TasksController.cs │ │ ├── Services/ # 业务服务 │ │ │ └── TaskService.cs │ │ ├── Repositories/ # 数据访问层 │ │ │ └── TaskRepository.cs │ │ ├── Data/ # 数据库上下文 │ │ │ ├── TodoDbContext.cs │ │ │ └── Migrations/ # 数据库迁移 │ │ ├── Models/ # 数据模型 │ │ │ └── TaskModels.cs │ │ ├── Program.cs # API 入口 │ │ └── TodoList.Api.csproj # API 项目文件 │ ├── TodoList.Web/ # 前端 Web 项目 (Vue.js) │ │ ├── public/ # 静态资源 │ │ ├── src/ │ │ │ ├── api/ # API 调用 │ │ │ │ ├── client.ts │ │ │ │ └── tasks.ts │ │ │ ├── components/ # Vue 组件 │ │ │ │ ├── TaskList.vue │ │ │ │ └── TaskItem.vue │ │ │ ├── types/ # TypeScript 类型定义 │ │ │ │ └── task.ts │ │ │ ├── App.vue # 根组件 │ │ │ └── main.ts # 应用入口 │ │ ├── package.json # 依赖配置 │ │ ├── vite.config.ts # Vite 配置 │ │ └── tsconfig.json # TypeScript 配置 │ └── TodoList.slnx # 解决方案文件 ├── .gitignore # Git 忽略文件 └── README.md # 项目说明文档 ``` ### API 端点 - `GET /api/tasks` - 获取任务列表 - `GET /api/tasks/{id}` - 获取单个任务 - `POST /api/tasks` - 创建任务 - `PUT /api/tasks/{id}` - 更新任务 - `PATCH /api/tasks/{id}/complete` - 切换完成状态 - `DELETE /api/tasks/{id}` - 删除任务 ## 🎯 核心模块说明 ### TodoList.Core 核心业务逻辑层,定义领域模型和业务规则,提供核心业务接口。 ### TodoList.Api 后端 API 项目,提供 RESTful API 接口,处理业务逻辑,管理数据访问和持久化。 ### TodoList.Web 前端 Web 项目,基于 Vue.js 3 + TypeScript,提供用户界面,通过 HTTP API 与后端通信。 ## 🔄 版本更新 ### 版本策略 - 采用语义化版本号:`MAJOR.MINOR.PATCH` - v1.0.0:初始 WPF 版本 - v1.1.0:MAUI + WebView 跨平台版本 ### v1.1.0 更新内容 - 重构为 MAUI + WebView 架构 - 实现跨平台支持 - 使用 HTTP API 进行前后端通信 - 采用 Vue.js 3 作为前端框架 - 使用 SQLite 作为本地数据库 ## 🤝 贡献指南 1. Fork 项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 打开 Pull Request ## 📄 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情 ## 📞 联系方式 - 项目作者:ShaoHua - 项目地址:https://git.we965.cn/Tools/TodoList --- **TodoList** - 跨平台任务管理,让效率无处不在!