Fastadmin---table自定义按钮开发

在用 Fastadmin 开发插件的时候,系统自带的table功能按钮有时候满足不了我们的需求,这个时候就需要自定义按钮来实现一些特定功能。

参考:

https://www.bilibili.com/video/BV1tz4y147b4/?spm_id_from=333.337.search-card.all.click&vd_source=eb3f5bb5e0c84a83e0634caa652b7d23

例如:我们是datav模块,查看具体的前端代码:

/public/assets/js/backend/data/datav.js

这个代码控制了列表功能:

image

代码示例:

{field: 'operate', title: '发放积分', table: table, events: Table.api.events.operate, buttons:[
    {
        name: 'audit',
        text: '发放积分',
        title: '发放积分',
        classname: 'btn btn-xs btn-primary btn-dialog',
        icon: 'fa',
        url:'datav/refresh?',
        callback:function(data){
            Layer.alert('接收到回调信息:' + JSON.stringify(data),{title:'回调信息'});
        },
        success:function(data,ret){
            table.bootstrapTable('refresh');
        },
        visible:function(row){
            return true;
        }
    }
], formatter: Table.api.formatter.buttons}

视图示例:

image

修改了JS代码,但是刷新不生效,需要【清除浏览器缓存】因为是通过require.js加载的js所有路由没有变加载的还是缓存的js,所以需要清除浏览器的缓存。

image

表格开发:

https://doc.fastadmin.net/doc/189.html

JS实例化表格:

<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
       data-operate-edit="{:$auth->check('test/edit')}" 
       data-operate-del="{:$auth->check('test/del')}" 
       width="100%">
</table>

初始化:

// 初始化表格参数配置
Table.api.init({
    extend: {
        index_url: 'test/index' + location.search,
        add_url: 'test/add',
        edit_url: 'test/edit',
        del_url: 'test/del',
        multi_url: 'test/multi',
        table: 'test',
    }
});

分页配置:

Table.api.init({
    pageSize: 20, //调整分页大小为20
    pageList: [10, 25, 50, 100, 'All'], //增加一个100的分页大小
});

初始化表格:

var table = $("#table");
// 初始化表格
table.bootstrapTable({
    url: $.fn.bootstrapTable.defaults.extend.index_url,
    pk: 'id',
    sortName: 'weigh',
    columns: [
        [
            {checkbox: true},
            {field: 'id', title: __('Id')},
            {field: 'category_id', title: __('Category_id')},
            {field: 'title', title: __('Title')},
            {field: 'image', title: __('Image'), events: Table.api.events.image, formatter: Table.api.formatter.image},
            {field: 'images', title: __('Images'), events: Table.api.events.image, formatter: Table.api.formatter.images},
            {field: 'refreshtime', title: __('Refreshtime'), operate:'RANGE', addclass:'datetimerange', formatter: Table.api.formatter.datetime},
            {field: 'weigh', title: __('Weigh')},
            {field: 'switch', title: __('Switch'), searchList: {"1":__('Yes'),"0":__('No')}, formatter: Table.api.formatter.toggle},
            {field: 'status', title: __('Status'), searchList: {"normal":__('Normal'),"hidden":__('Hidden')}, formatter: Table.api.formatter.status},
            {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
            //更多参数请参考**列参数**文档章节
        ]
    ],
    //更多参数请参考**表格参数**文档章节
});

// 为表格绑定事件
Table.api.bindevent(table);

表格参数:

url        服务器数据的加载地址
sortName   定义排序列
sortOrder  排序方式 asc desc
height     高度
columns    列配置项
method     请求方式 get post
cache      ajax数据缓存 true or false
dataType   默认 json
pageNumber 首页页码 默认 1
pageSize   数据条数
pageList   页面数据条数
search     是否启用搜索  默认false

columns 列表参数:

radio       是否显示为单选按钮 默认 false
checkbox    是否显示为筛选框   默认 false
field       字段名称
title       字段标题
align       对齐方式 支持 left right center
valign      垂直对齐方式 支持 top middle bottom
width       宽度 默认详细 支持百分比
sortable    是否允许排序 默认 false
order       排序方式 asc desc
visibel     是否显示

格式化:

table.bootstrapTable({
    url: $.fn.bootstrapTable.defaults.extend.index_url,
    columns: [
        [
            {checkbox: true},
            {field: 'id', title: __('Id')},
            {field: 'intro', title: __('Intro'), formatter: function(value, row, index) {
                //value:intro字段的值,在开启escape时,value值已经自动做转义处理
                //row:当前行所有原始字段的数据,注意row下的所有数据均未做转义处理,需自行做好转义处理
                //index:当前行索引
                //示例:
                return value + " - " + parseInt(row.id);
            }
        ]
    ]
});

按钮组:

buttons: [
    {
        name: 'add', //唯一标识、权限标识
        dropdown: '', //按钮下拉分组,默认为不分组
        text: '同意', //按钮显示的文字,支持function
        title: '我是标题', //按钮显示的文字,支持function
        classname: 'btn btn-info btn-xs btn-dialog', //按钮的class,支持btn-dialog/btn-ajax/btn-addtabs
        icon: 'fa fa-plus', //按钮的图标
        url: 'department/index/add/parent_id/{ids}', //按钮的链接,支持使用{字段名}来占位替换,支持function
        confirm: '是否同意该请求?', //点击按钮后的确认框,支持function
        refresh: true, //操作完成后是否刷新列表
        disable: function(row){}, //判断按钮是否禁用,支持function
        visible: function(row){}, //判断按钮是否可见,支持function
        hidden: function(row){}, //判断按钮是否隐藏,支持function
        extend: '', //扩展的扩展属性,FastAdmin1.4.0+支持function
    },
    {
        ...
    }
]

打完收工!

posted @ 2026-04-19 17:56  帅到要去报警  阅读(12)  评论(0)    收藏  举报