ruoyi-vue前端的一些自定义插件介绍

文章目录

  • 自定义列表
  • $tab对象
    • 打开页签
    • 关闭页签
    • 刷新页签
  • $modal对象
    • 提供成功、警告和错误等反馈信息(无需点击确认)
    • 提供成功、警告和错误等提示信息(类似于alert,需要点确认)
    • 提供成功、警告和错误等提示信息(从右上角通知,无需确认)
    • 提供确认窗体信息
    • 提供遮罩层信息
  • $auth对象
    • 验证用户权限
    • 验证用户角色
  • $cache对象
    • 若依中的示例
  • $download对象
    • 根据名称下载download路径下的文件
    • 根据名称下载upload路径下的文件
    • 根据请求地址下载zip包
    • 更多文件下载操作
    • 若依中的示例

自定义列表

可以查看src/plugins 文件夹index.js文件

import tab from './tab'
import auth from './auth'
import cache from './cache'
import modal from './modal'
import download from './download'export default {install(Vue) {// 页签操作Vue.prototype.$tab = tab// 认证对象Vue.prototype.$auth = auth// 缓存对象Vue.prototype.$cache = cache// 模态框对象Vue.prototype.$modal = modal// 下载文件Vue.prototype.$download = download}
}

$tab对象

$tab对象用于做页签操作、刷新页签、关闭页签、打开页签、修改页签等,它定义在plugins/tab.js文件中,
在src\views\tool\gen\index.vue有示例:

/** 修改按钮操作 */handleEditTable(row) {const tableId = row.tableId || this.ids[0];const tableName = row.tableName || this.tableNames[0];const params = { pageNum: this.queryParams.pageNum };this.$tab.openPage("修改[" + tableName + "]生成配置", '/tool/gen-edit/index/' + tableId, params);},

它有如下方法:

打开页签

this.$tab.openPage("用户管理", "/system/user");this.$tab.openPage("用户管理", "/system/user").then(() => {// 执行结束的逻辑
})

关闭页签

// 关闭当前tab页签,打开新页签
const obj = { path: "/system/user" };
this.$tab.closeOpenPage(obj);// 关闭当前页签,回到首页
this.$tab.closePage();// 关闭指定页签
const obj = { path: "/system/user", name: "User" };
this.$tab.closePage(obj);this.$tab.closePage(obj).then(() => {// 执行结束的逻辑
})

刷新页签

// 刷新当前页签
this.$tab.refreshPage();// 刷新指定页签
const obj = { path: "/system/user", name: "User" };
this.$tab.refreshPage(obj);this.$tab.refreshPage(obj).then(() => {// 执行结束的逻辑
})

$modal对象

$modal对象用于做消息提示、通知提示、对话框提醒、二次确认、遮罩等,它定义在plugins/modal.js文件中,它有如下方法:

提供成功、警告和错误等反馈信息(无需点击确认)

this.$modal.msg("默认反馈");
this.$modal.msgError("错误反馈");
this.$modal.msgSuccess("成功反馈");
this.$modal.msgWarning("警告反馈");

在这里插入图片描述
源码使用的是element的Message

// 消息提示msg(content) {Message.info(content)},// 错误消息msgError(content) {Message.error(content)},// 成功消息msgSuccess(content) {Message.success(content)},// 警告消息msgWarning(content) {Message.warning(content)},

提供成功、警告和错误等提示信息(类似于alert,需要点确认)

this.$modal.alert("默认提示");
this.$modal.alertError("错误提示");
this.$modal.alertSuccess("成功提示");
this.$modal.alertWarning("警告提示");

在这里插入图片描述
源码使用的是element的MessageBox

  // 弹出提示alert(content) {MessageBox.alert(content, "系统提示")},// 错误提示alertError(content) {MessageBox.alert(content, "系统提示", { type: 'error' })},// 成功提示alertSuccess(content) {MessageBox.alert(content, "系统提示", { type: 'success' })},// 警告提示alertWarning(content) {MessageBox.alert(content, "系统提示", { type: 'warning' })},

提供成功、警告和错误等提示信息(从右上角通知,无需确认)

this.$modal.notify("默认通知");
this.$modal.notifyError("错误通知");
this.$modal.notifySuccess("成功通知");
this.$modal.notifyWarning("警告通知");

在这里插入图片描述
源码使用的是element ui的Notification

  // 通知提示notify(content) {Notification.info(content)},// 错误通知notifyError(content) {Notification.error(content);},// 成功通知notifySuccess(content) {Notification.success(content)},// 警告通知notifyWarning(content) {Notification.warning(content)},

提供确认窗体信息

示例代码:src\views\system\dept\index.vue

/** 删除按钮操作 */handleDelete(row) {this.$modal.confirm('是否确认删除名称为"' + row.deptName + '"的数据项?').then(function() {return delDept(row.deptId);}).then(() => {this.getList();this.$modal.msgSuccess("删除成功");}).catch(() => {});}

在这里插入图片描述
源码用的是element的message box

// 确认窗体confirm(content) {return MessageBox.confirm(content, "系统提示", {confirmButtonText: '确定',cancelButtonText: '取消',type: "warning",})},

提供遮罩层信息

// 打开遮罩层
this.$modal.loading("正在导出数据,请稍后...");// 关闭遮罩层
this.$modal.closeLoading();

源码使用的是element的loading

// 打开遮罩层loading(content) {loadingInstance = Loading.service({lock: true,text: content,spinner: "el-icon-loading",background: "rgba(0, 0, 0, 0.7)",})},// 关闭遮罩层closeLoading() {loadingInstance.close();}

$auth对象

$auth对象用于验证用户是否拥有某些权限或角色,它定义在plugins/auth.js文件中,它有如下方法

验证用户权限

// 验证用户是否具备某权限
this.$auth.hasPermi("system:user:add");
// 验证用户是否含有指定权限,只需包含其中一个
this.$auth.hasPermiOr(["system:user:add", "system:user:update"]);
// 验证用户是否含有指定权限,必须全部拥有
this.$auth.hasPermiAnd(["system:user:add", "system:user:update"]);

验证用户角色

// 验证用户是否具备某角色
this.$auth.hasRole("admin");
// 验证用户是否含有指定角色,只需包含其中一个
this.$auth.hasRoleOr(["admin", "common"]);
// 验证用户是否含有指定角色,必须全部拥有
this.$auth.hasRoleAnd(["admin", "common"]);

$cache对象

cache对象用于处理缓存。我们并不建议您直接使用sessionStorage或localStorage,因为项目的缓存策略可能发生变化,通过cache对象做一层调用代理则是一个不错的选择。$cache提供session和local两种级别的缓存,如下:

// local 普通值
this.$cache.local.set('key', 'local value')
console.log(this.$cache.local.get('key')) // 输出'local value'// session 普通值
this.$cache.session.set('key', 'session value')
console.log(this.$cache.session.get('key')) // 输出'session value'// local JSON值
this.$cache.local.setJSON('jsonKey', { localProp: 1 })
console.log(this.$cache.local.getJSON('jsonKey')) // 输出'{localProp: 1}'// session JSON值
this.$cache.session.setJSON('jsonKey', { sessionProp: 1 })
console.log(this.$cache.session.getJSON('jsonKey')) // 输出'{sessionProp: 1}'// 删除值
this.$cache.local.remove('key')
this.$cache.session.remove('key')

若依中的示例

src\layout\components\Settings\index.vue

saveSetting() {this.$modal.loading("正在保存到本地,请稍候...");this.$cache.local.set("layout-setting",`{"topNav":${this.topNav},"tagsView":${this.tagsView},"fixedHeader":${this.fixedHeader},"sidebarLogo":${this.sidebarLogo},"dynamicTitle":${this.dynamicTitle},"sideTheme":"${this.sideTheme}","theme":"${this.theme}"}`);setTimeout(this.$modal.closeLoading(), 1000)},

$download对象

$download对象用于文件下载,它定义在plugins/download.js文件中,它有如下方法

根据名称下载download路径下的文件

const name = "be756b96-c8b5-46c4-ab67-02e988973090.xlsx";
const isDelete = true;// 默认下载方法
this.$download.name(name);// 下载完成后是否删除文件
this.$download.name(name, isDelete);

根据名称下载upload路径下的文件

const resource = "/profile/upload/2021/09/27/be756b96-c8b5-46c4-ab67-02e988973090.png";// 默认方法
this.$download.resource(resource);

根据请求地址下载zip包

const url = "/tool/gen/batchGenCode?tables=" + tableNames;
const name = "ruoyi";// 默认方法
this.$download.zip(url, name);

更多文件下载操作

// 自定义文本保存
var blob = new Blob(["Hello, world!"], {type: "text/plain;charset=utf-8"});
this.$download.saveAs(blob, "hello world.txt");// 自定义文件保存
var file = new File(["Hello, world!"], "hello world.txt", {type: "text/plain;charset=utf-8"});
this.$download.saveAs(file);// 自定义data数据保存
const blob = new Blob([data], { type: 'text/plain;charset=utf-8' })
this.$download.saveAs(blob, name)// 根据地址保存文件
this.$download.saveAs("https://ruoyi.vip/images/logo.png", "logo.jpg");

若依中的示例

src\views\tool\gen\index.vue

/** 生成代码操作 */handleGenTable(row) {const tableNames = row.tableName || this.tableNames;if (tableNames == "") {this.$modal.msgError("请选择要生成的数据");return;}if(row.genType === "1") {genCode(row.tableName).then(response => {this.$modal.msgSuccess("成功生成到自定义路径:" + row.genPath);});} else {this.$download.zip("/tool/gen/batchGenCode?tables=" + tableNames, "ruoyi.zip");}},

src\views\tool\build\index.vue

execDownload(data) {const codeStr = this.generateCode()const blob = new Blob([codeStr], { type: 'text/plain;charset=utf-8' })this.$download.saveAs(blob, data.fileName)},

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue 的生命周期--图解

生命周期函数中的this指向是vm 或 组件实例对象。 常用的生命周期钩子: mounted: 发送ajax请求、启动定时器、绑定自定义事件、订阅消息等【初始化操作】。beforeDestroy: 清除定时器、解绑自定义事件、取消订阅消息等【收尾工作】。 关于销毁Vue实例 销毁后借助Vu…

常见排序算法(插入排序,希尔排序,选择排序,堆排序,冒泡排序,快速排序,归并排序,计数排序,基数排序,桶排序)

一.排序的概念 1.排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作 2.稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排…

Basic TCP Server Client

Server #include <stdio.h> #include <string.h> #include <unistd.h> // read and write (TCP); sendto and recvfrom (UDP) #include <arpa/inet.h> // 包含#include <sys/socket.h>int main(int argc, char* argv[]) {// 1. 创建监听fdint f…

【C++】List容器(2)-内存管理-创建-插入-删除-遍历-排序-查找-底层分析-构造和析构函数-内存泄漏等

std::list 是 C STL 中的一种双向链表容器&#xff0c;它提供了一系列的迭代器来访问元素&#xff0c;包括前方迭代器、后方迭代器和const迭代器。std::list 采用双向链表实现&#xff0c;每个节点都存储了数据以及两个指向前一个节点和后一个节点的指针。 内存管理 在 C 中&…

MATLAB设置变量

您可以通过简单的方式分配变量。例如&#xff0c; 示例 x 3 %定义x并用值初始化它 MATLAB将执行上述语句并返回以下结果- x 3 它创建一个名为x的1乘1矩阵&#xff0c;并将值3存储在其元素中。再举一个实例&#xff0c; 示例 x sqrt(16) %定义x并用表达式初始化它 MATLAB将…

自动化测试Selenium(3)

目录 WebDriver相关API 打印信息 打印title 打印url 浏览器的操作 浏览器最大化 设置浏览器的宽,高 操作浏览器的前进, 后退, 刷新 控制浏览器滚动条 键盘事件 键盘单键用法 键盘组合按键用法 鼠标事件 WebDriver相关API 打印信息 打印title 即打印该网址的标题.…

在PostgreSQL中,如何创建一个触发器并在特定事件发生时执行自定义操作?

文章目录 解决方案示例代码1. 创建自定义函数2. 创建触发器 解释 在PostgreSQL中&#xff0c;触发器&#xff08;trigger&#xff09;是一种数据库对象&#xff0c;它能在特定的事件&#xff08;如INSERT、UPDATE或DELETE&#xff09;发生时自动执行一系列的操作。这些操作可以…

css-Echarts图表初始显示异常非完全显示

1.echarts图表初始加载异常 2.问题原因 初次加载时&#xff0c;由于外层使用%比 echarts dom元素没有完全加载完成&#xff0c;canvas绘画继承本身宽高&#xff0c;造成Echarts图表初始显示异常非完全显示。 3.使用echarts图表可参考以下代码&#xff08;实现一定的自适应&am…

* 玩转数据魔方Plotly Express实战8例

大家好&#xff01;今天我们要一起探索Plotly Express这个超级棒的数据可视化神器。想象一下&#xff0c;你的数据故事能以炫酷图表的形式跃然纸上&#xff0c;是不是很兴奋&#xff1f;Plotly Express就像魔法棒&#xff0c;让复杂数据瞬间变得生动起来。接下来&#xff0c;让…

mac qt android开发环境

1,安装Android Studio 下载 Android Studio 和应用工具 - Android 开发者 | Android Developers (google.cn)

MyBatis 核心配置讲解(上)

大家好&#xff0c;我是王有志&#xff0c;一个分享硬核 Java 技术的互金摸鱼侠。 前两篇的文章中我们分别介绍了 MyBatis 和 MyBaits 的应用组成&#xff0c;到这里基础篇的内容就结束了。 从今天开始&#xff0c;我们正式进入 MyBatis 学习的第二阶段&#xff1a;MyBatis 的…

Linux网络实战(一)- DNS配置

Linux网络实战&#xff08;一&#xff09;- DNS配置 1 Linux 本机DNS配置编程要求预期输出输入 2 安装DNS服务软件编程要求测试说明输入 3 DNS服务器启动/关闭编程要求测试说明输入 4 DNS服务器配置编程要求测试说明输入 1 Linux 本机DNS配置 编程要求 在右侧命令行中配置本地…

【Qt 学习笔记】Qt常用控件 | 显示类控件LCD Number的使用及说明

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt常用控件 | 显示类控件LCD Number的使用及说明 文章编号&#xff1a…

“华为杯“华南理工大学程序设计竞赛(同步赛)

目录 最长回文子串 又一道好题 信号塔 网格树 异色边2 M 最长回文子串 构造马拉车 #define int long long//__int128 2^127-1(GCC) #define PII pair<int,int> //#define f first //#define s second const int inf 0x3f3f3f3f3f3f3f3f, N 1e5 5, mod 1e9 7;…

2024年第十五届蓝桥杯省赛C++B组(浙江省第二次,4月21号)【真题解析】

等C语言网或者别的地方更新题目&#xff0c;蓝桥杯真题 - 编程题库 - C语言网 (dotcpp.com)&#xff0c;后序再做更新 题目没带出来有点忘了&#xff0c;下面是不按顺序来的 第一题&#xff1a;一个数被表达成别的数&#xff0c;是否会出现字母。 除进制取余&#xff0c;进制…

stm32中的中断优先级

在工作中使用到多个定时器中断,由于中断的中断优先级不熟悉导致出错,下面来写一下中断的一些注意事项。 一、中断的分类 1、EXTI外部中断:由外部设备或外部信号引发,例如按键按下、外部传感器信号变化等。外部中断用于响应外部事件,并及时处理相关任务。 2、内部中断:…

Matlab对多个输入信号进行数值排序提取特定值

1、将多个信号转为一个数组信号输出&#xff0c;在这里需要注意&#xff0c;数据类型是否统一&#xff1b; 2、使用Sort模块&#xff0c;进行排序&#xff08;可设置排序方向&#xff09;&#xff0c;得到排序后的新数组以及对应的索引号&#xff1b; 3、设置想要的索引号&…

常见算法(二分,分块查找,插入,快速排序)

常见算法 1. 顺序查找 package com.mohuanan.exercise;import java.util.ArrayList;public class BasicFind01 {public static void main(String[] args) {int[] arr {1, 2, 3, 1, 2, 3, 4, 5, 6};int number 2;ArrayList<Integer> indexList findIndex(arr, number…

12.事件参数

事件参数 事件参数可以获取event对象和通过事件传递数据 获取event对象 <template><button click"addCount">Add</button><p>Count is: {{ count }}</p> </template> <script> export default {data() {return {count:0…

6.SpringBoot 日志文件

文章目录 1.日志概述2.日志作用3.使用和观察日志3.1如何观察日志3.2使用日志3.3日志级别3.4日志持久化3.5日志分割 4.日志框架4.1门面模式(外观模式)4.2 SLF4J框架介绍4.3 日志格式的说明4.3.1日志名称 5.日志颜色设置6.总结 大家好&#xff0c;我是晓星航。今天为大家带来的是…