vue2.0+ts注册全局函数和几个递归查找

news2024/9/21 3:58:33

vue2.0+ts注册全局函数和几个递归查找

  • 一、main.ts

一、main.ts

// 定义你的全局函数,判断是否有按钮权限
interface Item {
  label: string;
  checked: number;
  [k: string]: any;
}
// 获取按钮时候权限
function globalLable(arr: Item[], label: string): boolean {
  for (const item of arr) {
    if (item.label === label) {
      return item.checked == 1 ? true : false;
    }
  }
  return false;
}
// 判断是否显示按钮
function globalShow(arr: Item[], label: string): boolean {
  for (const item of arr) {
    if (item.label == label) {
      return true;
    }
  }
  return false;
}
// 判断当子菜单子菜单
function globalMenu(arr: Item[], label: string): Item[] {
  for (let i = 0; i < arr.length; i++) {
    if (arr[i].label === label) {
      return arr[i].children || [];
    }
    if (arr[i].children) {
      const siblings = globalMenu(arr[i].children, label);
      if (siblings.length > 0) {
        return siblings;
      }
    }
    // }
  }
  return [];
}
// 判断当前子菜单子按钮
function globalButton(arr: Item[], label: string): Item[] {
  for (let i = 0; i < arr.length; i++) {
    if (arr[i].label === label) {
      if (arr[i].operations) {
        return arr[i].operations;
      }
    }
    if (arr[i].children.length > 0) {
      const foundSubMenu = globalButton(arr[i].children, label);
      if (foundSubMenu.length > 0) {
        return foundSubMenu;
      }
    }
  }
  return [];
}

// 在Vue的原型上添加这个全局函数
declare module 'vue/types/vue' {
  interface Vue {
    $l: typeof globalLable;
    $s: typeof globalShow;
    $m: typeof globalMenu;
    $b: typeof globalButton;
  }
}
// 在你的Vue实例化之前添加这个方法
Vue.prototype.$l = globalLable;
Vue.prototype.$s = globalShow;
Vue.prototype.$m = globalMenu;
Vue.prototype.$b = globalButton;

如何使用 this.$f(a,b)就行了

结束啦~
放一张美照
在这里插入图片描述

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

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

相关文章

为大模型提供服务需要多少 GPU 显存?

在几乎所有的 LLM 面试中&#xff0c;有一个问题总是会被提及&#xff1a;“为大模型提供服务需要多少 GPU 显存&#xff1f;” 这不仅仅是一个随机的问题——它是一个关键指标&#xff0c;反映了你对这些强大模型在生产环境中部署和可扩展性的理解程度。 当你使用 GPT、LLaM…

在QSciscintilla编辑器源码中新增关键词分组的方法

由于项目需要&#xff0c;得在QSciscintilla的底层源码中增加几组关键词分组。在网上找了很久&#xff0c;一般都是说利用重写keywords(int set)接口的方式来增加&#xff0c;但这种方法不适用于我的应用场景。因为这种方法只能增加有限个关键词&#xff0c;且都是直接写死的方…

风电出海内幕:黄金期和内卷期共存

间歇性停战&#xff0c;持续性内卷&#xff0c;这就是中国风电。 9月4日&#xff0c;中国可再生能源学会风能专业委员会秘书长秦海岩发布文章《穿越周期&#xff0c;跨过险阻&#xff0c;中国风电的征途仍是星辰大海》。文章指出&#xff0c;中国风电行业正在重现十多年前的恶…

高中数学:立体几何-空间中点、直线、平面之间的位置关系

文章目录 1、空间中直线与直线的位置关系1、平行线传递性质2、定理3、空间直线夹角 2、空间中直线与平面的位置关系1、线面平行2、线面垂直 3、空间中平面与平面的位置关系1、面面平行2、二面角&#xff08;面与面的夹角&#xff09;3、面面垂直 4、补充 1、空间中直线与直线的…

新手也能快速上手!推荐这四款剪辑软件

在数字媒体日益盛行的今天&#xff0c;视频剪辑软件几乎成为了每一位视频创作者或媒体工作者必备的“十八般武艺”之一&#xff1b;用各种软件对影片、音乐进行精确到秒的剪切和调色&#xff0c;让我深刻体验到其功能的强大与方便&#xff0c;下面就为大家分享一下我在工作中常…

制造企业MES系统委外工单管理探析

一、委外工单管理的重要性 在制造企业的生产过程中&#xff0c;委外工单管理是一项重要且复杂的任务。委外加工是指企业将某些生产任务外包给外部供应商完成&#xff0c;以降低成本、提高效率或满足特定需求。然而&#xff0c;委外加工过程中往往存在诸多不确定性&#xff0c;…

【深度学习】(3)--损失函数

文章目录 损失函数一、L1Loss损失函数1. 定义2. 优缺点3. 应用 二、NLLLoss损失函数1. 定义与原理2. 优点与注意3. 应用 三、MSELoss损失函数1. 定义与原理2. 优点与注意3. 应用 四、BCELoss损失函数1. 定义与原理2. 优点与注意3. 应用 五、CrossEntropyLoss损失函数1. 定义与原…

C++(Qt)软件调试---断点高级用法(20)

C(Qt)软件调试—断点高级用法&#xff08;20&#xff09; 文章目录 C(Qt)软件调试---断点高级用法&#xff08;20&#xff09;[toc]1、概述2、断点高级用法1.1 条件断点1.2 日志断点/记录点/消息追踪点1.3 函数断点1.4 命中次数断点1.5 异常断点1.6 等待断点/触发断点1.7 临时断…

一台 Linux 同时 安装配置多个 python3 环境( 3.7 - 3.12 )

很多粉丝来信说&#xff1a;安装新 python3 环境&#xff0c;要卸载操作系统原来自带的 python。。。 博主再次声明&#xff1a;不需用搞复杂了&#xff0c;相反可以同时具备多个环境&#xff0c;也不需用配置环境变量 无图无真相&#xff0c;且看此图&#xff1a; 详情操作&am…

Android IME输入法启动显示隐藏流程梳理

阅读Android AOSP 12版本代码&#xff0c;对输入法IME整体框架模块进行学习梳理&#xff0c;内容包含输入法框架三部分IMM、IMMS、IMS的启动流程、点击弹出流程、显示/隐藏流程&#xff0c;以及常见问题和调试技巧。 1. IME整体框架​​​​​​​ IME整体分为三个部分&#xf…

python怎么打开文件对话框

可以使用tkinter.filedialog模块中的askopenfilename函数来实现&#xff0c;tkinter是python自带的GUI&#xff0c;通过askopenfilename函数打开选择文件对话框&#xff0c;代码如下&#xff1a; import tkinter.filedialog fntkinter.filedialog.askopenfilename(title选择一个…

HT366 具有防破音功能的免电感滤波2x20W D类立体声音频功放

特点 输出功率(BTL模式) 2x22W (VDD14V,RL4Ω,THDN10%) 输出功率(PBTL模式) 34W(VDD16V,RL4Ω,THDN10%) 单电源系统&#xff0c;4.5V-16V宽电压输入范围 ACF防破音功能可选 超过90%效率&#xff0c;无需散热器 可选输出模式:BD和ISPW 扩频功能&#xff0c;免电感滤波 模拟差分…

TMC4671——硬件矢量控制的伺服电机控制芯片

Trinamic研发的TMC4671为永磁同步电机、直流无刷电机、音圈电机、直流有刷电机和2相步进电机提供磁场定向控制&#xff0c;是一款完全集成伺服控制的芯片TMC4671凭借在牢固稳定的状态机中嵌入全部必要的控制回路来处理这大幅度降低能耗一市场需求的问题。 一. 嵌入式运动控制…

【机器学习】OpenCV高级图像处理

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 OpenCV高级图像处理图像滤波线性滤波高斯滤波均值滤波双边滤波 非线性滤波中值滤…

AD域控服务器

1.AD域控服务器安装 2.客户端Windows10加入域环境 3.组织单位OU和域用户创建 目的是分部门管理用户和使用域用户登录客户端 4.域用户安全策略 5.当客户端密码锁住了,管理员解锁账户。 6.只允许域用户使用自己的电脑

链动 2+1 模式 S2B2C 商城小程序源码与营销策略创新

摘要&#xff1a;本文探讨了营销策略在产品营销中的重要性&#xff0c;阐述了如何从产品的目标客群、主张价值和盈利模式出发制定各种价格运营策略以及品牌影响力策略&#xff0c;以实现“让用户心甘情愿掏口袋”的目标。引入“链动 21 模式 S2B2C 商城小程序源码”&#xff0c…

Linux 查看磁盘 df -h 已经查看目录大小 du -sh ./*

使用df -h 命令可以查看磁盘信息 df -h 如下图所示: 获取当前目录 每个目录大小 du -sh ./* du -sh ./* 如果文件比较多 我们想获取文件大小最大的前10个 可以运行如下命令: du -ah | sort -rh | head -n 10 du -ah&#xff1a;显示当前目录及其子目录的所有文件和目录的…

寻呼机爆炸,炸醒通讯安全警惕心

据央视新闻报道&#xff1a;当地时间17日下午&#xff0c;黎巴嫩首都贝鲁特以及黎巴嫩东南部和东北部多地发生寻呼机爆炸事件。黎巴嫩公共卫生部长阿卜亚德称&#xff0c;爆炸已造成9人死亡&#xff0c;约有2800人受伤&#xff0c;其中约200人伤情危重。 来源&#xff1a;央视新…

JavaWeb笔记整理——Redis

目录 Redis数据类型 各种数据类型的特点 Redis常用命令 字符串操作命令 哈希操作命令 列表操作命令 集合操作命令 有序集合操作命令 通用命令 在Java中操作Redis Spring Data Redis的使用方式 操作字符串类型的数据 ​编辑操作hash类型的数据 ​编辑 操作列表类…