# 智慧停车管理系统 (Smart Parking) 基于 Wails v2 构建的单进程桌面应用,零外部依赖。 ## 技术栈 - **桌面框架**:Wails v2.13 - **后端**:Go 1.25 + Gin + GORM + Casbin + JWT - **前端**:Vue 3 + Vite 4 + Element Plus + Pinia - **数据库**:SQLite(`%APPDATA%/smart-parking/lc_garage.db`) ## 环境要求 - Go >= 1.25 - Node.js >= 16 - Wails CLI - Windows 10 build 1809+(WebView2 运行时) ## 安装 Wails CLI ```bash go install github.com/wailsapp/wails/v2/cmd/wails@latest ``` ## 安装依赖 ```bash cd frontend && npm install && cd .. ``` ## 开发模式 ```bash cd lc_garage wails dev ``` Wails 自动: 1. 编译 Go 后端,Gin 在 goroutine 中启动(:8888) 2. 创建 SQLite 数据库并写入系统初始数据(首次启动) 3. 启动 Vite 开发服务器(:5173) 4. 打开 WebView2 窗口,支持热更新 ## 生产构建 ```bash cd lc_garage wails build ``` 产物:`build/bin/smart-parking.exe`,需与 `config.yaml` 同目录。 ## 管理员账户 - 账号:`admin` - 密码:`123456` 首次启动自动创建系统数据(用户、角色、菜单、API、Casbin 规则、字典),后续重启跳过。 ## 数据库 - 文件位置:`%APPDATA%/smart-parking/lc_garage.db` - 可通过 `config.yaml` 的 `sqlite.path` 自定义路径(空 = 默认) - 查询工具:[DB Browser for SQLite](https://sqlitebrowser.org/) 或 `sqlite3` 命令行 ## 项目结构 ``` lc_garage/ ├── main.go # Wails 入口(反向代理 /api → Gin :8888) ├── wails.json # Wails 配置 ├── go.mod # 根模块 (wails-app) ├── config.yaml # 后端配置 ├── server/ # Go 后端(独立模块 "server") │ ├── main.go # InitBackend() + SeedSystemData() │ ├── initialize/ # 初始化(GORM/Redis/Timer/UHF/Seed) │ ├── api/ # API 控制器 │ ├── service/ # 业务逻辑 │ └── dao/ # 数据访问 ├── frontend/ # Vue 3 前端 └── build/bin/ # 构建产物 ``` ## 常见问题 **双击 exe 打不开?** 确保 `config.yaml` 与 `smart-parking.exe` 在同一目录。 **超级管理员菜单不显示?** 可能是数据库种子数据异常,删除 `%APPDATA%/smart-parking/lc_garage.db` 后重新启动即可重建。 **wails dev 卡住?** 确保 `cd frontend && npm install` 已执行过。