Files
fastmovieai/fastmovie-admin/app/expose/build/builder/ActionBuilder.php
T
李建琦 eae151fd57 FastMovieAI AI短剧创作平台 二开基线
- 源码: xhadmincn/FastMovieAI (Apache 2.0)
- 二开: Docker部署, Swoole改Select, route.php修复, 补update/VERSION
- vendor/示例资源已gitignore
2026-08-26 18:37:36 +08:00

73 lines
2.2 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?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;
}
}