项目名称:lc_garage 框架:Wails v2.13 + GIN-VUE-ADMIN v2.6.3 最后更新:2026-07-10
单进程 Wails 桌面应用:Go 后端(Gin HTTP)在 goroutine 运行,Vue 3 前端通过 WebView2 加载,/api/* 请求经内置反向代理转发到 Gin。
Wails .exe
├─ goroutine: Gin HTTP Server (:8888)
└─ WebView2: Vue 3 SPA
└─ /api/* → reverse proxy → Gin (strip /api prefix)
| 层级 | 技术 |
|---|---|
| 桌面框架 | Wails v2.13 |
| 后端 | Go 1.25 + Gin + GORM + Casbin + JWT |
| 前端 | Vue 3 + Vite 4 + Element Plus + Pinia + ECharts |
| 数据库 | SQLite(%APPDATA%/smart-parking/lc_garage.db) |
lc_garage/
├── main.go # Wails 入口
├── wails.json # Wails 配置
├── go.mod # 根模块 (wails-app)
├── config.yaml # 后端配置
├── server/ # Go 后端(独立模块 "server")
├── frontend/ # Vue 3 前端
├── build/bin/ # 构建输出
├── deploy/ # Docker/K8s
├── lc_garage.sql # 数据库初始化
└── doc/ # 文档
| 文件 | 改动 | 说明 |
|---|---|---|
server/main.go |
package main → package server,导出 InitBackend() |
供 Wails 入口调用 |
server/core/viper.go |
新增 exe 目录 fallback | 双击 exe 时能找到 config.yaml |
其余 api/ service/ dao/ router/ middleware/ 等全部不变。
| 文件 | 改动 |
|---|---|
view/parking/parkingInfo/ |
新增:停车场左列表+右Tab联动布局 |
pinia/parkArea.js |
新增:停车场联动状态 |
view/layout/aside/index.vue |
新增:角色菜单筛选(operator 隐藏 admin 菜单) |
.env.production |
VITE_BASE_API = /api(Wails 内置代理处理) |
vite.config.js |
Dev server 端口 5173 |
# 开发
cd lc_garage && wails dev
# 构建
cd lc_garage && wails build
# 产物: build/bin/smart-parking.exe
# 运行
双击 build/bin/smart-parking.exe
管理员:admin / 123456