## 表格页面整体结构
表格构建器用于列表页面。
表格页面基础结构包含如下区块:
1. 页面标题。
2. 页面操作按钮。
3. 页面提示区域。
4. Tab切换按钮。
5. 表格顶部操作区域(按钮)。
6. 表格搜索区域(表单搜索)。
7. 表格。表格的列又分为如下类型:
1. 复选框列。
2. 数量索引列。
3. 数据列。
4. 右侧操作栏。
8. 分页栏。
> 以上表格中除了页面标题与表格,其他每一项都可选择展示或不展示(包含列中的复选框、数量索引、操作栏等)。
- 基本使用,创建一个列表页面并渲染:
```
return SBuilder::makeTable()
->fetch();
```
## 表格中各个区块添加与设置方法
- 设置页面标题 [setPageTitle]()
```
return SBuilder::makeTable()
->setPageTitle('添加页面')
->fetch();
```
- ~~页面操作按钮暂不支持设置。~~
- 页面提示区域[setPageTips]()
```
return SBuilder::make('table')
->setPageTitle('添加页面')
->fetch();
```
- Tab切换按钮 [setNavTab]() 与 [setNavTabCurrent]()
```
return SBuilder::make('table')
// 设置tab列表
->setNavTab([
['test', '测试tab', '/admin/demo/index'],
['test1', '测试追加tab', '/admin/demo/index1'],
['test2', '测试批量添加tab', '/admin/demo/index2'],
])
// 设置当前选中的tab
->setNavTabCurrent('test')
->fetch();
```
- 表格顶部操作按钮 [addTopButton]()
```
return SBuilder::make('table')
->addTopButton('add')
->fetch();
```
- 表格搜索区域
1. 时间段筛选 [addTimeFilter]()
```
return SBuilder::make('table')
->addTimeFilter('create_time')
->fetch();
```
2. 设置搜索栏 [setSearch]()
```
return SBuilder::make('table')
->setSearch(['id' => 'ID', 'name' => '姓名', 'mobile' => '手机号'])
->fetch();
```
- 添加表格的列
1. 添加单列 [addColumn]()
```
return SBuilder::make('table')
->addColumn('name', '姓名')
->addColumn('status', '状态', 'status')
->addColumn('create_time', '创建时间', 'datetime')
->fetch();
```
2. 批量添加列 [addColumns]()
```
return SBuilder::make('table')
->addColumns([
['name', '姓名'],
['status', '状态', 'status'],
['create_time', '创建时间', 'datetime'],
])
->fetch();
```
3. 显示多选框列 [showCheckbox]()
```
return SBuilder::make('table')
->showCheckbox()
// 或使用addColumn的快捷方式
->addColumn('__checkbox__')
->fetch();
```
4. 显示数量索引 [showIndex]()
```
return SBuilder::make('table')
->showIndex()
// 或使用addColumn的快捷方式
->addColumn('__index__')
->fetch();
```
5. 添加右侧操作栏列 [addColumn]()
```
return SBuilder::make('table')
->addColumn('__btn__')
// 或在addColumns中使用
->addColumns([
..., // 其他的列
['__btn__']
])
->fetch();
```
- 设置列表数据获取地址 [setRowListUrl]()
> SPHP默认会通过ajax请求获取数据列表,当数据列表接口返回一个分页对象时,前端会自动展示分页控件。
```
return SBuilder::make('table')
->setRowListUrl(url('getList'))
->fetch();
```
- 设置列表数据 [setRowList]()
> 当然,也可以直接设置列表数据,此时将会关闭ajax获取数据功能。但此种方式目前不兼容分页,因此适用于不需要分页的情况。
```
return SBuilder::make('table')
->setRowList($list)
->fetch();
```
## 附录
1. 页面结构示意图:
![](https://box.kancloud.cn/198b6e630519a04c23cb091bab8b0748_1692x630.png)
## 通用方法:
1. 页面级方法
- [设置页面标题](https://www.kancloud.cn/evanlee/sphp/1068618)
- [添加页面提示信息](https://www.kancloud.cn/evanlee/sphp/1068619)
- [设置页面Tab](https://www.kancloud.cn/evanlee/sphp/3183863)
- [设置页面背景色](设置页面背景色.md)
- [设置是否点击遮罩关闭](设置是否点击遮罩关闭.md)
- [添加区块](添加区块.md)
2. 区块级方法
- [设置区块名](设置区块名.md)
- [设置区块布局](设置区块布局.md)
- 序言
- 下载及安装
- 目录结构
- 基础
- 多站点-单入口文件(推荐)
- (旧)多站点-多入口文件方式
- (旧)入口文件
- (旧)站点配置
- 按钮操作
- 区块概念
- 构建器(SBuilder)
- 页面-Page
- 设置页面标题
- 添加页面提示信息
- 设置页面Tab
- 设置页面背景色
- 设置是否点击遮罩关闭
- 添加区块
- 区块-Block
- 设置区块名
- 设置区块布局
- 表单(form)
- 添加表单项通用方法
- 添加表单项
- 单行文本框
- 多行文本框
- 数字输入框
- 密码框
- 数组输入框
- 单选框
- 状态选择器
- 复选框
- 下拉框
- 级联选择器
- 开关
- 日期选择器
- 日期时间选择器
- 日期范围选择器
- 日期时间范围选择器
- 时间选择器
- 时间范围选择器
- Tree 树形组件
- 图标选择器
- 颜色选择器
- 单图片上传
- 多图片上传
- 视频上传
- 单文件上传
- 多文件上传
- 富文本编辑器-QEditor
- 富文本编辑器-UEditor
- 小程序富文本
- 静态文本
- 隐藏表单项
- 表格数据输入框
- 分组
- 地图选择器(未实现)
- 地区选择器(未实现)
- 穿梭框(未实现)
- 图片裁剪(未实现)
- 邮箱输入框(未实现)
- 设置表单LabelWidth
- 设置表单提交地址
- 设置默认按钮标题
- 提交表单确认框
- 隐藏默认按钮
- 添加额外按钮
- 设置触发器
- 设置表单数据
- 表单布局
- 模板
- 表格(table)
- 设置表名
- 添加顶部按钮
- 添加时间段筛选
- 设置搜索栏
- 添加列
- text
- byte
- status
- tags
- yesno
- datetime
- icon
- image
- images
- external_image[已废弃]
- external_images[已废弃]
- link
- html
- select
- text.edit
- group
- 多选框栏
- 数量索引栏
- 操作栏
- 右侧操作按钮
- 设置多选框
- 设置显示数量索引
- 设置列表数据地址
- 直接设置数据
- 关闭ajax获取数据功能
- 设置分页
- 自动新增
- 自动编辑
- 图表(Charts)
- Html
- Iframe
- 数据面板
- 卡片列表
- 按钮(Button)
- 按钮调用示例
- 自定义组件
- 混合页面
- 概念说明
- 扩展
- 图标扩展
- 杂项
- 帮助函数
- TODO