# vueadmin后台管理系统 **Repository Path**: cjr51/vueadmin ## Basic Information - **Project Name**: vueadmin后台管理系统 - **Description**: 一个使用springboot+vue的后台管理系统 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2022-09-17 - **Last Updated**: 2025-01-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 用户权限管理系统 介绍:本系统的设计目标是对应用系统的所有资源进行权限控制,比如应用系统的功能菜单、各个界面的按钮控件等进行权限的操控。 ## 需求分析 1. 系统登录 2. 对系统的所有资源进行权限控制,比如系统的用户管理、角色管理、菜单管理,各个界面的按钮控件等进行权限的操控; 3. 根据身份权限授权给操作,实现对资源的访问控制管理。 ## 技术栈 ### 前端 1. Vue 2 开发框架(提高页面开发的效率) 2. ElementUI(基于vue的组件库) ### 后端 1. Java 编程语言 + SpringBoot 框架(以SpringBoot作为框架基础,在未来易拓展,适合微服务化体系等) 2. MyBatis-Plus(简化开发,快速进行CRUD操作,提高开发效率) 3. SpringSecurity(安全框架,通过各种各样的拦截器来控制权限的访问,从而保证系统安全,避免用户越级操作等) 4. jwt(作为用户身份凭证) 5. MySQL数据库 6. redis缓存(考虑到项目可能需要部署多台,一些需要共享的信息就保存在中间件中,Redis是现在主流的缓存中间件,也刚好适合当前项目) ## 数据库设计 因为是后台管理系统的权限模块,所以我们需要考虑的表主要就几个:用户表、角色表、菜单权限表、以及关联的用户角色中间表、菜单角色中间表。 ### 用户表(sys_user) ```sql `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用户id', `username` varchar(64) DEFAULT NULL COMMENT '用户名', `password` varchar(64) DEFAULT NULL COMMENT '密码', `avatar` varchar(255) DEFAULT NULL COMMENT '头像', `email` varchar(64) DEFAULT NULL COMMENT '邮箱', `city` varchar(64) DEFAULT NULL COMMENT '城市', `created` datetime DEFAULT NULL COMMENT '创建时间', `updated` datetime DEFAULT NULL COMMENT '更新时间', `last_login` datetime DEFAULT NULL COMMENT '最后登录时间', `statu` int(5) NOT NULL COMMENT '状态' ; ``` ### 角色表(sys_role) ```sql `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '角色id',name` varchar(64) NOT NULL COMMENT '角色名称', `code` varchar(64) NOT NULL COMMENT '角色编码', `remark` varchar(64) DEFAULT NULL COMMENT '备注', `created` datetime DEFAULT NULL COMMENT '创建时间', `updated` datetime DEFAULT NULL COMMENT '更新时间', `statu` int(5) NOT NULL COMMENT '状态'; ``` ### 菜单表(sys_menu) ```sql `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '菜单ID', `parent_id` bigint(20) DEFAULT NULL COMMENT '父菜单ID,一级菜单为0', `name` varchar(64) NOT NULL COMMENT '菜单名', `path` varchar(255) DEFAULT NULL COMMENT '菜单URL', `perms` varchar(255) DEFAULT NULL COMMENT '授权(多个用逗号分隔,如:user:list,user:create)', `component` varchar(255) DEFAULT NULL COMMENT '菜单', `type` int(5) NOT NULL COMMENT '类型 0:目录 1:菜单 2:按钮', `icon` varchar(32) DEFAULT NULL COMMENT '菜单图标', `orderNum` int(11) DEFAULT NULL COMMENT '排序', `created` datetime DEFAULT NULL COMMENT '创建时间', `updated` datetime DEFAULT NULL COMMENT '更新时间', `statu` int(5) NOT NULL COMMENT '状态'; ``` ### 用户角色中间表(sys_user_role) ```sql `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', `user_id` bigint(20) NOT NULL COMMENT '用户id', `role_id` bigint(20) NOT NULL COMMENT '角色id'; ``` ### 菜单角色中间表(sys_role_menu) ```sql `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', `role_id` bigint(20) NOT NULL COMMENT '角色id', `menu_id` bigint(20) NOT NULL COMMENT '菜单id'; ``` ## 后端开发 ### 结果封装 因为是前后端分离项目,所以需要有一个统一的结果返回封装类,这样前后端交互的时候才有一个统一的标准。 ### 全局异常处理 有时候不可避免服务器报错的情况,如果不配置异常处理机制,就会默认返回tomcat或者nginx的5XX页面,对普通用户来说,不太友好,用户也不懂什么情况。这时候需要我们程序员设计返回一个友好简单的格式给前端。 #### 安装教程 1. xxxx 2. xxxx 3. xxxx #### 使用说明 1. xxxx 2. xxxx 3. xxxx #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)