百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分类 > 正文

《若依ruoyi》第十二章:Ruoyi 代码生成(低代码)vue逻辑详解一

ztj100 2024-11-13 14:02 20 浏览 0 评论

本章节详细介绍前端代码生成配置界面的实现,包括界面展示逻辑和api接口

一.代码目录结构

代码存放在/src/views/tool/gen下
  1. basicInfoForm:基础信息。
  2. editTable:数据库表字段编辑。
  3. genInfoForm:生成信息,生成的模版,现在提供的模版包含单表模版,树表模版,还有主表模版。生成的类名称,存放类的路径,对应的菜单配置。
  4. importTable:从数据库表选择需要生成代码的表,导入待生成代码表。
  5. index:生成代码列表,展示已经配置好的待生成的数据库记录,可以下载生成的代码,也可进行配置编辑,代码生成的菜单入口

二.菜单与index的入口配置说明

1、路由组件

如下图,左侧是代码目录结构,右侧是管理后台的菜单管理(系统管理-》菜单管理)。

点击列表记录(菜单管理)右侧编辑,系统弹出菜单配置的详细信息。

其中组件路径对应代码view目录下面的tool/gen/index

该配置的逻辑是:

1)、点击菜单后

2)、vue读取菜单对应的组件路径,并完成调用路由,进入index的业务代码

2、spring 对权限的过滤

菜单配置的权限字符,当该角色配置了菜单权限,用户登录后,点击菜单后调用java接口获取数据,spring 首先验证码用户是否有权限,实现的逻辑通过注解@PreAuthorize来实现。如果判断用户拥有权限,则继续执行,如果用户未拥有权限,则拒绝访问接口。

三.index代码详解

1、顶部搜索框代码,主要由el-input(输入表单),el-button(按钮)组成

2、操作按钮

下面以其中一个生成按钮为例子进行说明:

element的布局方式与bootstrap原理是一样的,将网页划分成若干行,然后每行等分为若干列,基于这样的方式进行布局,形象的成为栅栏布局。

区别是element可将每行划分为24个分栏,而bootstrap是划分为12个分栏,从使用角度,还是24个分栏更加精细。

首先每行使用<el-row>标签标识,然后每行内的列使用<el-col>标识,至于每列整行的宽度比例,则使用:span属性进行设置。

//gutter:每行的间隔是10
<el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        //el-button按钮,@click="handleGenTable" 点击时候调用handleGenTable
        //方法
        <el-button
          type="primary"
          plain
          icon="el-icon-download"
          size="mini"
          @click="handleGenTable"
				//用户登录后,会将用户权限字符加载到本地内存,如果判断有权限,则显示,没有权限
				//则该按钮不显示
          v-hasPermi="['tool:gen:code']"
        >生成</el-button>
      </el-col>
</el-row>

按钮权限如下图

4、列表展示

如下图,在列表显示使用el-table组件进行显示,其中表格的数据通过:data进行绑定。

 <el-table v-loading="loading" :data="tableList" @selection-change="handleSelectionChange">


tableList的数据获取函数

//点击菜单后,vue对index进行初始化操作,开始调用 this.getList();的方法
//getlist方法调用后台接口获取参数并将接口数据赋值给tableList变量
created() {
    this.getList();
  },
    
/** 查询表集合 */
getList() {
  this.loading = true;
  listTable(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
      this.tableList = response.rows;
      this.total = response.total;
      this.loading = false;
    }
  );
},

持续跟新中,敬请期待!

四、未来计划

1、ruoyi非分离版本拆解

2、ruoyi-vue-pro:讲解工作流

3、ruoyi-vue-pro:支付模块,电商模块

4、基于ruoyi-vue-pro项目开发

5、JEECG低代码开发平台

请关注我,本星球会持续推出更多的开源项目代码解析,如有更好的意见请留言回复或者私信

相关推荐

sharding-jdbc实现`分库分表`与`读写分离`

一、前言本文将基于以下环境整合...

三分钟了解mysql中主键、外键、非空、唯一、默认约束是什么

在数据库中,数据表是数据库中最重要、最基本的操作对象,是数据存储的基本单位。数据表被定义为列的集合,数据在表中是按照行和列的格式来存储的。每一行代表一条唯一的记录,每一列代表记录中的一个域。...

MySQL8行级锁_mysql如何加行级锁

MySQL8行级锁版本:8.0.34基本概念...

mysql使用小技巧_mysql使用入门

1、MySQL中有许多很实用的函数,好好利用它们可以省去很多时间:group_concat()将取到的值用逗号连接,可以这么用:selectgroup_concat(distinctid)fr...

MySQL/MariaDB中如何支持全部的Unicode?

永远不要在MySQL中使用utf8,并且始终使用utf8mb4。utf8mb4介绍MySQL/MariaDB中,utf8字符集并不是对Unicode的真正实现,即不是真正的UTF-8编码,因...

聊聊 MySQL Server 可执行注释,你懂了吗?

前言MySQLServer当前支持如下3种注释风格:...

MySQL系列-源码编译安装(v5.7.34)

一、系统环境要求...

MySQL的锁就锁住我啦!与腾讯大佬的技术交谈,是我小看它了

对酒当歌,人生几何!朝朝暮暮,唯有己脱。苦苦寻觅找工作之间,殊不知今日之事乃我心之痛,难道是我不配拥有工作嘛。自面试后他所谓的等待都过去一段时日,可惜在下京东上的小金库都要见低啦。每每想到不由心中一...

MySQL字符问题_mysql中字符串的位置

中文写入乱码问题:我输入的中文编码是urf8的,建的库是urf8的,但是插入mysql总是乱码,一堆"???????????????????????"我用的是ibatis,终于找到原因了,我是这么解决...

深圳尚学堂:mysql基本sql语句大全(三)

数据开发-经典1.按姓氏笔画排序:Select*FromTableNameOrderByCustomerNameCollateChinese_PRC_Stroke_ci_as//从少...

MySQL进行行级锁的?一会next-key锁,一会间隙锁,一会记录锁?

大家好,是不是很多人都对MySQL加行级锁的规则搞的迷迷糊糊,一会是next-key锁,一会是间隙锁,一会又是记录锁。坦白说,确实还挺复杂的,但是好在我找点了点规律,也知道如何如何用命令分析加...

一文讲清怎么利用Python Django实现Excel数据表的导入导出功能

摘要:Python作为一门简单易学且功能强大的编程语言,广受程序员、数据分析师和AI工程师的青睐。本文系统讲解了如何使用Python的Django框架结合openpyxl库实现Excel...

用DataX实现两个MySQL实例间的数据同步

DataXDataX使用Java实现。如果可以实现数据库实例之间准实时的...

MySQL数据库知识_mysql数据库基础知识

MySQL是一种关系型数据库管理系统;那废话不多说,直接上自己以前学习整理文档:查看数据库命令:(1).查看存储过程状态:showprocedurestatus;(2).显示系统变量:show...

如何为MySQL中的JSON字段设置索引

背景MySQL在2015年中发布的5.7.8版本中首次引入了JSON数据类型。自此,它成了一种逃离严格列定义的方式,可以存储各种形状和大小的JSON文档,例如审计日志、配置信息、第三方数据包、用户自定...

取消回复欢迎 发表评论: