## 自定義表頭
提供給開發者新增自己想要的表頭字段模板`templet`,在調用表格構建器`cols`方法時使用。注意:`templet`名不能與系統提供的模板名沖突,否者會被系統模板覆蓋。
## 使用
* 定義自定義表頭和可重寫方法
```javascript
// 必須使用模塊YunjField并繼承
layui.define(['TableColTemplet'], function (exports) {
let TableColTemplet= layui.TableColTemplet;
class DemoCol extends TableColTemplet{
constructor(options) {
super(options);
}
// 返回模板內容
layout() {
// 可根據屬性that.args來設置結構
}
// 渲染前執行
async renderBefore() {
return 'done';
}
// 渲染后執行
async renderDone() {
return 'done';
}
// 定義額外的事件綁定
defineExtraEventBind() {
}
}
// 模塊名需以 TableCol + 首字母大寫
exports('TableColDemo', DemoCol);
});
```
* 自定義表頭可調用方法
```javascript
layui.use(['yunj'], function () {
let win = window;
let doc = document;
yunj.formCol("demo",{
"tableId":"test",
"state":"all",
"key":"demo_test",
"args":{title:"測試表頭"}
}).then(col=>{
// col為返回表頭對象,可通過表頭對象調用常用方法
...
});
}
```
常用方法如下:
* **col.render()**
表頭渲染
返回值:promise對象
> 示例:新增一個表頭模板`show_datetime`,用來顯示數據的操作時間。
* 首先,創建php文件:\application\demo\libs\control\cols\templet\ShowTime.php
```php
namespace app\demo\libs\control\cols\templet;
use yunj\control\cols\YunjCols;
class ShowTime extends YunjCols {
private static $instance;
public static function instance(){
if (!self::$instance instanceof self){
self::$instance = new self();
}
return self::$instance;
}
// 定義額外配置項(無額外配置項可不寫)
protected function defineExtraArgs() : array {
return [
'format' => 'Y-m-d H:i:s', // 時間格式
];
}
// 處理配置項(不需要處理可不寫)
protected function handleArgs(array $args) : array {
return $args;
}
}
```
* 其次,創建js文件:/public/static/yunj/demo/js/modules/cols/templet/show-time.js
```javascript
layui.define(['TableColTemplet'], function (exports) {
let TableColTemplet = layui.TableColTemplet;
class TableColShowTime extends TableColTemplet{
constructor(options) {
super(options);
}
// 字段結構
layout(){
let that=this;
return `<span class="layui-badge layui-bg-gray">{{ yunj.timestampFormat(d.${that.key},'${that.args.format}') }}</span>`;
}
}
exports('TableColShowTime', TableColShowTime);
});
```
* 然后,添加配置:\application\yunj\config\control.php
```php
return [
// 表格表頭模板
'cols'=>[
'showTime'=>[
'args'=>'\\app\\demo\\libs\\control\\cols\\templet\\ShowTime',
'module'=>'/static/yunj/demo/js/modules/cols/templet/show-time',
],
],
];
```
* 最后,調用表格構建器配置字段
```php
$builder=YT('general_example')
->state(DbRowState::state())
->cols(function ($state){
$cols=[
'demo_showTime'=>[
'title'=>'操作時間',
'templet'=>'showTime',
],...
];
return $cols;
})
```
> 結果展示:

- 序言
- 基礎
- 安裝
- 目錄結構
- 配置
- 版本
- 控制器
- 使用說明
- 視圖模板
- 使用說明
- 區塊重寫
- seo
- headStyle
- headScript
- content
- script
- 驗證器
- TP驗證器
- 使用說明
- 自動處理
- 數據處理
- 前端驗證器
- 概述
- 調用示例
- 通用驗證規則
- 表單構建器
- 基礎示例
- 初始化
- 鏈式操作
- tab
- url
- field
- fieldValidate
- button
- load
- submit
- 渲染輸出
- 字段配置
- 使用說明
- 隱藏域(hidden)
- 文本框(text)
- 文本域(textarea)
- 密碼框(password)
- 富文本(editor)
- 文檔編輯(markdown)
- 下拉選框(select)
- 單選框(radio)
- 復選框(checkbox)
- 開關(switch)
- 日期(date)
- 時間日期(datetime)
- 年份(year)
- 月份(month)
- 時間(time)
- 單圖(img)
- 多圖(imgs)
- 單文件(file)
- 多文件(files)
- 取色器(color)
- 地區聯動(area)
- 下拉搜索(dropdownSearch)
- 樹(tree)
- 自定義字段
- 單一字段調用
- 概述
- 示例
- 表格構建器
- 基礎示例
- 初始化
- 鏈式操作
- state
- url
- page
- limit
- limits
- filter
- filterValidate
- toolbar
- defaultToolbar
- import
- cols
- count
- items
- event
- 渲染輸出
- 表頭配置
- 使用說明
- 枚舉(enum)
- 時間日期(datetime)
- 單圖(img)
- 多圖(imgs)
- 單文件(file)
- 多文件(files)
- 拖拽排序(dragSort)
- 顏色呈現(color)
- 地區呈現(area)
- 操作欄(action)
- 自定義表頭
- JS事件
- 異步事件監聽
- 導入構建器
- 基礎示例
- 初始化
- 鏈式操作
- sheet
- cols
- colsValidate
- limit
- tips
- row
- rows
- 渲染輸出
- 主題開發
- 實現步驟
- 系統主題
- 注意
- PHP公共方法庫
- 配置
- yunj_config
- 構建器
- YF
- YT
- YI
- 重定向
- url_tips
- redirect_tips
- throw_redirect
- 響應輸出
- response_msg
- response_json
- success_json
- error_json
- throw_json
- throw_success_json
- throw_error_json
- 數組
- array_eq
- array_in
- array_supp
- array_depth
- array_insert
- array_key_prefix
- 驗證
- is_mobile
- is_positive_int
- is_positive_integer
- is_json
- is_datetime
- is_md5_result
- 時間日期
- msectime
- 字符串
- rand_char
- filter_sql
- start_with
- exception_to_str
- 數據加解密
- aes_encrypt
- aes_decrypt
- rsa_encrypt
- rsa_decrypt
- rsa_sign
- rsa_sign_verify
- JS公共方法庫
- 調用說明
- 數據類型
- varType
- 判斷
- isMobile
- isObj
- isEmptyObj
- isArray
- isEmptyArray
- isString
- isEmptyString
- isBool
- isNumber
- isFloat
- isFunction
- isUndefined
- isJson
- isCsv
- isXls
- isXlsx
- 字符串
- fileExt
- fileNameExt
- currTimestamp
- currDatetime
- timestampFormat
- 對象
- objSupp
- 圖片
- previewImg
- url
- url
- urlParam
- urlPushParam
- 頁面
- openNewPage
- openTab
- openPopup
- rawPageWin
- redirectTab
- redirectLogin
- isPopupPage
- isTabPage
- currPageId
- close
- closeCurr
- closeAll
- 網絡
- request
- 數據加解密
- aesEncrypt
- aesDecrypt
- rsaEncrypt
- rsaDecrypt
- rsaSign
- rsaSignVerify
- 附錄
- 升級指導
- 更新日志