80 lines
2.5 KiB
Markdown
80 lines
2.5 KiB
Markdown
# U-Desk
|
||
|
||
桌面文件管理器,基于 [Wails v3](https://v3.wails.io/) (Go + Vue 3)。
|
||
|
||
## 功能
|
||
|
||
- **本地文件管理**: 浏览、编辑、重命名、删除、回收站
|
||
- **SFTP 远程连接**: SSH 密钥/密码认证,文件上传下载
|
||
- **云 OSS 存储**: 七牛云/阿里云,多桶浏览
|
||
- **多格式预览**: 图片/视频/音频/PDF/Office/HTML
|
||
- **Markdown 编辑器**: 实时预览、Mermaid 图表、语法高亮
|
||
- **收藏夹管理**: 折叠/展开、拖拽排序、置顶
|
||
- **BGM 播放**: 音频播放列表、全局热键 Ctrl+Shift+B
|
||
- **PDF 导出**: Markdown/HTML 导出为 PDF
|
||
- **版本更新检查**: 自动检测新版本
|
||
- **主题切换**: 亮色/暗色
|
||
|
||
## 技术栈
|
||
|
||
| 层 | 技术 |
|
||
|---|------|
|
||
| 桌面框架 | Wails v3 (alpha.82) |
|
||
| 后端 | Go 1.24 |
|
||
| 前端 | Vue 3 + TypeScript |
|
||
| UI 组件库 | Arco Design Vue |
|
||
| 编辑器 | CodeMirror 6 |
|
||
| 构建 | Vite 7 + Taskfile |
|
||
| 数据库 | SQLite (配置/历史) |
|
||
| 文件服务 | 内置 HTTP 文件服务器 (端口 2652) |
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
├── main.go # 入口:窗口配置、中间件
|
||
├── app.go # App 结构体定义、生命周期、请求类型
|
||
├── app_*.go # 按功能域拆分(config/sftp/oss/...)
|
||
├── internal/
|
||
│ ├── api/ # Wails 绑定 API 层
|
||
│ ├── filesystem/ # 文件系统服务 + HTTP 文件服务器
|
||
│ ├── ossdrv/ # OSS 驱动(七牛/阿里云)
|
||
│ ├── sftp/ # SFTP 客户端
|
||
│ ├── storage/ # SQLite 存储
|
||
│ └── service/ # 业务服务
|
||
├── frontend/
|
||
│ └── src/
|
||
│ ├── components/FileSystem/ # 文件管理主组件
|
||
│ ├── api/ # 后端调用封装
|
||
│ ├── composables/ # Vue Composables
|
||
│ └── stores/ # Pinia 状态管理
|
||
├── build/ # 构建配置(跨平台)
|
||
└── configs/ # 运行时配置
|
||
```
|
||
|
||
## 开发
|
||
|
||
```bash
|
||
# 启动开发模式
|
||
wails3 dev
|
||
|
||
# 生产构建
|
||
wails3 build
|
||
```
|
||
|
||
### 构建标签
|
||
|
||
- `production` — 生产模式,使用嵌入的 frontend dist
|
||
- `devtools` — 在生产构建中保留 DevTools
|
||
|
||
## 快捷键
|
||
|
||
| 快捷键 | 功能 |
|
||
|--------|------|
|
||
| Ctrl+B | 切换侧边栏 |
|
||
| Ctrl+Shift+B | BGM 播放栏 |
|
||
| F11 | 全屏预览 |
|
||
|
||
## 版本历史
|
||
|
||
详见 [CHANGELOG.md](./CHANGELOG.md) | 内部技术细节见 [CHANGELOG.internal.md](./CHANGELOG.internal.md)
|