e198fd4ee1761b5ca9d2df07b9773f5a7a6e487e
问题: - Excel/Word 文件被错误识别为二进制格式 - isBinaryFileByExt 未包含 Office 文件扩展名 修复: - 在 isBinaryFileByExt 中添加 Office 文件判断 - 新增 isOfficeFile 变量判断 xlsx/xls/docx/doc - 在二进制检测前排除 Office 文件 修改文件: - useFileEdit.ts
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. 安装依赖
# Go 依赖
go mod tidy
# 前端依赖
cd web
npm install
2. 构建前端(必须)
cd web
npm run build
重要:每次修改前端代码后都需要重新构建,Wails 使用 web/dist 目录中的构建产物。
3. 开发模式运行
# 在项目根目录
wails dev
注意:如果 wails 命令找不到,使用完整路径:
# 获取 GOPATH
go env GOPATH
# 使用完整路径(根据你的 GOPATH 调整)
D:\Go\go-workspace\bin\wails.exe dev
4. 构建应用
# 确保前端已构建
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)
- 测试用例和检查报告
许可
本项目用于学习和测试目的。
Description
Languages
Go
39.8%
Vue
28.4%
TypeScript
20.6%
JavaScript
6.8%
Java
2%
Other
2.3%