# Hua.Todo 跨平台代办管理应用 一个基于 WebView 容器(MAUI / Avalonia)+ 嵌入式 ASP.NET Core WebServer 架构开发的跨平台代办管理应用,支持 Windows、macOS、Android、iOS 和 Linux(预览)平台。通过 HTTP API 实现前后端通信,提供轻量、高效的任务管理体验。 ## 🚀 功能特点 ### 核心功能 - **跨平台支持**:基于 MAUI / Avalonia + WebView 架构,支持 Windows、macOS、Android、iOS 和 Linux(预览) - **任务管理**:支持创建、编辑、删除、完成状态切换 - **优先级管理**:支持高、中、低三种优先级设置,通过颜色直观区分 - **任务状态跟踪**:清晰标记任务完成状态,支持过滤查看(全部/进行中/已完成) - **本地数据持久化**:使用 SQLite 数据库保存数据,支持完全离线使用 - **HTTP API 通信**:前后端通过 RESTful API 进行数据交互 - **云同步(基础)**:支持手动配置服务端地址并登录后拉取云端任务(v1.2.0 为只读展示) ## 📦 安装与使用 ### 环境要求 - **后端**: - .NET 10 SDK - Visual Studio 2022 或更高版本 - **前端**: - Node.js 18+ - npm 或 yarn ### 快速开始 #### 1. 克隆或下载项目 ```bash git clone <仓库地址> cd Hua.Todo ``` #### 2. 启动后端 API ```bash cd src/Hua.Todo.Host dotnet restore dotnet run ``` API 将在 `http://localhost:5173` 启动 #### 3. 启动前端 Web ```bash cd src/Hua.Todo.Web npm install npm run dev ``` 前端将在 `http://localhost:5174` 启动,并自动代理 `/api` 请求到 `http://localhost:5173` ### Windows 交付产物(安装包) - 运行 `publish-windows.ps1` 生成 Inno Setup 安装包:`src/Hua.Todo.Maui/Output/Hua.Todo_Setup_vX.Y.Z.exe`(版本号来自 `Hua.Todo.Maui.csproj` 的 ``;根目录 `Directory.Build.targets` 会对 `Hua.Todo.Maui` 按 TargetFramework 条件配置 `UseMonoRuntime`:仅 Android 启用,其它目标关闭;同时会复制到 `artifacts/windows//installer/`) - 运行 `publish.ps1` 默认会同时发布 Windows + Linux(仅发布 Windows:`publish.ps1 -Windows`) - 安装后主程序为:`Hua.Todo.Maui.exe`(快捷方式/安装后启动均指向该文件) - 发布产物默认使用静态资源:`src/Hua.Todo.Maui/appsettings.json` 中 `WebServer.IsUsingStatic=true` - 前端构建产物会输出到 `src/Hua.Todo.Maui/wwwroot`,并随 Windows 发布复制到发布目录(嵌入式服务器从 `AppContext.BaseDirectory/wwwroot` 提供静态文件) ### Linux 交付产物(v1.2.0) - `.tar.gz` 发布脚本:`publish-linux.ps1`(或使用 `publish.ps1 -Linux`) - Flatpak 基础结构(manifest/desktop entry/AppStream):`pack/linux/` ### 使用说明 - **添加任务**:在前端界面中输入任务内容,设置优先级,点击添加按钮 - **管理任务**:查看任务列表,支持按状态过滤(全部/进行中/已完成) - **完成任务**:点击任务前的复选框切换完成状态 - **删除任务**:点击删除按钮移除任务 ## 🔧 开发指南 ### 项目结构 ``` Hua.Todo/ ├── pack/ # 打包与交付产物(Linux/安装包等) ├── docs/ # 文档目录 │ ├── manual/ # 用户/开发者手册 │ └── project/ # 项目进度/需求文档 ├── src/ # 源代码目录 │ ├── Hua.Todo.Core/ # 领域实体与基础接口 │ ├── Hua.Todo.Application/ # 业务逻辑与应用层实现 │ ├── Hua.Todo.Host/ # 后端 API 宿主项目 (Kestrel) │ ├── Hua.Todo.Web/ # 前端 Web 项目 (Vue.js 3 + Vite) │ ├── Hua.Todo.Maui/ # 跨平台客户端项目 (Windows/Android/iOS/macOS) │ ├── Hua.Todo.Avalonia/ # 桌面客户端项目 (Windows/macOS/Linux) │ └── Hua.Todo.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}` - 删除任务 ## 🤝 交流与贡献 - **QQ 交流群**:2167048911 (Hua.Todo 交流群) - **项目地址**:[Hua.Todo](https://git.we965.cn/Tools/Hua.Todo) - **贡献指南**:欢迎提交 Pull Request,详见 [其他信息](docs/manual/其他信息.md) ## 📄 开源协议 本项目采用 **AGPL-3.0** 许可证。详细内容请参阅 [LICENSE](LICENSE) 文件。 ## 📚 更多文档 ### 用户与开发者手册 - [技术栈与模块说明](docs/manual/技术栈与模块.md) - [版本更新历史](docs/manual/版本记录.md) - [技术设计文档](docs/manual/技术设计文档.md) - [代码规范文档](docs/manual/代码规范文档.md) - [其他信息 (贡献、许可证、联系方式)](docs/manual/其他信息.md) ### 项目进度与需求 - [产品需求文档](docs/project/产品需求文档.md) - [Android 离线排查计划](docs/project/Android_NotFound_排查计划.md) - [实现对比文档](docs/project/实现对比文档.md) --- **Hua.Todo** - 跨平台任务管理,让效率无处不在!