# 手动进出场操作页面 — 实现计划
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
**Goal:** 在停车管理下新增"进出场操作"页面,支持手动输入车牌/RFID 完成车辆进场和出场操作
**Architecture:** 前端新增 Vue 3 组件 `entryExit.vue`,Tab 切换进场/出场模式,复用已有 `vehicle.js` API。后端仅需在 seed.go 新增菜单记录和权限映射。
**Tech Stack:** Vue 3 + Element Plus + Pinia, Go 1.25 + GIN
**预估文件变更:** 2 files (1 new + 1 modified)
---
## 文件结构
| 文件 | 操作 | 职责 |
|------|------|------|
| `frontend/src/view/parking/entryExit.vue` | 新建 | 进出场操作页面:输入查询、车辆详情、进场/出场操作 |
| `internal/initialize/seed.go` | 修改 | 新增菜单记录(entryExit, ID=31) + authority_menu 映射 |
---
### Task 1: 新增菜单和权限映射
**Files:**
- Modify: `internal/initialize/seed.go`
- [ ] **Step 1: 新增菜单记录**
在 `pricing` 菜单之后插入(第 122 行之后):
```go
{MenuLevel: 0, ParentId: 20, Path: "entryExit", Name: "entryExit", Hidden: false, Component: "view/parking/entryExit.vue", Sort: 5, Meta: dao.Meta{Title: "进出场操作", Icon: "switch"}},
```
- [ ] **Step 2: 新增 authority_menu 映射**
在第 173 行之后新增:
```go
// 进出场操作 (31) — admin + operator
{MenuId: "31", AuthorityId: "618"}, {MenuId: "31", AuthorityId: "888"}, {MenuId: "31", AuthorityId: "9527"},
```
- [ ] **Step 3: 编译验证**
```bash
cd lc_garage && go build -o build/bin/smart-parking.exe .
```
- [ ] **Step 4: 提交**
```bash
git add internal/initialize/seed.go
git commit -m "feat: 新增进出场操作菜单和权限——MenuId=31, ParentId=20"
```
---
### Task 2: 创建进出场操作页面
**Files:**
- Create: `frontend/src/view/parking/entryExit.vue`
- [ ] **Step 1: 完整文件内容(template + script + style)**
```vue
查询
重置
{{ activeTab === 'entry' ? '车辆信息' : '出场信息' }}
{{ vehicleInfo.plate_number || '-' }}
{{ vehicleInfo.rfid_tag || '-' }}
{{ vehicleInfo.VehicleType.name }}
临时车
{{ vehicleInfo.Owner.owner_name }}
是
确认进场
确认进场(临时车)
```
- [ ] **Step 2: 提交**
```bash
git add frontend/src/view/parking/entryExit.vue
git commit -m "feat: 新增手动进出场操作页面——支持车牌/RFID查询进出场"
```
---
### Task 3: 端到端验证
- [ ] **Step 1: 启动开发模式**
```bash
cd lc_garage && wails dev
```
- [ ] **Step 2: 验证菜单显示**
1. 登录(admin / 123456)
2. 侧边栏 → 停车管理 → 确认"进出场操作"菜单出现
3. 点击进入页面,确认 Tab 切换正常
- [ ] **Step 3: 验证进场流程**
1. 输入新车牌号(如"测试001")
2. 点查询 → 确认显示"未找到车辆信息" + 停车场选择
3. 选停车场 → 点"确认进场(临时车)"
4. 确认绿色"入场成功"提示
- [ ] **Step 4: 验证出场流程**
1. 切换到"车辆出场"Tab
2. 输入刚才的车牌号 → 点查询
3. 确认车辆信息卡片显示
4. 点"确认出场并收费" → 确认弹窗 → 确认
5. 确认成功消息显示费用信息
- [ ] **Step 5: 验证边界情况**
| 场景 | 预期结果 |
|------|---------|
| 空输入点查询 | "请至少输入车牌号或RFID标签" |
| 未选停车场点确认进场 | "请选择停车场" |
| 已出场车辆再次出场 | "车辆未入场或已出场" |
| 不在场车辆点出场 | "车辆未入场或已出场" |
- [ ] **Step 6: 提交**
```bash
git add -A && git commit -m "verify: 手动进出场页面端到端验证通过"
```