# U-Desk 基于 Wails 的桌面应用程序,集成数据库客户端、文件管理、设备测试等功能。 ## 技术栈 - **后端**:Go 1.25+、Wails v2 - **前端**:Vue 3、Arco Design Vue、Vite - **存储**:SQLite、MySQL、Redis、MongoDB ## 核心功能 ### 1. 数据库客户端 - 支持 MySQL、Redis、MongoDB 多种数据库连接 - 连接管理(保存、编辑、删除连接配置) - SQL 执行与结果展示 - 数据表结构查看 ### 2. 文件管理 - 本地文件系统浏览(支持多盘符) - 文件预览(图片、文本、代码) - 文件操作(复制、移动、删除、重命名) - 常用路径快捷访问(桌面、文档、下载等) - 搜索与筛选功能 ### 3. 设备测试 - 系统设备信息查询 - 硬件状态检测 ### 4. 更新管理 - 应用版本检查与自动更新 - 更新日志展示 ## 项目结构 ``` go-desk/ ├── app.go # 应用入口,API 方法绑定 ├── main.go # 程序启动 ├── wails.json # Wails 配置 ├── go.mod # Go 模块依赖 ├── internal/ │ ├── api/ # API 层(数据库、标签页、更新等) │ ├── common/ # 通用工具(超时、工具函数) │ ├── dbclient/ # 数据库客户端(MySQL、Redis、MongoDB) │ ├── filesystem/ # 文件系统管理(模块化架构) │ ├── service/ # 服务层(SQL 执行等) │ ├── storage/ # 本地存储(SQLite) │ └── system/ # 系统信息获取 └── web/ # 前端代码 ├── package.json ├── vite.config.js ├── index.html └── src/ ├── components/ # Vue 组件 │ ├── FileSystem.vue # 文件管理 │ ├── DeviceTest.vue # 设备测试 │ ├── UpdatePanel.vue # 更新面板 │ └── CodeEditor.vue # 代码编辑器 ├── composables/ # 组合式函数 │ ├── useFileOperations.js │ ├── useFavoriteFiles.js │ └── useLocalStorage.js ├── utils/ # 工具函数 ├── api/ # API 调用 └── App.vue # 主应用 ``` ## 开发 ### 1. 安装依赖 ```bash # Go 依赖 go mod tidy # 前端依赖 cd web npm install ``` ### 2. 构建前端(必须) ```bash cd web npm run build ``` **重要**:每次修改前端代码后都需要重新构建,Wails 使用 `web/dist` 目录中的构建产物。 ### 3. 开发模式运行 ```bash # 在项目根目录 wails dev ``` **注意**:如果 `wails` 命令找不到,使用完整路径: ```bash # 获取 GOPATH go env GOPATH # 使用完整路径(根据你的 GOPATH 调整) D:\Go\go-workspace\bin\wails.exe dev ``` ### 4. 构建应用 ```bash # 确保前端已构建 cd web npm run build cd .. # 构建当前平台 wails build # 构建 Windows(明确指定平台) wails build -platform windows/amd64 ``` **构建产物位置**:`build/bin/go-desk.exe` **注意**: - 构建前确保前端已构建(`web/dist` 目录存在) - 构建产物是独立的可执行文件,包含前端资源 ## 数据库配置 应用使用 SQLite 本地存储连接配置和用户数据。 可选连接外部数据库: - **MySQL**:支持连接、查询、表结构查看 - **Redis**:支持连接、基础操作 - **MongoDB**:支持连接、基础操作 ## 架构特点 - **模块化文件系统**:文件管理功能采用模块化设计,职责分离 - **异步启动优化**:应用启动流程优化,核心功能快速初始化 - **本地文件服务器**:支持本地文件预览和访问 - **SQLite 持久化**:连接配置和用户数据本地存储 ## 文档 详细文档请查看 `docs/` 目录: - 架构设计文档 - 功能迭代记录 - 技术决策记录(ADR) - 测试用例和检查报告 ## 许可 本项目用于学习和测试目的。