Table表格
FastAdmin中在表格使用上,主要载入的是Bootstrap-Table这款插件
该插件使用广泛,具备比较全面的参数;例如有表格类的参数、列表的参数、以及包括触发的多种事件
如果想熟练使用,可以多去查阅一下官方文档
Bootstrap-Table官网
一张图解析FastAdmin中的表格列表的功能
依赖
在FastAdmin中如果需要使用Bootstrap-table,需要使用require引入table模块
table模块对应的是assets/js/require-table.js文件
FastAdmin做了许多通用方法和默认值操作
载入依赖
require(['table'], function(Table){
//编写实例化代码
//使用Table对象
});
引入CSS
由于表格列表常用于后台管理列表,后台已经默认引入了表格相关的CSS
文件,在前台未引入相关的CSS
文件,如果你需要在前台使用到Bootstrap-table
,则需要手动载入表格相关的CSS
文件。如下
<link rel="stylesheet" type="text/css" href="__CDN__/assets/libs/bootstrap-table/dist/bootstrap-table.min.css"/>
实例化
<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>
初始化
在FastAdmin中可以使用Table.api.init
进行表格的初始化配置操作,比如表格参数,列参数,语言包等等
// 初始化表格参数配置
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',
}
});
以上初始化的方法是我们在JS代码中最常看见的,我们还可以使用以下的方式来修改表格的默认参数和默认列参数信息
Table.api.init({
pageSize: 20, //调整分页大小为20
pageList: [10, 25, 50, 100, 'All'], //增加一个100的分页大小
});
操作
通过以上的初始化以后即可使用以下代码进行表格实例化操作了
define(['jquery', 'bootstrap', 'backend', 'table', 'form'],function($, undefined, Backend, Table, Form){
var Controller = {
index:function(){
// 初始化表格参数配置
Table.api.init({
extend: {
index_url: 'subject/subject/index',
add_url: 'subject/subject/add',
edit_url: 'subject/subject/edit',
del_url: 'subject/subject/del',
multi_url: 'subject/subject/multi',
table: 'subject',
}
});
// 获取到table标签的id
var table = $("#table")
// 初始化表格
table.bootstrapTable({
// 当访问列表发起ajax请求数据
url:$.fn.bootstrapTable.defaults.extend.index_url,
// 主键
pk:'id',
// 设置默认排序
sortName:'createtime',
sortOrder:'desc',
columns:[
[
{checkbox: true},
{field:'id',title:__('Id'),sortable: true},
{field:'title',title:__('Title')},
{field:'thumb_cdn',title:__('Thumbs'),operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
{field:'price',title:__('Price'),sortable: true},
{field:'like_count',title:__('Likes')},
{field:'category.name',title:__('CateName')},
{field:'createtime',title:__('Ceatetime'),addclass:'datetimerange', formatter: Table.api.formatter.datetime},
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
]
]
})
// 为表格绑定事件
Table.api.bindevent(table);
},
// 添加
add:function()
{
// 为表单绑定事件
Controller.api.bindevent();
},
edit:function()
{
Controller.api.bindevent();
},
api: {
bindevent: function () {
Form.api.bindevent($("form[role=form]"));
}
}
}
return Controller
})