zoukankan      html  css  js  c++  java
  • 模块展示权限控制

    /**
     * 组件增加belongTo属性后会获取归属模块状态码 0正常 1不显示
     *
     */
    Vue.mixin({
        beforeCreate(){
            let opt = this.$options,attrs=this.$attrs,module=opt.belongTo || attrs.belongTo;
            opt.computed= opt.computed ||{};
    
            if(module){
                 opt.computed.modules=mapState({modules:state => state.restriction.modules}).modules;
                 opt.computed.module=()=>{ return module};
                 opt.computed.moduleStateCode=()=>{ return this.modules[this.module] || 0};
                 // 这里的originalRender实际上取到的是opt.__proto__.render,给opt.render赋值会遮蔽原型上的render
    // 在Vue单文件组件打包过程中被vue-loader编译时,tempalte就被输出为render函数
    VueComponent的$option继承了我们定义的组件选项对象,所以这里才能够在beforeCreate阶段取到render
                 let originalRender=opt.render;
                 opt.render=function () {
                        let  _vm = this;return _vm.moduleStateCode == 1 ?  _vm._e() : originalRender.apply(this,[].slice.call(arguments));
                 }
            }
        },
        mounted(){
            let module=this.$options.belongTo || this.$attrs.belongTo;
            if(module){
               this.$watch("moduleStateCode",(val)=>{})
            }
        }
    });

    组件增加自定义属性:belongTo 在组件选项里或添加在$attr里

  • 相关阅读:
    支付
    REST framework补充
    Django与Ajax
    Django 模型层ORM
    Django简介
    Web应用
    Docker配置pycharm连接
    Docker 网络扩展
    Docker 之Docker-Compose
    Docker 之Dockerfile
  • 原文地址:https://www.cnblogs.com/natsu07/p/10516880.html
Copyright © 2011-2022 走看看