# 餐厅管理系统 - Vue3 前端

## 项目概述

这是一个基于 Vue 3 + TypeScript + Vite 开发的现代化餐厅管理系统前端应用。系统采用模块化设计，支持多角色（管理员、商户、用户）管理，通过前后端分离的架构，为餐厅运营提供全方位的数字化解决方案。

## ✨ 技术栈

- **核心框架**: Vue.js `3.5.13` + TypeScript `~5.8.0`
- **构建工具**: Vite `6.2.4`
- **UI 组件库**: Element Plus `2.10.2`
- **状态管理**: Pinia `3.0.1`
- **路由管理**: Vue Router `4.5.0`
- **HTTP 客户端**: Axios `1.10.0`
- **WebSocket 实时通信**: SockJS `1.6.1` + @stomp/stompjs `7.0.0`
- **图表可视化**: ECharts `5.6.0`
- **地图服务**: 高德地图 API (`@amap/amap-jsapi-loader`, `@vuemap/vue-amap`, `vue-amap`, `amap`)
- **样式预处理**: Sass (`sass-embedded`)
- **代码规范**: Prettier `3.5.3`
- **类型检查**: vue-tsc `2.2.8`
- **开发工具**: Vite Plugin Vue Devtools `7.7.2`
- **脚本工具**: npm-run-all2 `7.0.2`

## 系统架构

### 三大用户角色模块

#### 1. 管理员模块 (`/admin`)

- **分店管理**: 连锁餐厅分店信息管理
- **菜品管理**: 菜品信息、价格、库存管理
- **商户管理**: 入驻商户的审核与管理
- **系统首页**: 整体运营数据概览

#### 2. 商户模块 (`/merchant`)

- **仪表盘**: 店铺运营数据总览
- **财务管理**:
  - 日营业额统计
  - 账户收款管理
  - 营收管理
  - 财务报表下载
- **订单管理**:
  - 待处理订单
  - 退款申请处理
- **商品管理**: 店铺商品上架、编辑、库存管理
- **评价管理**:
  - 顾客评价查看
  - 评价回复管理
- **店铺管理**: 店铺信息维护

#### 3. 用户模块 (`/user`)

- **首页**: 餐厅推荐、热门菜品展示
- **搜索**: 智能搜索餐厅和菜品
- **购物车**: 在线点餐功能
- **订单管理**: 历史订单查看
- **地图定位**: 基于地理位置的餐厅推荐
- **菜品分类**: 按类型浏览菜品
- **餐厅详情**: 详细餐厅信息展示
- **消费统计**: 个人消费数据可视化
- **关于我们**: 平台介绍
- **联系我们**: 客服联系方式

## 核心功能特性

### 🔐 认证与授权

- **Token 基于认证**: 使用 JWT (Bearer Token) 进行用户认证。
- **全局 HTTP 拦截器**:
  - **请求拦截**: 自动在请求头中附加 `Authorization` 信息。
  - **响应拦截**: 集中处理 `401` (未授权)、`403` (禁止访问)、`500` (服务器错误) 等 HTTP 状态码，实现统一的错误处理和页面跳转逻辑。
- **路由守卫**: 基于用户角色和登录状态进行精细化的页面访问控制。
- **持久化登录**: 用户登录状态通过 `localStorage` 持久化，在应用启动时自动恢复。

### 🗺️ 地图集成

- **高德地图 API**: 集成高德地图 JS API 2.0。
- **核心功能**: 实现实时定位、餐厅地理位置展示、路径规划与导航。
- **组件化封装**: 将地图功能封装在独立的 Vue 组件 (`Map.vue`) 中，便于复用和维护。

### 📊 数据可视化

- **ECharts 集成**: 基于 ECharts 5 实现丰富的图表展示。
- **业务场景**: 用于营收趋势分析、消费数据统计、运营数据仪表盘等。
- **实时更新**: 支持动态数据绑定，实现数据的实时可视化更新。

### 🎨 现代化UI设计

- **Element Plus**: 采用功能强大的企业级 UI 组件库。
- **响应式布局**: 适配桌面、平板等不同设备。
- **国际化**: 集成 `zh-cn` 中文语言包。
- **统一的设计语言**: 提供一致、优雅的用户交互体验。

### 🔧 开发体验

- **TypeScript**: 全程类型支持，保障代码健壮性。
- **Vite**: 极速的冷启动和模块热更新 (HMR)。
- **Vue Devtools**: 集成 `vite-plugin-vue-devtools`，提供更强大的调试能力。
- **代码格式化**: 使用 Prettier 统一代码风格。

## 项目结构

```
src/
├── api/              # API 请求模块 (e.g., auth.ts)
├── assets/           # 静态资源 (CSS, images)
├── components/       # 全局公共组件
├── router/           # 路由配置
│   ├── index.ts      # 主路由文件，组合各模块路由
│   ├── guards.ts     # 路由守卫 (权限控制)
│   ├── admin.ts      # 管理员模块路由
│   ├── merchant.ts   # 商户模块路由
│   ├── user.ts       # 用户模块路由
│   └── auth.ts       # 认证相关路由 (登录、注册)
├── stores/           # 全局 Pinia 状态管理 (e.g., authStore)
├── types/            # TypeScript 类型定义
├── userStores/       # 用户侧 Pinia 状态管理 (e.g., cartStore)
├── utils/            # 工具函数 (e.g., storage.ts)
└── views/            # 页面/视图组件
    ├── admin/        # 管理员页面
    ├── login/        # 登录/注册相关页面
    ├── merchant/     # 商户页面
    └── user/         # 用户页面
```

## 快速开始

### 环境要求

- Node.js `18+` (推荐 `22+`)
- npm 或 pnpm

### 安装依赖

```bash
npm install
```

### 开发环境启动

```bash
npm run dev
```
此命令将启动 Vite 开发服务器，并自动在浏览器中打开应用。

### 生产构建

```bash
npm run build
```

### 预览构建结果

```bash
npm run preview
```

## 开发规范

- 使用 TypeScript 进行类型检查 (`npm run type-check`)。
- 遵循 Vue 3 Composition API 开发模式。
- 统一使用 Prettier 进行代码格式化 (`npm run format`)。
- 组件采用单文件组件 (SFC) 格式。
- 路由按功能模块分离管理。

## 浏览器支持

支持所有现代浏览器，包括：

- Chrome (推荐)
- Firefox
- Safari
- Edge

---

_最后更新: 2025年6月22日_
