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 扩展属性

示例代码:

  1. public function index()
  2. {
  3. if ($this->request->isAjax()) {
  4. $page = $this->request->param('page/d', 1);
  5. $limit = $this->request->param('limit/d', 20);
  6. $data = [];
  7. $count = 0;
  8. return $this->layuiJson($data, $count);
  9. }
  10. // 定义表格构建器
  11. $assign['buildTable']['config'] = [// 表格配置
  12. 'page' => true,
  13. 'cols' => [// 表头参数配置
  14. [
  15. 'type' => 'checkbox',
  16. ],
  17. [
  18. 'field' => 'image',
  19. 'title' => '图片预览',
  20. 'align' => 'center',
  21. 'type' => 'image',// 图片预览模式
  22. 'width' => 100,
  23. ],
  24. [
  25. 'field' => 'status',
  26. 'title' => '状态',
  27. 'type' => 'switch',// 状态切换
  28. 'align' => 'center',
  29. 'width' => 70,
  30. ],
  31. [
  32. 'field' => 'create_time',
  33. 'title' => '创建时间',
  34. 'align' => 'center',
  35. 'width' => 170,
  36. ],
  37. [
  38. 'title' => '操作',
  39. 'width' => 120,
  40. 'align' => 'center',
  41. 'button' => [
  42. [
  43. 'title' => '编辑',
  44. 'class' => 'layui-btn layui-btn-xs hisi-iframe',
  45. 'url' => url('edit'),
  46. 'attrs' => [
  47. 'data-options' => [
  48. 'width' => '800px'
  49. ],
  50. ],
  51. ],
  52. [
  53. 'title' => '删除',
  54. 'class' => 'hisi-tr-del layui-btn layui-btn-xs layui-btn-danger',
  55. 'url' => url('delete'),
  56. ],
  57. ],
  58. ],
  59. ],
  60. ];
  61. return $this->assign($assign)->fetch();
  62. }

渲染效果:

image.png