UNPKG

cnetong-core-frontend

Version:

- CURD组件的编辑对话框增加按钮slot

52 lines (49 loc) 1.77 kB
/** * @Author: Sun Rising * @Date: 2019-02-19 10:48:26 * @Last Modified by: Sun Rising * @Last Modified time: 2019-03-01 13:37:19 * @Description: 权限管理-按钮权限指令 * 使用说明: * 1.功能:如果当前登录的用户所拥有的角色未选择按钮级的权限,那么这个按钮将被隐藏。 * 2.添加规则,在功能权限菜单中进行添加 “菜单类型”选择按钮,“功能地址”填写你所控制的按钮在当前菜单组中的哪个页面上,“功能编码”填写按钮的key * 3.使用规则,在你想要控制的按钮上添加“v-buttonAuth”指令,传入字符串key,例如v-buttonAuth="'user_add'" */ /** * 查找权限范围内是否匹配到到当前 的按钮 * @param {*} data 权限范围 * @param {*} group 分组 * @param {*} key 按钮的key */ function v_auth(data, group, key) { let is = false; if (Array.isArray(data)) { data.forEach((value, index) => { if (value.funcUrl === "/" + group) { value.children.forEach((value2, index2) => { value2.children.forEach((value3, index3) => { if (value3.permCode === key) { is = true; } }); }); } }); } return is; } export default { bind(el, binding, vnode, oldnode) {}, inserted(formEl, binding, vnode, oldnode) { let sysMenus = vnode.context.$store.state.base.sysMenus; let tabPagesPath = vnode.context.$store.getters.tabPagesPath; let key = binding.value; //获取最后一级目录 let paths = tabPagesPath.split("/"); let group = paths[1]; if (!v_auth(sysMenus, group, key)) { formEl.remove(); } }, update(el, binding, vnode, oldnode) {} };