Files
xk-api-yii/admin/components/UI/Widget/Row.php
2024-09-19 11:32:39 +08:00

64 lines
1.2 KiB
PHP

<?php
namespace admin\components\UI\Widget;
use admin\components\UI\Tools;
/**
* 行布局组件
* Class Row
* @package backend\components\UI\Widget
*/
class Row extends Widget
{
private array $column = [];
/**
* @param callable|null $callback
*/
public function __construct(callable $callback = NULL)
{
$this->callback = $callback;
}
/**
* 设置列
* @param callable $callback
* @param int $width
* @return $this
*/
public function column(callable $callback, int $width = 0): self
{
$this->column[] = [
'width' => $width,
'callback' => $callback,
];
return $this;
}
/**
* @return array
*/
public function render(): array
{
$nodes = [];
foreach ($this->column as $vo) {
$nodes[] = [
'nodeName' => 'div',
'class' => $vo['width'] ? "row-span-{$vo['width']}" : '',
'child' => call_user_func($vo['callback'])
];
}
return [
'nodeName' => 'div',
'class' => 'grid grid-flow-col gap-x-4',
'child' => $nodes
];
}
}