Workbench 模块

工作台模块,包含所有工作台相关的功能页面。

目录结构

Workbench/
├── Controllers/
│   └── LSWorkbenchViewController.swift          # 工作台主页面
├── ViewModels/
│   └── WorkbenchViewModel.swift                 # 工作台 ViewModel
├── Models/
│   └── WorkbenchModel.swift                     # 工作台数据模型
└── Views/
    ├── LSCarStatusView.swift                    # 车辆状态视图(三角形标签)
    ├── LSCustomPercentView.swift                # 自定义百分比视图
    ├── LSExamView.swift                         # 考试考核视图
    ├── LSMapView.swift                          # 地图视图
    ├── LSTrainingView.swift                     # 培训课程视图
    ├── LSVehicleCardView.swift                  # 车辆卡片视图
    ├── Accident/
    │   └── AccidentReportViewController.swift   # 事故上报页面
    ├── Exam/
    │   └── ExamViewController.swift             # 考试考核页面
    ├── Station/
    │   └── StationMapViewController.swift       # 站点地图页面
    ├── Training/
    │   └── TrainingViewController.swift         # 培训课程页面
    └── VehicleManagement/
        ├── VehicleManagementViewController.swift # 车辆管理列表页面
        └── VehicleDetailViewController.swift     # 车辆详情页面

功能模块

1. 工作台主页 (LSWorkbenchViewController)

  • 事故上报卡片
  • 车辆管理(横向滚动卡片)
  • 站点点位地图
  • 培训&课程统计
  • 考试&考核成绩

2. 车辆管理 (VehicleManagement)

  • VehicleManagementViewController: 车辆列表页面
  • 显示所有车辆
  • 车辆状态(发车中/维修中/已返车)
  • 电池电量显示
  • 点击查看详情
  • VehicleDetailViewController: 车辆详情页面

  • 显示单个车辆的详细信息

3. 站点地图 (Station)

  • StationMapViewController: 站点地图页面
  • 显示所有站点在地图上的分布

4. 培训课程 (Training)

  • TrainingViewController: 培训课程页面
  • 课程列表
  • 学习进度

5. 考试考核 (Exam)

  • ExamViewController: 考试考核页面
  • 考试列表
  • 成绩查询

6. 事故上报 (Accident)

  • AccidentReportViewController: 事故上报页面
  • 上报事故信息

自定义视图组件

LSCarStatusView

三角形状态标签视图,用于显示车辆状态。

let statusView = LSCarStatusView.orange()
statusView.triangleColor = "FF9800".color
statusView.triangleHeightRatio = 0.5

LSVehicleCardView

车辆卡片视图,显示车辆信息。

let card = LSVehicleCardView(
    status: "维修中",
    plate: "粤A XV7029试",
    number: "NO.0088",
    km: 643,
    statusColor: "FF9800".color
)

LSMapView

地图视图,基于 MapKit。

let mapView = LSMapView.shenzhen()
mapView.addAnnotation(
    coordinate: CLLocationCoordinate2D(latitude: 22.5431, longitude: 114.0579),
    title: "站点1",
    subtitle: "深圳"
)

LSTrainingView

培训课程统计视图。

LSExamView

考试考核统计视图。

路由跳转

所有页面都支持路由跳转:

// 跳转到车辆管理
navigate(to: .vehicleManagement)

// 跳转到车辆详情
navigate(to: .vehicleDetail, parameters: ["vehicleId": "NO.0088"])

// 跳转到站点地图
navigate(to: .stationMap)

// 跳转到培训课程
navigate(to: .training)

// 跳转到考试考核
navigate(to: .exam)

// 跳转到事故上报
navigate(to: .accidentReport)

注意事项

  1. 所有 ViewController 都继承自 LSBaseViewController
  2. 使用 SnapKit 进行布局
  3. 使用适配方案(.adapted / .w)进行屏幕适配
  4. 颜色使用 String 扩展("FF9800".color)
  5. 图片使用 String 扩展("home_car_ic".image)