# 智慧停车管理系统 (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 main` → `package 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 |

---

## 启动

```bash
# 开发
cd lc_garage && wails dev

# 构建
cd lc_garage && wails build
# 产物: build/bin/smart-parking.exe

# 运行
双击 build/bin/smart-parking.exe
```

管理员：`admin` / `123456`
