mirror of
https://gitee.com/zoujingli/ThinkAdmin.git
synced 2026-06-07 04:28:11 +08:00
将 v6 中直接放在本地 app 的后台与微信能力迁移为 v8 插件组件,并把运行时基础能力沉淀到独立插件包。 主要内容: - 新增 think-library、system、worker、static、install 等基础插件包。 - 新增 account、payment、wechat-client、wechat-service、wemall、wuma 等业务插件包。 - 移除 v6 的 app/admin 与 app/wechat 本地应用实现,改由插件分发接管。 - 将 Helper 能力彻底并入 System,统一为 plugin\system\helper\* 命名空间。 - 同步插件迁移发布清单与根 route 占位,保证安装发布流程可复现。
88 lines
2.5 KiB
PHP
88 lines
2.5 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace think\admin\builder\form\module;
|
|
|
|
use think\admin\builder\form\FormComponents;
|
|
use think\admin\builder\form\FormNode;
|
|
|
|
/**
|
|
* 表单通用模块。
|
|
* @class FormModules
|
|
*/
|
|
class FormModules
|
|
{
|
|
/**
|
|
* @param array<string, mixed> $config
|
|
*/
|
|
public static function intro(FormNode $parent, array $config = []): FormNode
|
|
{
|
|
return FormComponents::intro()->config($config)->mount($parent);
|
|
}
|
|
|
|
/**
|
|
* @param array<string, mixed> $config
|
|
* @param callable(FormNode): void $callback
|
|
*/
|
|
public static function section(FormNode $parent, array $config, callable $callback): FormNode
|
|
{
|
|
return FormComponents::section()->config($config)->body($callback)->mount($parent);
|
|
}
|
|
|
|
public static function note(FormNode $parent, string $text, string $class = 'help-block color-desc'): FormNode
|
|
{
|
|
return FormComponents::note($text)->class($class)->mount($parent);
|
|
}
|
|
|
|
/**
|
|
* @param array<string, mixed> $config
|
|
*/
|
|
public static function readonlyField(FormNode $parent, array $config = []): FormNode
|
|
{
|
|
return FormComponents::readonlyField()->config($config)->mount($parent);
|
|
}
|
|
|
|
/**
|
|
* @param array<string, mixed> $config
|
|
*/
|
|
public static function pickerField(FormNode $parent, array $config = []): FormNode
|
|
{
|
|
return FormComponents::pickerField()->config($config)->mount($parent);
|
|
}
|
|
|
|
/**
|
|
* @param array<string, array<string, mixed>> $themes
|
|
* @param array<string, mixed> $config
|
|
*/
|
|
public static function themePalette(FormNode $parent, array $themes, string $current = '', array $config = []): FormNode
|
|
{
|
|
return FormComponents::themePalette($themes, $current)->config($config)->mount($parent);
|
|
}
|
|
|
|
/**
|
|
* @param array<string, mixed> $theme
|
|
*/
|
|
private static function themePreviewStyle(array $theme): string
|
|
{
|
|
$styles = [];
|
|
foreach ([
|
|
'theme-accent' => strval($theme['primary'] ?? ''),
|
|
'theme-header' => strval($theme['header'] ?? ''),
|
|
'theme-side' => strval($theme['side'] ?? ''),
|
|
'theme-surface' => strval($theme['surface'] ?? ''),
|
|
'theme-body' => strval($theme['body'] ?? ''),
|
|
] as $name => $value) {
|
|
if ($value !== '') {
|
|
$styles[] = '--' . $name . ':' . $value;
|
|
}
|
|
}
|
|
return join(';', $styles);
|
|
}
|
|
|
|
private static function escape(string $content): string
|
|
{
|
|
return htmlentities($content, ENT_QUOTES, 'UTF-8');
|
|
}
|
|
}
|