二次开发RuoYi-Vue操作记录

二次开发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 属性必须配置,并要与菜单按钮配置时的 权限字符 保持一致,否则权限配置可能不生效,前面提到过【按钮创建】部分提到过对应关系。

这样配置之后,登录对应权限的角色的账号,就只看到自己的侧边栏目录列表了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/348807.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ESP32开发板可以承受的最大电压

ESP32的最大工作电压为3.3V。但这并不意味着我们不能向 ESP32开发板施加大于 3.3V 的电压。ESP32 具有板载稳压器&#xff0c;使用 VIN 和 GND 引脚可承受最大 15V 的电压。 一旦电压输入到 ESP32 开发板VIN 引脚&#xff0c;该电压就会通过 ESP32 板载稳压器&#xff08;AMS11…

宏景eHR SmsAcceptGSTXServlet XXE漏洞复现

0x01 产品简介 宏景eHR人力资源管理软件是一款人力资源管理与数字化应用相融合,满足动态化、协同化、流程化、战略化需求的软件。 0x02 漏洞概述 宏景eHR SmsAcceptGSTXServlet接口处存在XML实体注入漏洞,未经身份认证的攻击者可以利用此漏洞读取系统内部敏感文件,获取敏…

群辉NAS的远程访问

群辉NAS是私有云存储&#xff0c;局域网访问很容易【详见&#xff1a;网上邻居访问设置、其它设备的访问设置】&#xff0c;远程访问相对复杂&#xff0c;涉及很多关键因素&#xff0c;现将过程记录如下&#xff1a; 目录 1、互联网接入 2、绑定MAC与IP地址 3、路由器开启5…

qml中访问控件内部的子项

如何访问Repeater类型内部的子项、Row等布局类型内部的子项以及ListView内部的子项等。。。 1、测试代码 import QtQuick 2.0 import QtQuick.Controls 2.12 import QtQuick.Window 2.12 import QtQuick.Layouts 1.3 import QtQml 2.12Window {id: windowobjectName: "m…

米贸搜|Facebook“精准营销”越来越难?或许是“受众定位”没彻底搞清!

一、为何要确定目标受众 对于每个广告主而言&#xff0c;面向最有可能成为其客户的用户营销非常重要&#xff0c;因此&#xff0c;确定目标受众&#xff0c;是Facebook广告投放中极其重要的一环。 二、什么是目标受众&#xff1f; 目标受众是您希望向其传达营销信息&#xf…

java servlet 高校田径运动会管理系统Myeclipse开发mysql数据库web结构jsp编程计算机网页项目

一、源码特点 jsp高校田径运动会管理系统是一套完善的java web信息管理系统 采用mvc模式 servletdaobean 模式开发&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myecl…

“JavaScript 循环中的 ‘await‘

目录 前言 for使用await -- 有效的 forEach使用await -- 无效的 for of 使用await 有效的 for await of 使用await 有效的 总结 前言 在JavaScript的forEach方法中使用await是无效的&#xff0c;因为forEach方法不支持异步操作的等待。 forEach是一个数组的遍历方法&…

如何修改hosts文件-mac

1、什么是hosts文件&#xff1f; Hosts是一个没有扩展名的系统文件&#xff0c;可以用记事本等工具打开&#xff0c;其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”&#xff0c;即域名映射到IP地址&#xff0c;域名是为了方便人类记忆识别&#xff0c…

力扣354. 俄罗斯套娃信封问题

动态规划 思路&#xff1a; 同时控制 w、h 两个维度比较复杂&#xff0c;可以先固定一个维度&#xff0c;来找出另外一个维度的严格单调序列&#xff1a; 对 w 排序&#xff0c;然后再来找 h 维度严格单调递增序列长度&#xff1b;在 w 排序时&#xff0c;会遇到 w(i) w(j) 的…

VS2022联合Qt5开发学习11(QT5.12.3联合VTK在VS2022上开发医学图像项目5——qvtkWidget上显示STL三维图像并取点)

这篇博文是接着这个系列前面的博文&#xff0c;来讲如何实现医学图像三视图同步视图。我想到的一个思路是用Scrollbar来控制切面的改变&#xff0c;还有一个想法是在三维图像上取点&#xff0c;然后以这个点为切面中心更新三维视图。这篇博文主要介绍的就是第二个想法的三维图像…

C++ 之LeetCode刷题记录(十八)

&#x1f604;&#x1f60a;&#x1f606;&#x1f603;&#x1f604;&#x1f60a;&#x1f606;&#x1f603; 开始cpp刷题之旅。 依旧是追求耗时0s的一天。 104. 二叉树的最大深度 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最…

防火墙源NAT配置

拓扑 需求 生产区在工作时间内可以访问服务器区&#xff0c;仅可以访问HTTP服务器。办公区全天可以访问服务区&#xff0c;其中&#xff0c;10.0.2.20可以访问FTP服务器和HTTP服务器 10.0.2.10仅可以ping通10.0.3.10办公区在访问服务区时采用匿名认证方式进行上网行为管理。办…

蓝桥杯备战——2.矩阵键盘

1.分析原理图 由上图可以看到若J5跳线帽接地&#xff0c;就S4~S7就可以当做四路独立按键&#xff0c;若接到P44&#xff0c;则就是4*4的矩阵键盘。 2.独立按键处理 相对传统的按键延时消抖方案&#xff0c;这里我采用更高效&#xff0c;更经典&#xff0c;更偏向产品级应用的…

JavaScript DOM之Cookie详解

cookie有的地方习惯使用复数形式的cookies&#xff0c;指的是网站为了识别用户的身份或者进行一些必要数据的缓存而使用的技术&#xff0c;它的数据是存在用户的终端上&#xff0c;也就是在浏览器上的。 一、什么是cookie 随着互联网的不断发展各种基于互联网的服务系统逐渐多…

第139期 做大还是做小-Oracle名称哪些事(20240125)

数据库管理139期 2024-01-25 第139期 做大还是做小-Oracle名称哪些事&#xff08;20240125&#xff09;1 问题2 排查3 扩展总结 第139期 做大还是做小-Oracle名称哪些事&#xff08;20240125&#xff09; 作者&#xff1a;胖头鱼的鱼缸&#xff08;尹海文&#xff09; Oracle A…

【C#】基础巩固

最近写代码的时候各种灵感勃发&#xff0c;有了灵感&#xff0c;就该实现了&#xff0c;可是&#xff0c;实现起来有些不流畅&#xff0c;总是有这样&#xff0c;那样的卡壳&#xff0c;总结下来发现了几个问题。 1、C#基础内容不是特别牢靠&#xff0c;理解的不到位&#xff…

2016年认证杯SPSSPRO杯数学建模B题(第一阶段)低分辨率下看世界全过程文档及程序

2016年认证杯SPSSPRO杯数学建模 B题 低分辨率下看世界 原题再现&#xff1a; 数码摄像技术被广泛使用于多种场合中。有时由于客观条件的限制&#xff0c;拍摄设备只能在较低的分辨率下成像。为简单起见&#xff0c;我们只考虑单色成像。假设成像的分辨率为 32 64&#xff0c…

架构师之路(十四)计算机网络(网络层)

前置知识&#xff08;了解&#xff09;&#xff1a;计算机基础。 作为架构师&#xff0c;我们所设计的系统很少为单机系统&#xff0c;因此有必要了解计算机和计算机之间是怎么联系的。局域网的集群和混合云的网络有啥区别。系统交互的时候网络会存在什么瓶颈。 网络层提供主机…

Dlearning

Deep Learning Basic 神经网络&#xff1a; #mermaid-svg-rR22a8Udy5SxGOoP {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-rR22a8Udy5SxGOoP .error-icon{fill:#552222;}#mermaid-svg-rR22a8Udy5SxGOoP .error-t…

线扫相机使用教程

一.线扫相机的采集原理 在现有的工业 2D 相机中&#xff0c;主要有两种类型的相机&#xff0c;面阵相机和线扫相机。这两种相机有其 各自的特点。 面阵相机&#xff1a;主要用于采集较小尺寸的产品&#xff0c;特别是长度方向较小的产品。其采集原理是通过 单次或多次曝光&…