## 表格頁面整體結構
表格構建器用于列表頁面。
表格頁面基礎結構包含如下區塊:
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. 頁面結構示意圖:

## 通用方法:
1. 頁面級方法
- [設置頁面標題](http://www.hmoore.net/evanlee/sphp/1068618)
- [添加頁面提示信息](http://www.hmoore.net/evanlee/sphp/1068619)
- [設置頁面Tab](http://www.hmoore.net/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