- 源码: xhadmincn/FastMovieAI (Apache 2.0) - 二开: Docker部署, Swoole改Select, route.php修复, 补update/VERSION - vendor/示例资源已gitignore
73 lines
2.2 KiB
PHP
73 lines
2.2 KiB
PHP
<?php
|
||
|
||
namespace app\expose\build\builder;
|
||
|
||
use app\expose\utils\DataModel;
|
||
|
||
class ActionBuilder extends DataModel
|
||
{
|
||
protected $data = [];
|
||
public function __construct($label = '', $props = [])
|
||
{
|
||
$this->data = [
|
||
'label' => $label,
|
||
'extra' => [
|
||
'group' => [],
|
||
'props' => $props,
|
||
]
|
||
];
|
||
}
|
||
/**
|
||
* 向操作按钮中添加字段
|
||
*
|
||
* @param string $label 操作按钮标题
|
||
* @param mixed $extra 额外参数
|
||
* @param string $extra.path 路径, 例如: '/app/pluginExample/admin/Form/index'
|
||
* @param string $extra.model 操作模式, 详见 \app\expose\enum\Action::class,例如:Action::COMFIRM['value']
|
||
* @param mixed $extra.where 显示条件, 例如: [['is_system', '!=', 1]]
|
||
* @param mixed $extra.params 额外传参, 例如: [['id' => 1]]
|
||
* @param string|array $extra.field 指定提交字段, 例如: *或['id'=>'uid'],id:数据集中字段名,uid:提交数据中字段名
|
||
* @param mixed $extra.props 操作属性, 例如: ['type' => 'primary', 'title' => '编辑《{nickname}》']
|
||
* @param mixed $extra.component 操作展示组件
|
||
* @param string $extra.component.name 组件名, 例如: 'button'
|
||
* @param mixed $extra.component.props 组件属性, 例如: ['type' => 'primary', 'size' => 'small']
|
||
* @return ActionBuilder
|
||
*/
|
||
public function add(string $label, mixed $extra = [])
|
||
{
|
||
$this->data['extra']['group'][] = [
|
||
'label' => $label,
|
||
'extra' => array_merge([
|
||
'loading' => false,
|
||
], $extra)
|
||
];
|
||
return $this;
|
||
}
|
||
/**
|
||
* 设置数据
|
||
*
|
||
* @param array $data 数据
|
||
* @return ActionBuilder
|
||
*/
|
||
public function setData(array $data)
|
||
{
|
||
$this->data['data'] = $data;
|
||
return $this;
|
||
}
|
||
/**
|
||
* 设置数据操作
|
||
*
|
||
* @param string $action 操作,append:追加合并数据
|
||
* @return ActionBuilder
|
||
*/
|
||
public function setDataAction(string $action)
|
||
{
|
||
$this->data['callback'] = $action;
|
||
return $this;
|
||
}
|
||
public function builder()
|
||
{
|
||
return $this->data;
|
||
}
|
||
}
|