vue2.0+ts注册全局函数和几个递归查找
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)就行了
结束啦~
放一张美照