# 环境监督系统 (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 项目 │ └── ems-monitoring-system/ │ ├── 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/ems-monitoring-system ``` 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 (公众监督员)**: 可以提交环境问题的反馈。 登录后,系统会根据您的角色,展示不同的菜单和界面主题。