# 环境监督系统 (EMS)

## 📖 项目简介

环境监督系统 (EMS) 是一个全栈的Web应用程序，旨在提供一个全面的平台，用于环境事件的报告、监控、管理和分析。系统支持多角色访问，包括管理员、决策者、网格员、监督员和公众监督员，每个角色都有特定的权限和定制化的用户界面。

## ✨ 主要功能

- **仪表盘**: 为决策者和管理员提供关键指标和数据的可视化概览。
- **网格化地图**: 在地图上直观地展示和管理环境监督网格。
- **任务管理**: 网格员可以接收、处理和汇报环境监督任务。
- **反馈系统**: 公众监督员和监督员可以提交、查看和管理环境问题反馈。
- **系统管理**: 管理员可以管理用户信息和查看系统操作日志。
- **个性化设置**: 所有用户都可以查看个人信息和操作日志。
- **动态主题**: 系统界面颜色会根据用户角色动态变化，提供更好的用户体验。

## 🛠️ 技术栈

本项目采用前后端分离的架构。

### 后端 (ems-backend)

- **框架**: [Spring Boot 3](https://spring.io/projects/spring-boot)
- **语言**: Java 17
- **文件存储**: json
- **API文档**: SpringDoc (Swagger UI)
- **身份认证**: Spring Security with JWT
- **构建工具**: Maven

### 前端 (ems-frontend)

- **框架**: [Vue 3](https://vuejs.org/)
- **构建工具**: [Vite](https://vitejs.dev/)
- **语言**: TypeScript
- **UI 组件库**: [Element Plus](https://element-plus.org/)
- **状态管理**: [Pinia](https://pinia.vuejs.org/)
- **路由**: [Vue Router](https://router.vuejs.org/)
- **HTTP客户端**: Axios
- **代码风格**: Prettier

## 📁 项目结构

```
.
├── ems-backend/      # 后端 Spring Boot 项目
│   ├── src/
│   └── pom.xml
├── ems-frontend/     # 前端 Vue.js 项目
│   ├── src/
│   ├── vite.config.ts
│   └── package.json
└── README.md         # 项目说明文件
```

## 🚀 快速开始

### 环境准备

- [JDK 17](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) 或更高版本
- [Maven 3.8](https://maven.apache.org/download.cgi) 或更高版本
- [Node.js 22.x](https://nodejs.org/) 或更高版本

### 后端启动

1.  **进入后端目录**:
    ```bash
    cd ems-backend
    ```

2.  **安装依赖**:
    ```bash
    mvn install
    ```

3.  **运行项目**:
    ```bash
    mvn spring-boot:run
    ```
    后端服务将启动在默认端口 (通常是 `8080`)。

### 前端启动

1.  **进入前端目录**:
    ```bash
    cd ems-frontend
    ```

2.  **安装依赖**:
    ```bash
    npm install
    ```

3.  **启动开发服务器**:
    ```bash
    npm run dev
    ```
    前端应用将启动在 `http://localhost:5173` (或其他Vite指定的端口)。

## 👥 用户角色

系统预设了以下五种角色，拥有不同的职责和访问权限：

1.  **ADMIN (管理员)**: 拥有最高权限，可以访问所有功能，包括用户管理和系统设置。
2.  **DECISION_MAKER (决策者)**: 关注宏观数据，主要访问仪表盘和地图。
3.  **GRID_WORKER (网格员)**: 负责执行具体任务，主要使用任务管理和地图功能。
4.  **SUPERVISOR (监督员)**: 负责管理和审查收到的反馈信息。
5.  **PUBLIC_SUPERVISOR (公众监督员)**: 可以提交环境问题的反馈。

登录后，系统会根据您的角色，展示不同的菜单和界面主题。 
