FastMovieAI 二开基线 v1.0 (完整源码)
This commit is contained in:
@@ -0,0 +1,96 @@
|
||||
<?php
|
||||
|
||||
namespace app\expose\build\builder;
|
||||
|
||||
use app\expose\utils\DataModel;
|
||||
|
||||
class ImagesBuilder extends DataModel
|
||||
{
|
||||
protected $data = [];
|
||||
public function __construct($props = [])
|
||||
{
|
||||
$this->data['props'] = array_merge([
|
||||
'image'=>'url',
|
||||
'title'=>'title',
|
||||
'info'=>'info'
|
||||
], $props);
|
||||
}
|
||||
public function addSelection(string $prop = '', string $label = '', mixed $extra = [])
|
||||
{
|
||||
if (!isset($extra['props'])) {
|
||||
$extra['props'] = [
|
||||
'width' => '50px',
|
||||
'type' => 'selection'
|
||||
];
|
||||
}
|
||||
$extra['props']['type'] = 'selection';
|
||||
$this->data['selection'] = true;
|
||||
return $this;
|
||||
}
|
||||
public function addAction(string|ActionBuilder $label, mixed $extra = [])
|
||||
{
|
||||
if ($label instanceof ActionBuilder) {
|
||||
$this->data['action'] = $label->builder();
|
||||
return $this;
|
||||
}
|
||||
if (!isset($this->data['action'])) {
|
||||
$this->data['action'] = [];
|
||||
}
|
||||
$this->data['action'][] = [
|
||||
'label' => $label,
|
||||
'extra' => $extra
|
||||
];
|
||||
return $this;
|
||||
}
|
||||
public function addFooter(mixed $props = [])
|
||||
{
|
||||
if (!isset($this->data['selection'])) {
|
||||
$this->addSelection();
|
||||
}
|
||||
$this->data['footer'] = [
|
||||
'extra' => [
|
||||
'group' => [],
|
||||
'props' => $props,
|
||||
]
|
||||
];
|
||||
return $this;
|
||||
}
|
||||
public function addFooterAction(string $label, mixed $extra = [])
|
||||
{
|
||||
$this->data['footer']['extra']['group'][] = [
|
||||
'label' => $label,
|
||||
'extra' => $extra
|
||||
];
|
||||
return $this;
|
||||
}
|
||||
public function addHeader(array|ActionBuilder $props = [])
|
||||
{
|
||||
if ($props instanceof ActionBuilder) {
|
||||
$this->data['header'] = $props->builder();
|
||||
return $this;
|
||||
}
|
||||
$this->data['header'] = [
|
||||
'extra' => [
|
||||
'group' => [],
|
||||
'props' => $props,
|
||||
]
|
||||
];
|
||||
return $this;
|
||||
}
|
||||
public function addHeaderAction(string $label, mixed $extra = [])
|
||||
{
|
||||
$this->data['header']['extra']['group'][] = [
|
||||
'label' => $label,
|
||||
'extra' => $extra
|
||||
];
|
||||
return $this;
|
||||
}
|
||||
public function addScreen(FormBuilder $builder)
|
||||
{
|
||||
$this->data['screen'] = $builder;
|
||||
}
|
||||
public function builder()
|
||||
{
|
||||
return $this->data;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user