FastAdmin 权限判断,自定义table操作按钮,列表按钮,隐藏按钮,隐藏自定义按钮

一、JS自定义按钮 + 按钮隐藏

1、FastAdmin JS自定义按钮

效果图:

自定义video视频按钮

{
    field: 'operate',
    title: __('Operate'),
    table: table,
    events: Table.api.events.operate,
    buttons: [
        {
            name: 'video',
            text: __('视频'),
            icon: 'fa fa-list',
            classname: 'btn btn-xs btn-primary  btn-addtabs',
            url: 'major/chapter/index/subject_id/{ids}',
        }
    ],
    formatter: Table.api.formatter.operate
}

2、隐藏video视频按钮

效果图:

隐藏自定义按钮

{
    field: 'operate',
    title: __('Operate'),
    table: table,
    events: Table.api.events.operate,
    buttons: [
        {
            name: 'video',
            text: __('视频'),
            icon: 'fa fa-list',
            classname: 'btn btn-xs btn-primary  btn-addtabs',
            url: 'major/chapter/index/subject_id/{ids}',
        }
    ],
    formatter: function (value, row, index) { //隐藏自定义的视频按钮
    var that = $.extend({}, this);
    var table = $(that.table).clone(true);
    $(table).data("operate-video", null);  //隐藏按钮操作 video为自定义按钮的name 
    that.table = table;
    return Table.api.formatter.operate.call(that, value, row, index);
    }
}

       这样自定义按钮的显示和隐藏就可以控制了,当然也可以通过这种方式来隐藏FastAdmin生成的按钮,但是不推荐这样做,FastAdmin生成的按钮可以通过权限控制来隐藏。

二、根据自定义按钮的权限,控制显示与隐藏

1、首先后台判断对应权限

在后台初始化方法中,判断是否有按钮的权限,并通过assignconfig()来保存,然后在JS中判断权限。

$this->auth->check(''); 判断是否具有对应路径的权限
public function _initialize()
{
    parent::_initialize();
    $this->assignconfig('chapter', $this->auth->check('major/chapter/index')); //为了JS能获取到,同时判读权限 判断是否有major/chapter/index权限
}

2、对应JS中

通过Config.chapter  来获取后台的权限状态,然后根据状态显示与隐藏按钮。

{
    field: 'operate',
    title: __('Operate'),
    table: table,
    events: Table.api.events.operate,
    buttons: [
        {
            name: 'video',
            text: __('视频'),
            icon: 'fa fa-list',
            classname: 'btn btn-xs btn-primary  btn-addtabs',
            url: 'major/chapter/index/subject_id/{ids}',
        }
    ],
    formatter: function (value, row, index) { //隐藏自定义的视频按钮
    var that = $.extend({}, this);
    var table = $(that.table).clone(true);
    //权限判断
    if(Config.chapter != true){  //通过Config.chapter 获取后台存的chapter
        console.log('没有视频权限');
        $(table).data("operate-video", null); 
        that.table = table;
    }else{
        console.log('有视频权限');
    }
    return Table.api.formatter.operate.call(that, value, row, index);
    }
}

最终效果图:

  

就是这样-。-。。。 好像也没几个人能看到吧

  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值