当前位置: 首页 > news >正文

基于 Vue,SPringBoot开发的新能源充电桩的系统

一、项目概述

这是一个基于 Vue,SPringBoot开发的新能源充电桩的系统,包括管理员管理系统,用户预约系统,主要用于管理充电桩预约、订单处理、用户管理等功能。

二、系统架构

**1. **技术栈

 前端框架: Vue.js

 UI框架: Element UI

 图表库: ECharts

 路由管理: Vue Router

 状态管理: Vuex

 HTTP请求: Axios

**2. **项目结构

src/

├── components/ # 组件目录

├── views/ # 页面视图

├── assets/ # 静态资源

├── utils/ # 工具类

├── icons/ # 图标资源

└── App.vue # 根组件

三、核心功能模块

1 组件的注册

** **导入组件,这些组件你可以看成java中的类,@后跟的是组件的位置

import Index from '@/views/index'
import Home from '@/views/home'
import Login from '@/views/login'
import NotFound from '@/views/404'
import UpdatePassword from '@/views/update-password'
import pay from '@/views/pay'
import register from '@/views/register'
import center from '@/views/center'
import beifen from '@/views/modules/databaseBackup/beifen'
import huanyuan from '@/views/modules/databaseBackup/huanyuan'// 其他组件导入...

从项目的不同路径导入多个 Vue 组件,这些组件会在后续的路由配置里使用。

配置路由

const routes = [{path: '/index',name: '首页',component: Index,children: [// 子路由配置...]
},
{path: '/login',name: 'login',component: Login,meta: {icon:'', title:'login'}
},
// 其他路由配置...
]
  • routes 是一个数组,包含了多个路由对象。
  • 每个路由对象包含以下属性:
    • path:路由的路径。
    • name:路由的名称。
    • component:该路由对应的组件。
    • children:可选属性,用于定义子路由。
    • meta:可选属性,用于存储与路由相关的元数据,例如图标和标题。

实例化 VueRouter

const router = new VueRouter({mode: 'hash',/*hash模式改为history*/routes // (缩写)相当于 routes: routes
})
  • new VueRouter 用于创建一个 Vue Router 实例。
  • mode: 'hash':指定路由模式为 hash 模式,URL 会带有 # 符号。
  • routes:将之前定义的路由规则传递给 Vue Router 实例。

2. 请求路径映射

vue.config.js配置了路由端口的转发,主要转到后端的端口,用于和数据库进行交互。

devServer: {host: "0.0.0.0", //指定使用一个 host。默认是 localhost,这里默认值即可port: 8082, //指定端口hot: true, // 开启热更新https: false, // 是否开启https模式proxy: { // 请求代理服务器'/xinnengyuanchongdainxitong': { //匹配到这个路径target: 'http://localhost:8080/xinnengyuanchongdainxitong/', //转发到 8080 端口pathRewrite: {'^/xinnengyuanchongdainxitong': ''  // 重写路径}}}},

以登录为例:

前端发出的初始uri
http://localhost:8082/xinnengyuanchongdainxitong/users/login?username=duhong&password=123456

经过映射后,转发到后端服务中:

http://localhost:8080/xinnengyuanchongdainxitong/users/login?username=duhong&password=123456

基础路径是在base.js中设置的

const base = {get() {return {url : "http://localhost:8080/xinnengyuanchongdainxitong/",name: "xinnengyuanchongdainxitong",// 退出到首页链接indexUrl: 'http://localhost:8080/xinnengyuanchongdainxitong/front/index.html'};},getProjectName(){return {projectName: "新能源充电系统"} }
}
export default base

3 处理逻辑,如何查找

根据vue中的请求的登录路径,找到UserController,请求最先经过Controller

UserController

后面你可以查看调用的方法

请求->Controller->Service->dao->数据库操作

4 登录状态如何维持的

看上面的登录处理逻辑,如果有该用户就通过工具类获取token,并在实例化的R类中添加token以及其他字段并返回json数据,再回看登录的Vue页面

从then开始,主要是处理登录请求的返回数据,将数据存入本地储存并跳转到/index路径对应的组件。

每次请求时api都会从本地储存中带上token,在http.js中设置。

那么后端是如何识别是否是正确的token呢?

通过拦截器:

那么整个请求响应的逻辑就变成了

请求->拦截器->Controller->Service->Dao

对于不需要鉴权的路径,如登录,注册等,可以通过@IgnoreAuth,忽略权限验证。

5 如何通过网页操作查看到响应操作的请求路径

浏览器打开开发者工具

点击网络,找到对应的功能点击,就可以查看到对应的请求了。

6 说明

用户界面

http://localhost:8080/xinnengyuanchongdainxitong/front/index.html

管理员界面

http://localhost:8082/

7 数据库

(1)下图是客服聊天实体和其具备的属性。


客服聊天实体属性图

(2)下图是新能源公告实体和其具备的属性。


新能源公告实体属性图

(3)下图是反馈实体和其具备的属性。


反馈实体属性图

(4)下图是用户实体和其具备的属性。


用户实体属性图

(5)下图是充电桩预约实体和其具备的属性。


充电桩预约实体属性图

(6)下图是充电桩实体和其具备的属性。

8 功能实现,部分

**5.1 **管理员功能实现

**5.1.1 **充电桩管理

图5.1 即为编码实现的充电桩管理界面,管理员在充电桩管理界面中可以对界面中显示的所有数据进行,可以对充电桩信息的充电桩状态进行查看,可以添加新的充电桩信息等。

图5.1 充电桩管理界面

**5.1.2 **充电桩预约管理

图5.2 即为编码实现的充电桩预约管理界面,管理员在充电桩预约管理界面中查看奖罚种类信息,奖罚描述信息,可以导出充电桩预约信息,新增充电桩预约信息等。

图5.2 充电桩预约管理界面

**5.1.3 **报修管理

图5.3 即为编码实现的报修管理界面,管理员在报修管理界面中新增报修,并设置报修的角色,可以删除报修。

图5.3 报修管理界面

**5.1.4 **公告管理

图5.4 即为编码实现的公告管理界面,管理员在公告管理界面查看公告的工作状态为正式公告还是实习公告,可以对公告的数据进行导出,可以添加新公告的信息,可以编辑公告信息,删除公告信息。

图5.4 公告管理界面

**5.2 **用户功能实现

**5.2.1 **充电桩

图5.5 即为编码实现的充电桩界面。

图5.5 充电桩界面

**5.2.2 **在线客服

图5.6 即为编码实现的在线客服界面。

图5.6 在线客服界面

**5.2.3 **报修

图5.7 即为编码实现的报修界面。

图5.7 报修界面

支付功能

9 vue文件对应功能

文件名/模块名类型主要功能
404.vue组件展示404错误页面,页面中有错误图片和提示文字,起简单的错误提示作用。
center.vue组件作为用户中心页面,提供用户信息表单用于显示和修改用户信息,同时处理用户角色权限相关逻辑。
home.vue组件作为系统首页,显示欢迎信息和项目名称,进行简单的首页展示。
index.vue组件作为系统主框架页面,包含头部导航和侧边栏,是整个系统的整体布局容器。
login.vue组件作为用户登录页面,包含登录表单,处理用户登录逻辑,对用户输入进行验证。
modules/baoxui/模块报修管理模块,有报修列表可查看报修信息,具备添加和编辑报修信息的功能,处理报修相关业务逻辑。
modules/chat/模块聊天模块,包含聊天列表,能进行消息处理,实现用户之间的通信功能。
modules/chongdianzhuang/模块充电桩管理模块,有充电桩列表可查看充电桩信息,具备添加和编辑充电桩信息的功能,处理充电桩库存和状态管理。
modules/chongdianzhuangOrder/模块充电桩订单管理模块,包含订单列表,可进行订单处理,实现预约、取消预约等订单相关功能。
modules/config/模块系统配置管理模块,有配置列表,可对配置项进行管理,处理系统参数的设置。
modules/databaseBackup/模块数据库备份还原模块,具备备份和还原数据库的功能,用于数据库的维护操作。
modules/dictionary/模块数据字典管理模块,有字典列表,可对字典项进行管理,将系统字典数据整理成表格形式。

10 后端服务文件对应功能

分类名称主要功能描述
注解相关LoginUser.java用于获取当前登录用户信息,支持从请求头获取token并解析用户信息
注解相关APPLoginUser.java专门用于APP端用户认证,处理APP特有的认证逻辑
注解相关IgnoreAuth.java标记不需要token验证的接口,用于公开接口的访问控制
配置相关InterceptorConfig.java配置请求拦截器,处理跨域请求,配置静态资源访问,设置拦截路径
配置相关MybatisPlusConfig.java配置分页插件、乐观锁插件、SQL性能分析插件、动态表名插件
配置相关MyMetaObjectHandler.java自动填充创建时间、更新时间、创建人、更新人
业务控制器BaoxuiController.java提交报修信息,查询报修列表,更新报修状态,删除报修记录
业务控制器ChatController.java发送消息,获取聊天记录,获取未读消息,标记消息已读
业务控制器ChongdianzhuangController.java添加充电桩,修改充电桩信息,查询充电桩列表,删除充电桩,充电桩状态管理
业务控制器ChongdianzhuangOrderController.java创建订单,支付订单,查询订单列表,取消订单,订单状态更新
业务控制器CommonController.java文件上传,文件下载,数据统计,系统信息查询
业务控制器ConfigController.java获取配置信息,更新配置信息,配置项管理
业务控制器DictionaryController.java获取字典数据,添加字典项,修改字典项,删除字典项
业务控制器FileController.java上传文件,下载文件,删除文件,文件列表查询
业务控制器GonggaoController.java发布公告,修改公告,删除公告,查询公告列表
业务控制器UsersController.java添加管理员,修改管理员信息,删除管理员,查询管理员列表,重置密码
业务控制器YonghuController.java用户注册,用户登录,修改用户信息,查询用户列表,重置密码
数据访问层(Dao)BaoxuiDao.java报修信息CRUD,报修状态查询,报修统计
数据访问层(Dao)ChatDao.java消息记录CRUD,未读消息查询,聊天记录统计
数据访问层(Dao)ChongdianzhuangDao.java充电桩信息CRUD,充电桩状态查询,充电桩统计
数据访问层(Dao)ChongdianzhuangOrderDao.java订单信息CRUD,订单状态查询,订单统计
数据访问层(Dao)CommonDao.java文件信息CRUD,系统配置CRUD,字典数据CRUD
数据访问层(Dao)ConfigDao.java配置信息CRUD,配置项查询,配置更新
数据访问层(Dao)DictionaryDao.java字典项CRUD,字典类型查询,字典值查询
数据访问层(Dao)FileDao.java文件信息CRUD,文件查询,文件统计
数据访问层(Dao)GonggaoDao.java公告信息CRUD,公告查询,公告统计
数据访问层(Dao)UsersDao.java管理员信息CRUD,管理员查询,权限管理
数据访问层(Dao)YonghuDao.java用户信息CRUD,用户查询,用户统计
服务层(Service)BaoxuiService.java报修信息处理,报修状态流转,报修通知推送,报修统计服务
服务层(Service)ChatService.java消息发送处理,消息存储管理,未读消息处理,消息推送服务
服务层(Service)ChongdianzhuangService.java充电桩信息管理,充电桩状态监控,充电桩预约处理,充电桩统计服务
服务层(Service)ChongdianzhuangOrderService.java订单创建处理,订单支付处理,订单状态管理,订单统计服务
服务层(Service)CommonService.java文件处理服务,数据统计服务,系统信息服务,缓存管理服务
服务层(Service)ConfigService.java配置信息管理,配置缓存处理,配置更新通知,配置验证服务
服务层(Service)DictionaryService.java字典数据管理,字典缓存处理,字典数据转换,字典验证服务
服务层(Service)FileService.java文件上传处理,文件存储管理,文件下载处理,文件清理服务
服务层(Service)GonggaoService.java公告发布处理,公告推送服务,公告状态管理,公告统计服务
服务层(Service)UsersService.java管理员信息管理,权限管理服务,密码加密服务,登录认证服务
服务层(Service)YonghuService.java用户注册服务,用户认证服务,用户信息管理,用户统计服务
服务实现层(ServiceImpl)BaoxuiServiceImpl.java实现报修信息处理逻辑,报修状态流转逻辑,报修通知推送逻辑,报修统计逻辑
服务实现层(ServiceImpl)ChatServiceImpl.java实现消息发送逻辑,消息存储逻辑,未读消息处理逻辑,消息推送逻辑
服务实现层(ServiceImpl)ChongdianzhuangServiceImpl.java实现充电桩信息管理逻辑,充电桩状态监控逻辑,充电桩预约处理逻辑,充电桩统计逻辑
服务实现层(ServiceImpl)ChongdianzhuangOrderServiceImpl.java实现订单创建处理逻辑,订单支付处理逻辑,订单状态管理逻辑,订单统计逻辑
服务实现层(ServiceImpl)CommonServiceImpl.java实现文件处理逻辑,数据统计逻辑,系统信息逻辑,缓存管理逻辑
服务实现层(ServiceImpl)ConfigServiceImpl.java实现配置信息管理逻辑,配置缓存处理逻辑,配置更新通知逻辑,配置验证逻辑
服务实现层(ServiceImpl)DictionaryServiceImpl.java实现字典数据管理逻辑,字典缓存处理逻辑,字典数据转换逻辑,字典验证逻辑
服务实现层(ServiceImpl)FileServiceImpl.java实现文件上传处理逻辑,文件存储管理逻辑,文件下载处理逻辑,文件清理逻辑
服务实现层(ServiceImpl)GonggaoServiceImpl.java实现公告发布处理逻辑,公告推送逻辑,公告状态管理逻辑,公告统计逻辑
服务实现层(ServiceImpl)UsersServiceImpl.java实现管理员信息管理逻辑,权限管理逻辑,密码加密逻辑,登录认证逻辑
服务实现层(ServiceImpl)YonghuServiceImpl.java实现用户注册逻辑,用户认证逻辑,用户信息管理逻辑,用户统计逻辑
工具类JwtUtils.java生成token,验证token,解析token,刷新token
工具类StringUtils.java字符串处理,字符串验证,字符串转换
工具类DateUtils.java日期格式化,日期计算,日期验证
工具类FileUtils.java文件操作,文件验证,文件类型判断
工具类RedisUtils.javaRedis操作,缓存管理,分布式锁
工具类ValidatorUtils.java数据验证,参数校验,格式验证
工具类SecurityUtils.java密码加密,安全验证,权限检查
工具类ExcelUtils.javaExcel导出,Excel导入,Excel模板处理
http://www.lryc.cn/news/595778.html

相关文章:

  • ospf技术
  • 【机器学习】第四章 回归算法
  • 高层功能架构详解 - openExo
  • Flutter基础(前端教程①⑧-Text文本-Icon图标-Image图片)
  • C语言符号可见性控制与工程实践——深入理解 __attribute__((visibility)) 和 -fvisibility=hidden
  • 跨服务调用中,直接使用 MDC的上下文无法自动传递
  • Oracle 12c 创建数据库初级教程
  • 从FDTD仿真到光学神经网络:机器学习在光子器件设计中的前沿应用工坊
  • 从RAG到Agentic RAG
  • 无人机吊舱与遥控器匹配技术解析
  • 一文读懂深度模型优化器,掌握炼丹工具
  • MySQL 学习二 MVCC
  • IBGP互联(ensp)
  • 【nginx】隐藏服务器指纹:Nginx隐藏版本号配置修改与重启全攻略
  • Unity中,Panel和 Canvas的区别
  • 数字签名(Digital Signature)
  • VR技术在元宇宙游戏中的作用及发展前景深度分析
  • A316-V71-Game-V1:虚拟7.1游戏声卡评估板技术解析
  • Leetcode—692. 前K个高频单词【中等】(桶排序)
  • PyTorch武侠演义 第一卷:初入江湖 第4章:损失玉佩的评分风波
  • 【AI学习从零至壹】Transformer
  • 02-netty基础-java四种IO模型
  • Java设计模式揭秘:深入理解模板方法模式
  • 详解FreeRTOS开发过程(二)-- 列表和列表项
  • 【前端】ikun-pptx编辑器前瞻问题二: pptx的压缩包结构,以及xml正文树及对应元素介绍
  • 机器学习模型视角下的市场联动机制:美元美债与黄金3400价格的VAR向量自回归分析
  • 面向对象高级:static
  • linux c语言进阶 - 进程,通信方式
  • VRRP技术
  • 从零构建实时通信引擎:Freeswitch源码编译与深度优化指南