65 lines
1.2 KiB
PHP
65 lines
1.2 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
namespace admin\components\UI;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 前端事件触发器
|
||
|
|
* Class Table
|
||
|
|
* @package backend\components\UI
|
||
|
|
*/
|
||
|
|
class Event
|
||
|
|
{
|
||
|
|
|
||
|
|
public string $name = '';
|
||
|
|
public array $data = [];
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @param $name
|
||
|
|
*/
|
||
|
|
public function __construct($name)
|
||
|
|
{
|
||
|
|
$this->name = md5($name);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 增加动作
|
||
|
|
* @param $type
|
||
|
|
* @param string $key
|
||
|
|
* @param array $data
|
||
|
|
* @param array $attr
|
||
|
|
* @return $this
|
||
|
|
*/
|
||
|
|
public function add($type, string $key = '', array $data = [], array $attr = []): self
|
||
|
|
{
|
||
|
|
$this->data[] = array_filter(array_merge([
|
||
|
|
'type' => $type,
|
||
|
|
'key' => $key,
|
||
|
|
'data' => $data
|
||
|
|
], $attr));
|
||
|
|
return $this;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 渲染数据
|
||
|
|
* @param false $inner
|
||
|
|
* @return array
|
||
|
|
*/
|
||
|
|
public function render(bool $inner = false): array
|
||
|
|
{
|
||
|
|
if ($inner) {
|
||
|
|
return [
|
||
|
|
'name' => $this->name,
|
||
|
|
'data' => $this->data
|
||
|
|
];
|
||
|
|
}
|
||
|
|
|
||
|
|
return [
|
||
|
|
'__event' => [
|
||
|
|
'name' => $this->name,
|
||
|
|
'data' => $this->data
|
||
|
|
]
|
||
|
|
];
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|