FastMovieAI AI短剧创作平台 二开基线

- 源码: xhadmincn/FastMovieAI (Apache 2.0)
- 二开: Docker部署, Swoole改Select, route.php修复, 补update/VERSION
- vendor/示例资源已gitignore
This commit is contained in:
李建琦
2026-08-26 18:37:36 +08:00
commit eae151fd57
888 changed files with 105571 additions and 0 deletions
@@ -0,0 +1,43 @@
<?php
use app\expose\build\builder\ComponentBuilder;
$Component = new ComponentBuilder;
return [
[
'title' => '开关',
'field' => 'state',
'value' => false,
'component' => 'switch',
'extra' => [
'required' => true,
'prompt' => [
$Component->add('text', ['default' => '是否开启站内推送'], ['type' => 'info', 'size' => 'small'])
->builder()
],
'props' => []
]
],
[
'title' => 'wss地址',
'field' => 'wss_url',
'value' => 'wss://{HOST}',
'component' => 'input',
'extra' => [
'required' => true,
'where' => [
['state', '=', true]
],
'col'=>[
'span'=>12
],
'prompt' => [
$Component->add('text', ['default' => '只需要填写wss://+域名,不需要填写路径'], ['type' => 'info', 'size' => 'small'])
->builder()
],
'props' => [
'placeholder' => 'wss://+域名'
]
]
],
];
@@ -0,0 +1,24 @@
<?php
use app\expose\build\builder\ComponentBuilder;
use plugin\notification\utils\enum\Scene;
$data=[];
$Component = new ComponentBuilder;
$options=Scene::getOptions();
foreach ($options as $key => $value) {
$temp=[
'title' => $value['label'].'模板或模板ID',
'field' => $value['value'],
'value' => '',
'component' => 'input',
'extra' => [
'prompt' => [
$Component->add('text', ['default' => $value['label'].'场景使用的短信推送模板或模板ID,为空则关闭该场景通知'], ['type' => 'info', 'size' => 'small'])
->builder()
]
]
];
$data[]=$temp;
}
return $data;
@@ -0,0 +1,94 @@
<?php
use app\expose\build\builder\ComponentBuilder;
use plugin\notification\utils\enum\Method;
$Component = new ComponentBuilder;
return [
[
'title' => '开关',
'field' => 'state',
'value' => false,
'component' => 'switch',
'extra' => [
'required' => true,
'prompt' => [
$Component->add('text', ['default' => '是否开启通知'], ['type' => 'info', 'size' => 'small'])
->builder()
],
'props' => []
]
],
[
'title' => '同一用户每日通知次数',
'field' => 'user_limit',
'value' => 0,
'component' => 'input-number',
'extra' => [
'required' => true,
'where' => [
['state', '=', true]
],
'col'=>[
'xs' => 24,
'sm' => 12,
'md' => 6
],
'prompt' => [
$Component->add('text', ['default' => '同一用户所有场景每日通知次数,0:不限制'], ['type' => 'info', 'size' => 'small'])
->builder()
],
'props' => [
'min' => 0,
'controls'=>false,
'placeholder' => '次数'
]
]
],
[
'title' => '同一用户同一场景每日通知次数',
'field' => 'user_scene_limit',
'value' => 1,
'component' => 'input-number',
'extra' => [
'required' => true,
'where' => [
['state', '=', true]
],
'col'=>[
'xs' => 24,
'sm' => 12,
'md' => 6
],
'prompt' => [
$Component->add('text', ['default' => '同一用户同一场景每日通知次数,0:不限制'], ['type' => 'info', 'size' => 'small'])
->builder()
],
'props' => [
'min' => 0,
'controls'=>false,
'placeholder' => '次数'
]
]
],
[
'title' => '通知方式',
'field' => 'method',
'value' => Method::WECHAT_AND_SMS['value'],
'component' => 'radio',
'extra' => [
'required' => true,
'where' => [
['state', '=', true]
],
'prompt' => [
$Component->add('text', ['default' => '通知方式'], ['type' => 'info', 'size' => 'small'])
->builder()
],
'options'=>Method::getOptions(),
'subProps' => [
'border'=>true
]
]
]
];
@@ -0,0 +1,50 @@
<?php
use app\expose\build\builder\ComponentBuilder;
use app\expose\enum\Action;
use plugin\notification\utils\enum\Scene;
$data=[];
$Component = new ComponentBuilder;
$options=Scene::getOptions();
foreach ($options as $key => $value) {
$temp=[
'title' => $value['label'].'模板ID',
'field' => $value['value'],
'value' => '',
'component' => 'input',
'extra' => [
'prompt' => [
$Component->add('text', ['default' => $value['label'].'场景使用的微信公众号推送模板ID,为空则关闭该场景通知'], ['type' => 'info', 'size' => 'small'])
->builder()
],
'props' => [],
'children'=>[
'append'=>[
'component'=>'el-button',
'extra'=>[
'model'=>Action::COMFIRM['value'],
'path'=>'/app/notification/admin/WechatTemplate/getTemplateId',
'props'=>[
'type'=>'warning',
'message'=>'点击确定立即获取模板ID',
]
],
'children'=>[
'default'=>'一键获取模板ID'
]
]
]
]
];
if(isset($value['params'])){
foreach ($value['params'] as $k => $v) {
if(!isset($temp['extra']['children']['append']['extra']['params'])){
$temp['extra']['children']['append']['extra']['params']=[];
}
$temp['extra']['children']['append']['extra']['params'][$k]=$v;
}
}
$data[]=$temp;
}
return $data;