PROJECT.md 2.4 KB

智慧停车管理系统 (Smart Parking) — Wails 桌面应用

项目名称: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/                      # 文档

后端改动(相对于原始 GVA)

文件 改动 说明
server/main.go package mainpackage server,导出 InitBackend() 供 Wails 入口调用
server/core/viper.go 新增 exe 目录 fallback 双击 exe 时能找到 config.yaml

其余 api/ service/ dao/ router/ middleware/ 等全部不变。


前端改动(相对于 lc_garage/web)

文件 改动
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