FastAdmin表格自定义操作按钮

FastAdmin表格自定义操作,是通过自己在页面上添加操作按钮,监听按钮点击事件来实现。操作按钮针对所有行记录,而不是在每行的操作上都添加上按钮。

效果图
按钮效果

步骤

1. 添加操作按钮

编辑admin/view下控制器对应的首页模板文件index.html,在常规操作add delete edit等处添加类似行,示例

<a href="javascript:;" class="btn btn-success btn-process-1 btn-disabled disabled"  title="胜诉" ><i class="fa fa-pencil"></i> 胜诉</a>
<a href="javascript:;" class="btn btn-danger btn-process-3 btn-disabled disabled"  title="败诉" ><i class="fa fa-pencil"></i> 败诉</a>

2. 监听按钮点击事件

编辑 public/assets/js/backend下控制器对应的JS文件,在行 Table.api.bindevent(table); 下面添加如下代码:

//胜诉
$(".btn-process-1").click(function(){
    var ids = Table.api.selectedids(table);
    layer.confirm('确定要胜诉吗?', {btn: ['是','否'] },
        function(index){
            layer.close(index);
            $.post("/admin.php/my_controller/process", {ids:ids , action:'success', reply:''},function(response){
                if(response.code == 1){
                    Toastr.success(response.msg)
                    $(".btn-refresh").trigger('click');
                }else{
                    Toastr.error(response.msg)
                }
            }, 'json')
        },
        function(index){
            layer.close(index);
        }
    );
});

请求后台控制器的action有两种方式,

  1. jQuery AJAX
  2. FastAdmin表格原生方法

上面的代码是采用jQuery AJAX的方法,控制器中相应的添加process方法来处理请求,这种方式优点

  1. 改写方便,只需要会用jQuery AJAX即可
  2. 参数传递灵活

缺点

  1. 需要自己控制提示信息的显示和表格的刷新
  2. 代码较长

其中提示信息的显示可用layer,也可以用Toastr,后者跟页面的提示整体保持一致。

第二种方式在请求时是这么写的

Table.api.multi('reapply', ids, table);

后台控制器中相应的需要改写multi方法来处理请求,通过调试可获得传递的参数,这种方式的优点

  1. 表格原生方法,无需操心参数的传递、结果提示及表格的刷新
  2. 代码较短

缺点也比较致命

  1. 可传递的参数太少,很不灵活
  2. 需要改写控制器中的multi方法

大家可根据自己的需求灵活选取合适的方式。

也可以在表格的每一行上添加操作按钮,具体可参见 FastAdmin表格操作按钮2

1 thought on “FastAdmin表格自定义操作按钮”

Leave a Comment

豫ICP备19001387号-1