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.hqwc.cn/news/637427.html

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

相关文章

免费语音转文字:自建Whisper,贝锐花生壳3步远程访问

Whisper是OpenAI开发的自动语音识别系统(语音转文字)。 OpenAI称其英文语音辨识能力已达到人类水准,且支持其它98中语言的自动语音辨识,Whisper神经网络模型被训练来运行语音辨识与翻译任务。 此外,与其他需要联网运行…

【软考---系统架构设计师】软件架构

目录 1 一、软件架构的概念 二、软件架构风格 (1)数据流风格​​​​​​​ (2)调用/返回风格 (3)独立构件风格 (4)虚拟机风格 (5)仓库风格 三、架构…

《乱弹篇(30)厌战的杜诗》

时下地球村有一伙成天叫嚣着“打打杀杀”、鼓吹快快发动战争的狂人,他们视老百姓的生命如草芥,毫不珍惜。没有遭受过战火焚烧的人,也跟着成天吠叫“快开战吧”。然而中国唐朝大诗人却是个“厌战派”,他对战争的厌恶集中表现在诗《…

Navicat Premium 16最新版激活 mac/win

Navicat Premium 16 for Mac是一款专业的多连接数据库管理工具。它支持连接多种类型的数据库,包括MySQL、MongoDB、Oracle、SQLite、SQL Server、PostgreSQL等,可以同时连接多种数据库,帮助用户轻松地管理和迁移数据。 Navicat Premium 16 fo…

机器学习与深度学习 --李宏毅(笔记与个人理解)Day 20

Day 20 RNN 2 实际使用和其他应用 在实际的学习(training)过程中是如何工作的? step 1 Loss step 2 training Graindent Descent 反向传播的进阶版 – BPTT CLIpping 设置阈值~ 笑死昨天刚看完关伟说的有这玩意的就不是好东西 Why&#xff1…

大模型系列课程学习-大预言模型微调方法介绍

1.大语言模型相关基本概念综述 语言模型指对语言进行建模,其起源于语音识别(speech recognition),输入一段音频数据,语音识别系统通常会生成多个句子作为候选,究竟哪个句子更合理? 学术上表达为:描述一段自…

驶向成功:如何选择适合国际拓展的完美CRM

一、出海企业应该怎么选择CRM? 出海企业在选择CRM系统时,需要考虑行业特性以及在对外业务过程中可能遇到的问题。接触了一些出海企业客户,总结了以下出海企业在选择CRM时的诉求。 1、合法合规风险 出海企业的业务遍布不同国家地区&#xff…

sso-oauth2单点登录功能笔记

场景:最近公司2个系统需要做单点登录,A系统作为服务器,认证方式是sso-oauth2方式,B系统作为客户端,token方式是ta-token,先来张sso-oauth2认证方式的图 前置准备工作 第一步:要确认谁是服务提…

AI+PS快捷键大全!

hello,我是小索奇, 你会用Photoshop(PS)或者(Illustrator)AI吗?相信很多人都会接触到吧,但有一部分人很少用快捷键,仅凭借鼠标点击来实现功能,殊不知快捷键能…

如何添加所有未跟踪文件到暂存区?

文章目录 如何将所有未跟踪文件添加到Git暂存区?步骤与示例代码1. 打开命令行或终端2. 列出所有未跟踪的文件3. 添加所有未跟踪文件到暂存区4. 验证暂存区状态 如何将所有未跟踪文件添加到Git暂存区? 在版本控制系统Git中,当我们首次创建新文…

2024HW ---->内网横向移动

在蓝队的面试过程中,如果你会内网渗透的话,那是肯定的一个加分选项!!! 那么从今天开始,我们就来讲一下内网的横向移动!!! 目录 1.域内任意用户枚举 2.Password-Sprayi…

Java基础之JVM对象内存分配机制简介

一 对象内存分配 1.1 运行时数据区域 1.2 常见java应用启动JVM参数: -Xss:每个线程的栈大小(单位kb)-Xms:堆的初始大小,默认物理内存的1/64,示例:-Xms:4g -Xms:10m-Xmx:堆的最大可用大小,默认物…