AdaKing88
2023-08-23 9cad48db6c56c3e2796a9d6da881817ef13b6eca
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import store from "../store";
// 元素编码
import elemCode from "../js/elemCode";
// 导出
export default (app) => {
    app.directive('has-button', {
        // 创建完成:在绑定元素的 attribute 或事件监听器被应用之前调用
        created() {},
        // 挂载之前:在绑定元素的父组件挂载之前调用
        beforeMount(el, binding, vnode, prevVnode) {},
        // 挂载完成:绑定元素的父组件被挂载时调用
        mounted(el, binding, vnode, prevVnode) {
            // 获取元素权限
            const elem_data = store.getters["permission/elem"];
            const user_type = store.getters["permission/user_type"];
            // 否则是非超管
            if(!elem_data) { return false }
            const elems = elem_data.split(",")
            const code = elemCode[binding.value]   // 等价于elemCode['init:edit']
            if(!user_type && !elems.includes(code)) {
                el.parentNode.removeChild(el);
            }
        },
        // 更新之前:在包含组件的 VNode 更新之前调用
        beforeUpdate() {},
        // 更新完成:在包含组件的 VNode 及其子组件的 VNode 更新之后调用
        updated() {},
        // 销毁之前:在绑定元素的父组件卸载之前调用
        beforeUnmount() {},
        // 销毁完成:卸载绑定元素的父组件时调用
        unmounted() {}
    })
}