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

63 lines
1.4 KiB
PHP

<?php
namespace admin\components\UI\Form;
use admin\components\UI\Tools;
/**
* 复合组件
* @package backend\components\UI
*/
class Composite extends Element
{
public array $column = [];
public bool $component = true;
public object $form;
/**
* @param null $key
* @param string $item
* @return array|object
*/
public function getColumn($key = null, string $item = '')
{
return $key !== null ? ($item ? $this->column[$key][$item] : $this->column[$key]) : $this->column;
}
/**
* 获取值
* @param string $time
* @return array
*/
public function getInput(string $time = 'add'): array
{
$data = [];
foreach ($this->column as $vo) {
$vo['object']->getElement()->map(function ($item) use (&$data, $time) {
foreach ($item->getInput($time) as $k => $v) {
$data[$k] = $v;
}
});
}
return $data;
}
/**
* @param $info
* @return array
*/
public function getData($info): array
{
$data = [];
foreach ($this->column as $vo) {
$vo['object']->getElement()->map(function ($item) use (&$data, $info) {
foreach ($item->getData($info) as $k => $v) {
$data[$k] = $v;
}
});
}
return $data;
}
}