二次开发RuoYi-Vue操作记录
- 一、本地启动修改
- 1、修改文件路径
- 2、修改redis配置
- 3、数据源配置
- 4、导入sql
- 二、新增模块
- 1、创建模块
- 2、添加依赖
- 三、新增页面
- 1、数据准备
- 2、代码生成
- 3、菜单管理
- (1)目录创建
- (2)菜单创建
- (3)按钮创建
- (4)页面效果
- 四、获取登录信息
- 五、权限相关
- 1、用户添加
- 2、角色管理
此篇是针对 ruoyi-vue项目 的个人实操的过程及记录,一个非常好用的、适合二次开发的管理端项目。
文档地址:http://doc.ruoyi.vip
由于我已经把包名等信息都改成了自己的,所以大家看到的是yushu的包结构
操作过程如有错误欢迎指正交流~
一、本地启动修改
1、修改文件路径
2、修改redis配置
3、数据源配置
4、导入sql
即可启动成功。
二、新增模块
1、创建模块
创建一个新的maven项目,可以都删除干净创建产生的文件,只留下目录即可
2、添加依赖
在自己新建的模块里面引入common依赖
在根pom下面引入新建的模块内容,如图所示
在admin模块下面,添加yushu-mk模块的依赖
重新编译项目,能正常允许大概率就没问题。
如果新建的模块的包名或者模块名不一致,需要注意启动类的修改,加上扫描mapper和包路径,此处仅提供参考
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
//@MapperScan(value = {"com.yushu.*","com.test.mk.*"})
//@ComponentScan({"com.yushu.*","com.test.mk.*"})
public class YuShuApplication {
public static void main(String[] args) {
SpringApplication.run(YuShuApplication.class, args);
System.out.println("(♥◠‿◠)ノ゙ 屿舒启动成功 ლ(´ڡ`ლ)゙");
}
}
三、新增页面
1、数据准备
首先准备一个测试的sql
CREATE TABLE `tm_base_area` (
`ID` bigint NOT NULL COMMENT 'ID',
`AREA_NAME` varchar(255) DEFAULT NULL COMMENT '区域名称',
`AREA_CODE` varchar(255) DEFAULT NULL COMMENT '区域编码',
`PROVINCE_CODE` varchar(255) DEFAULT NULL COMMENT '省份编码',
`PROVINCE_NAME` varchar(255) DEFAULT NULL COMMENT '省份名称',
PRIMARY KEY (`ID`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 ROW_FORMAT=DYNAMIC COMMENT='区域编码表';
仅供测试的假数据
INSERT INTO yushu.tm_base_area (AREA_NAME,AREA_CODE,PROVINCE_CODE,PROVINCE_NAME) VALUES
('北京','110','110','北京'),
('山东','112','121','鲁'),
('测试','1','2','测试');
2、代码生成
找到代码生成
然后导入一下自己的表
此处我已经导入,所以看不到自己的表
然后点击生成代码
我这里是下载到了本地,可以配置其他路径
代码下载之后是这样的,按照需要,存放到自己的目录下
- vue文件夹下的,在ruoyi-ui下面
- views目录下新建目录
- api目录下同样操作
- main下面的,可以存放在自己的新的模块下面
3、菜单管理
这一部分以截图为主,主要是操作,对应好自己第二步生成的代码的路径
- 下面操作用到的图标,可以自定义进行添加,添加路径为
@/assets/icons/svg
目录下
(1)目录创建
(2)菜单创建
- 组件路径就是
@views/mk/area/index
- 权限字符可以自定义,也可以根据生成的代码进行配置
(3)按钮创建
个人理解:按钮可以不创建,只是为了更好的区分用户权限,马上介绍权限相关的内容
前端代码中的权限控制字符,要跟下图的权限字符保持一致
(4)页面效果
代码完全是按照生成的代码进行操作的,就是cv工程即可
四、获取登录信息
参考写法
public class TmBaseAreaController extends BaseController {
@GetMapping("/list")
public TableDataInfo list(TmBaseArea tmBaseArea) {
// 获取登录用户信息
LoginUser loginUser = getLoginUser();
startPage();
List<TmBaseArea> list = tmBaseAreaService.selectTmBaseAreaList(tmBaseArea);
return getDataTable(list);
}
}
五、权限相关
主要的RBAC表:
- sys_role
- sys_role_menu
- sys_user_role
- sys_menu
1、用户添加
这个没啥好说的,就是简单的增加用户
但是,创建用户时的 角色 选项,是给用户哪种角色权限的操作。
2、角色管理
添加角色,给定相应的权限,这时候相应的按钮权限就体现出来了
如果不想给测试角色相关的删除功能权限,就不选即可
前端代码中的权限控制 v-hasPermi
属性必须配置,并要与菜单按钮配置时的 权限字符
保持一致,否则权限配置可能不生效,前面提到过【按钮创建】部分提到过对应关系。
这样配置之后,登录对应权限的角色的账号,就只看到自己的侧边栏目录列表了