HisiPHP的表格构建器是基于Layui的Table模块渲染的,所以表格的所有配置均与Layui的Table模块配置一样。
基础参数一览表(config)
参数 |
类型 |
必须 |
默认 |
说明 |
cols |
Array |
Y |
|
设置表头,详见下面的表头参数一览表 |
url |
string |
N |
当前URL |
异步数据接口 |
defaultToolbar |
Array |
N |
[‘filter’] |
表头工具栏右侧图标,可选值(filter: 显示筛选图标,exports: 显示导出图标,print: 显示打印图标) |
width |
Number |
N |
|
设定容器宽度 |
height |
Number |
N |
|
设定容器高度 |
cellMinWidth |
Number |
N |
|
所有常规单元格的最小宽度 |
done |
String |
N |
|
数据渲染完的回调 |
data |
Array |
N |
|
直接赋值数据展示,设置此参数后url参数配置无效 |
totalRow |
Boolean |
N |
false |
是否开启合计行区域 |
page |
Boolean |
N |
false |
开启分页 |
limit |
Number |
N |
10 |
每页显示的条数 |
limits |
Array |
N |
[10,20,30,40,50,60,70,80,90] |
每页条数的选择项 |
loading |
Boolean |
N |
true |
是否显示加载条 |
title |
String |
N |
|
定义 table 的大标题(在文件导出等地方会用到) |
text |
Object |
N |
|
自定义文本,如空数据时的异常提示等 |
skin |
Stirng |
N |
|
用于设定表格风格,可选值: line (行边框风格),row (列边框风格),nob (无边框风格) |
even |
Boolean |
N |
false |
隔行背景 |
size |
String |
N |
|
设定表格尺寸,可选值:sm (小尺寸),lg (大尺寸) |
表头参数一览表(cols)
参数 |
类型 |
必须 |
默认 |
说明 |
type |
String |
N |
|
设定列类型,目前只支持:checkbox、radio、filter、link、image、switch |
field |
String |
N |
|
设定字段名,如果无type参数,此参数为必须 |
title |
String |
N |
|
设定标题名称,如果无type参数,此参数为必须 |
width |
Number/String |
N |
|
设定列宽 |
minWidth |
Number |
N |
60 |
当前常规单元格的最小宽度 |
LAY_CHECKED |
Boolean |
N |
false |
是否全选状态(复选框列开启后才有效) |
fixed |
String |
N |
|
固定列,可选值有:left(固定在左)、right(固定在右) |
hide |
Boolean |
N |
false |
是否初始隐藏列 |
totalRow |
Boolean |
N |
false |
是否开启该列的自动合计功能 |
totalRowText |
String |
N |
|
用于显示自定义的合计文本 |
sort |
Boolean |
N |
false |
是否允许排序 |
unresize |
Boolean |
N |
false |
是否禁用拖拽列宽 |
edit |
String |
N |
|
单元格编辑类型,可选值:text(输入框) |
event |
String |
|
|
自定义单元格点击事件名 |
style |
String |
N |
|
自定义单元格样式(CSS样式) |
align |
String |
N |
|
单元格排列方式,可选值有:left(默认)、center(居中)、right(居右) |
colspan |
Number |
N |
1 |
单元格所占列数(一般用于多级表头) |
rowspan |
Number |
N |
1 |
单元格所占行数(一般用于多级表头) |
templet |
String |
N |
|
自定义列模板 |
toolbar |
String |
N |
|
绑定列工具条 |
button |
Array |
N |
|
操作按钮,请参考下面的表头参数 button 配置 |
表头参数 button 配置
字段名 |
类型 |
说明 |
title |
String |
显示标题 |
url |
String |
链接地址(支持权限自动过滤) |
class |
String |
样式名 |
param |
Array |
扩展参数;示例:[‘type’ => ‘{{ d.type }}’],d为当前行数据 |
attrs |
Array |
扩展属性 |
示例代码:
public function index()
{
if ($this->request->isAjax()) {
$page = $this->request->param('page/d', 1);
$limit = $this->request->param('limit/d', 20);
$data = [];
$count = 0;
return $this->layuiJson($data, $count);
}
// 定义表格构建器
$assign['buildTable']['config'] = [// 表格配置
'page' => true,
'cols' => [// 表头参数配置
[
'type' => 'checkbox',
],
[
'field' => 'image',
'title' => '图片预览',
'align' => 'center',
'type' => 'image',// 图片预览模式
'width' => 100,
],
[
'field' => 'status',
'title' => '状态',
'type' => 'switch',// 状态切换
'align' => 'center',
'width' => 70,
],
[
'field' => 'create_time',
'title' => '创建时间',
'align' => 'center',
'width' => 170,
],
[
'title' => '操作',
'width' => 120,
'align' => 'center',
'button' => [
[
'title' => '编辑',
'class' => 'layui-btn layui-btn-xs hisi-iframe',
'url' => url('edit'),
'attrs' => [
'data-options' => [
'width' => '800px'
],
],
],
[
'title' => '删除',
'class' => 'hisi-tr-del layui-btn layui-btn-xs layui-btn-danger',
'url' => url('delete'),
],
],
],
],
];
return $this->assign($assign)->fetch();
}
渲染效果: