全栈小学生 384e793c7e up
2025-05-23 14:40:12 +08:00

1330 lines
85 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
// +----------------------------------------------------------------------
// | Niucloud-admin 企业快速开发的多应用管理平台
// +----------------------------------------------------------------------
// | 官方网址https://www.niucloud.com
// +----------------------------------------------------------------------
// | niucloud团队 版权所有 开源版本可自由商用
// +----------------------------------------------------------------------
// | Author: Niucloud Team
// +----------------------------------------------------------------------
namespace app\dict\diy_form;
use core\dict\DictLoader;
/**
* 表单组件
* Class ComponentDict
* @package app\dict\diy_form
*/
class ComponentDict
{
public static function getComponent($params = [])
{
$system_components = [
'DIY_FORM_COMPONENT' => [
'title' => get_lang('dict_diy_form.component_type_form'),
'support' => [], // 支持的插件
'list' => [
'FormSubmit' => [
'title' => '表单提交',
'icon' => 'iconfont icona-biaodantijiaopc30',
'path' => 'edit-form-submit', // 编辑组件属性名称
'uses' => 1, // 最大添加数量
'support' => [], // 支持的表单类型
'sort' => 10001,
'position' => 'bottom_fixed', // 组件置顶标识不能拖拽可选值fixed、top_fixed、right_fixed、bottom_fixed、left_fixed
// 组件属性
'template' => [
"textColor" => "#303133", // 文字颜色
'pageStartBgColor' => '', // 底部背景颜色(开始)
'pageEndBgColor' => '', // 底部背景颜色(结束)
'pageGradientAngle' => 'to bottom', // 渐变角度从上到下to bottom、从左到右to right
'componentBgUrl' => '', // 组件背景图片
'componentBgAlpha' => 2, // 组件背景图片的透明度0~10
"componentStartBgColor" => '', // 组件背景颜色(开始)
"componentEndBgColor" => '', // 组件背景颜色(结束)
"componentGradientAngle" => 'to bottom', // 渐变角度上下to bottom、左右to right
"topRounded" => 0, // 组件上圆角
"bottomRounded" => 0, // 组件下圆角
"elementBgColor" => '', // 元素背景颜色
"topElementRounded" => 50,// 元素上圆角
"bottomElementRounded" => 50, // 元素下圆角
"margin" => [
"top" => 8, // 上边距
"bottom" => 0, // 下边距
"both" => 10 // 左右边距
],
],
'value' => [
/*
* 按钮位置
* follow_content跟随内容当表单内容多时需要滚动到页面最底部才会展示提交按钮适合必填项比较多的情况使用
* hover_screen_bottom悬浮屏幕底部提交按钮悬浮在屏幕底部方便填表人快速提交
*/
'btnPosition' => 'follow_content',
// 提交按钮
'submitBtn' => [
'text' => '提交', // 按钮文本内容
'color' => '#ffffff', // 文字颜色
'bgColor' => '#409EFF', // 背景色
],
// 重置按钮
'resetBtn' => [
'control' => true, // 是否展示开关
'text' => '重置', // 按钮文本内容
'color' => '', // 文字颜色
'bgColor' => '', // 背景色
],
]
],
'FormInput' => [
'title' => '单行文本',
'icon' => 'iconfont icona-danhangwenben-1pc30',
'path' => 'edit-form-input', // 编辑组件属性名称
'uses' => 0, // 最大添加数量
'sort' => 10002,
'position' => '', // 组件置顶标识不能拖拽可选值fixed、top_fixed、right_fixed、bottom_fixed、left_fixed
// 组件属性
'template' => [
"textColor" => "#303133", // 文字颜色
'pageStartBgColor' => '#FFFFFF', // 底部背景颜色(开始)
'pageEndBgColor' => '', // 底部背景颜色(结束)
'pageGradientAngle' => 'to bottom', // 渐变角度从上到下to bottom、从左到右to right
'componentBgUrl' => '', // 组件背景图片
'componentBgAlpha' => 2, // 组件背景图片的透明度0~10
"componentStartBgColor" => '', // 组件背景颜色(开始)
"componentEndBgColor" => '', // 组件背景颜色(结束)
"componentGradientAngle" => 'to bottom', // 渐变角度上下to bottom、左右to right
"topRounded" => 0, // 组件上圆角
"bottomRounded" => 0, // 组件下圆角
"elementBgColor" => '', // 元素背景颜色
"topElementRounded" => 0,// 元素上圆角
"bottomElementRounded" => 0, // 元素下圆角
"margin" => [
"top" => 8, // 上边距
"bottom" => 8, // 下边距
"both" => 10 // 左右边距
],
],
'value' => [
// 表单的公共属性
'field' => [
'name' => '单行文本', // 字段名称
// 字段说明,支持修改颜色、大小
'remark' => [
'text' => '',
'color' => '#999999',
"fontSize" => 14,
],
'required' => false, // 是否必填 truefalse
'unique' => false, // 内容不可重复提交 truefalse
'autofill' => false, // 自动填充上次填写的内容 true开启false关闭
'privacyProtection' => false, // 隐私保护 true开启false关闭隐藏逻辑各组件自行处理
// 'detailComponent' => '/src/app/views/diy_form/components/detail-form-render.vue', // 用于详情展示,后台会返回默认,特殊组件可以重写组件
'cache' => true, // 开启本地数据缓存 true开启false关闭
'default' => '', // 默认值 存储数据类型不同,各组件自行处理
'value' => '', // 字段值 存储数据类型不同,各组件自行处理
],
'placeholder' => '请输入', // 提示语
"fontSize" => 14,
"fontWeight" => "normal",
]
],
'FormTextarea' => [
'title' => '多行文本',
'icon' => 'iconfont icona-duohangwenben-1pc30',
'path' => 'edit-form-textarea', // 编辑组件属性名称
'uses' => 0, // 最大添加数量
'sort' => 10003,
// 组件属性
'template' => [
"textColor" => "#303133", // 文字颜色
'pageStartBgColor' => '#FFFFFF', // 底部背景颜色(开始)
'pageEndBgColor' => '', // 底部背景颜色(结束)
'pageGradientAngle' => 'to bottom', // 渐变角度从上到下to bottom、从左到右to right
'componentBgUrl' => '', // 组件背景图片
'componentBgAlpha' => 2, // 组件背景图片的透明度0~10
"componentStartBgColor" => '', // 组件背景颜色(开始)
"componentEndBgColor" => '', // 组件背景颜色(结束)
"componentGradientAngle" => 'to bottom', // 渐变角度上下to bottom、左右to right
"topRounded" => 0, // 组件上圆角
"bottomRounded" => 0, // 组件下圆角
"elementBgColor" => '', // 元素背景颜色
"topElementRounded" => 0,// 元素上圆角
"bottomElementRounded" => 0, // 元素下圆角
"margin" => [
"top" => 8, // 上边距
"bottom" => 8, // 下边距
"both" => 10 // 左右边距
],
],
'value' => [
// 表单的公共属性
'field' => [
'name' => '多行文本', // 字段名称
// 字段说明,支持修改颜色、大小
'remark' => [
'text' => '',
'color' => '#999999',
"fontSize" => 14,
],
'required' => false, // 是否必填 truefalse
'unique' => false, // 内容不可重复提交 truefalse
'autofill' => false, // 自动填充上次填写的内容 true开启false关闭
'privacyProtection' => false, // 隐私保护 true开启false关闭隐藏逻辑各组件自行处理
'cache' => true, // 开启本地数据缓存 true开启false关闭
'default' => '', // 默认值 存储数据类型不同,各组件自行处理
'value' => '', // 字段值 存储数据类型不同,各组件自行处理
],
'placeholder' => '请输入', // 提示语
"fontSize" => 14,
"fontWeight" => "normal",
"rowCount" => 4, // 显示行数
]
],
'FormNumber' => [
'title' => '数字',
'icon' => 'iconfont icona-shuzipc30-1',
'path' => 'edit-form-number', // 编辑组件属性名称
'uses' => 0, // 最大添加数量
'sort' => 10004,
// 组件属性
'template' => [
"textColor" => "#303133", // 文字颜色
'pageStartBgColor' => '#FFFFFF', // 底部背景颜色(开始)
'pageEndBgColor' => '', // 底部背景颜色(结束)
'pageGradientAngle' => 'to bottom', // 渐变角度从上到下to bottom、从左到右to right
'componentBgUrl' => '', // 组件背景图片
'componentBgAlpha' => 2, // 组件背景图片的透明度0~10
"componentStartBgColor" => '', // 组件背景颜色(开始)
"componentEndBgColor" => '', // 组件背景颜色(结束)
"componentGradientAngle" => 'to bottom', // 渐变角度上下to bottom、左右to right
"topRounded" => 0, // 组件上圆角
"bottomRounded" => 0, // 组件下圆角
"elementBgColor" => '', // 元素背景颜色
"topElementRounded" => 0,// 元素上圆角
"bottomElementRounded" => 0, // 元素下圆角
"margin" => [
"top" => 8, // 上边距
"bottom" => 8, // 下边距
"both" => 10 // 左右边距
],
],
'value' => [
// 表单的公共属性
'field' => [
'name' => '数字', // 字段名称
// 字段说明,支持修改颜色、大小
'remark' => [
'text' => '',
'color' => '#999999',
"fontSize" => 14,
],
'required' => false, // 是否必填 truefalse
'unique' => false, // 内容不可重复提交 truefalse
'autofill' => false, // 自动填充上次填写的内容 true开启false关闭
'privacyProtection' => false, // 隐私保护 true开启false关闭隐藏逻辑各组件自行处理
'cache' => true, // 开启本地数据缓存 true开启false关闭
'default' => '', // 默认值 存储数据类型不同,各组件自行处理
'value' => '', // 字段值 存储数据类型不同,各组件自行处理
],
'placeholder' => '请输入', // 提示语
"fontSize" => 14,
"fontWeight" => "normal",
'unit' => '', // 单位最多8位数
'formatLimit' => [], // 格式限制support_negative_number支持输入负数number_scope限制填写范围support_decimal支持输入小数多选
'numberScope' => [
'min' => 0,
'max' => 0
]
]
],
'FormRadio' => [
'title' => '单选项',
'icon' => 'iconfont icona-duihaopc30',
'path' => 'edit-form-radio', // 编辑组件属性名称
'uses' => 0, // 最大添加数量
'sort' => 10005,
// 组件属性
'template' => [
"textColor" => "#303133", // 文字颜色
'pageStartBgColor' => '#FFFFFF', // 底部背景颜色(开始)
'pageEndBgColor' => '', // 底部背景颜色(结束)
'pageGradientAngle' => 'to bottom', // 渐变角度从上到下to bottom、从左到右to right
'componentBgUrl' => '', // 组件背景图片
'componentBgAlpha' => 2, // 组件背景图片的透明度0~10
"componentStartBgColor" => '', // 组件背景颜色(开始)
"componentEndBgColor" => '', // 组件背景颜色(结束)
"componentGradientAngle" => 'to bottom', // 渐变角度上下to bottom、左右to right
"topRounded" => 0, // 组件上圆角
"bottomRounded" => 0, // 组件下圆角
"elementBgColor" => '', // 元素背景颜色
"topElementRounded" => 0,// 元素上圆角
"bottomElementRounded" => 0, // 元素下圆角
"margin" => [
"top" => 8, // 上边距
"bottom" => 8, // 下边距
"both" => 10 // 左右边距
],
],
'value' => [
// 表单的公共属性
'field' => [
'name' => '单选项', // 字段名称
// 字段说明,支持修改颜色、大小
'remark' => [
'text' => '',
'color' => '#999999',
"fontSize" => 14,
],
'required' => false, // 是否必填 truefalse
'unique' => false, // 内容不可重复提交 truefalse
'autofill' => false, // 自动填充上次填写的内容 true开启false关闭
'privacyProtection' => false, // 隐私保护 true开启false关闭隐藏逻辑各组件自行处理
'cache' => true, // 开启本地数据缓存 true开启false关闭
'default' => [], // 默认值 存储数据类型不同,各组件自行处理
'value' => [], // 字段值 存储数据类型不同,各组件自行处理
],
"fontSize" => 14,
"fontWeight" => "normal",
'style' => 'style-1', // 展示样式 style-1默认list列表style-3下拉选择
'options' => [
[
'id' => unique_random(12), // 唯一值,用于排序
'text' => '选项1'
],
[
'id' => unique_random(12), // 唯一值,用于排序
'text' => '选项2'
],
],
// 逻辑规则
'logicalRule' => [
[
'triggerOptionId' => '', // 触发单选项id
// 执行事件,存储组件对象
'execEvent' => [
[
'id' => '', // 组件唯一id例如5fu1fk9c6cs0
'componentName' => '', // 组件标识例如FormInput
'componentTitle' => '', // 组件名称,例如:单行文本
]
],
]
]
],
// 渲染值
'render' => function($data) {
if (!empty($data)) {
$data = json_decode($data, true);
if (!empty($data)) {
return $data[ 0 ][ 'text' ];
}
}
return '';
},
// 转换类型
'convert' => function($data) {
$data = json_decode($data, true);
return $data;
}
],
'FormCheckbox' => [
'title' => '多选项',
'icon' => 'iconfont icona-duoxuanxiangpc301',
'path' => 'edit-form-checkbox', // 编辑组件属性名称
'uses' => 0, // 最大添加数量
'sort' => 10006,
// 组件属性
'template' => [
"textColor" => "#303133", // 文字颜色
'pageStartBgColor' => '#FFFFFF', // 底部背景颜色(开始)
'pageEndBgColor' => '', // 底部背景颜色(结束)
'pageGradientAngle' => 'to bottom', // 渐变角度从上到下to bottom、从左到右to right
'componentBgUrl' => '', // 组件背景图片
'componentBgAlpha' => 2, // 组件背景图片的透明度0~10
"componentStartBgColor" => '', // 组件背景颜色(开始)
"componentEndBgColor" => '', // 组件背景颜色(结束)
"componentGradientAngle" => 'to bottom', // 渐变角度上下to bottom、左右to right
"topRounded" => 0, // 组件上圆角
"bottomRounded" => 0, // 组件下圆角
"elementBgColor" => '', // 元素背景颜色
"topElementRounded" => 0,// 元素上圆角
"bottomElementRounded" => 0, // 元素下圆角
"margin" => [
"top" => 8, // 上边距
"bottom" => 8, // 下边距
"both" => 10 // 左右边距
],
],
'value' => [
'field' => [
'name' => '多选项', // 字段名称
// 字段说明,可以修改颜色、大小,【表单的公共属性,考虑在 template中定义】
'remark' => [
'text' => '',
'color' => '#999999',
"fontSize" => 14,
],
'required' => false, // 是否必填 truefalse
'unique' => false, // 内容不可重复提交 truefalse
'autofill' => false, // 自动填充上次填写的内容 true开启false关闭
'privacyProtection' => false, // 隐私保护 true开启false关闭隐藏逻辑各组件自行处理
'cache' => true, // 开启本地数据缓存 true开启false关闭
'default' => [], // 默认值 存储数据类型不同,各组件自行处理
'value' => [], // 字段值 存储数据类型不同,各组件自行处理
],
"fontSize" => 14,
"fontWeight" => "normal",
'style' => 'style-1', // 展示样式 style-1默认style-2列表style-3下拉选择
'options' => [
[
'id' => unique_random(12), // 唯一值,用于排序
'text' => '选项1'
],
[
'id' => unique_random(12), // 唯一值,用于排序
'text' => '选项2'
],
],
// 可选数量
'selectableNum' => [
'min' => 0, // 最少选择 N 项
'max' => 0 // 最多选择 N 项
]
],
// 渲染值
'render' => function($data) {
if (!empty($data)) {
$data = json_decode($data, true);
$value = [];
foreach ($data as $k => $v) {
$value[] = $v[ 'text' ];
}
return implode(',', $value);
}
return '';
},
// 转换类型
'convert' => function($data) {
$data = json_decode($data, true);
return $data;
}
],
// 'FormWechatName' => [
// 'title' => '微信名',
// 'icon' => 'iconfont iconbiaotipc',
// 'path' => 'edit-form-wechat-name', // 编辑组件属性名称
// 'uses' => 1, // 最大添加数量
// 'sort' => 10007,
// // 组件属性
// 'template' => [
// "textColor" => "#303133", // 文字颜色
// 'pageStartBgColor' => '#FFFFFF', // 底部背景颜色(开始)
// 'pageEndBgColor' => '', // 底部背景颜色(结束)
// 'pageGradientAngle' => 'to bottom', // 渐变角度从上到下to bottom、从左到右to right
// 'componentBgUrl' => '', // 组件背景图片
// 'componentBgAlpha' => 2, // 组件背景图片的透明度0~10
// "componentStartBgColor" => '', // 组件背景颜色(开始)
// "componentEndBgColor" => '', // 组件背景颜色(结束)
// "componentGradientAngle" => 'to bottom', // 渐变角度上下to bottom、左右to right
// "topRounded" => 0, // 组件上圆角
// "bottomRounded" => 0, // 组件下圆角
// "elementBgColor" => '', // 元素背景颜色
// "topElementRounded" => 0,// 元素上圆角
// "bottomElementRounded" => 0, // 元素下圆角
// "margin" => [
// "top" => 10, // 上边距
// "bottom" => 10, // 下边距
// "both" => 10 // 左右边距
// ],
// ],
// 'value' => [
// // 表单的公共属性
// 'field' => [
// 'name' => '微信名', // 字段名称
// // 字段说明,支持修改颜色、大小
// 'remark' => [
// 'text' => '',
// 'color' => '#999999',
// "fontSize" => 14,
// ],
// 'required' => false, // 是否必填 truefalse
// 'unique' => false, // 内容不可重复提交 truefalse
// 'autofill' => false, // 自动填充上次填写的内容 true开启false关闭
// 'privacyProtection' => false, // 隐私保护 true开启false关闭隐藏逻辑各组件自行处理
// 'cache' => true, // 开启本地数据缓存 true开启false关闭
// 'default' => '', // 默认值 存储数据类型不同,各组件自行处理
// 'value' => '', // 字段值 存储数据类型不同,各组件自行处理
// ],
// 'placeholder' => '请输入', // 提示语
// "fontSize" => 14,
// "fontWeight" => "normal",
// ]
// ],
'FormMobile' => [
'title' => '手机号',
'icon' => 'iconfont icona-shoujipc30',
'path' => 'edit-form-mobile', // 编辑组件属性名称
'uses' => 1, // 最大添加数量
'sort' => 10008,
// 组件属性
'template' => [
"textColor" => "#303133", // 文字颜色
'pageStartBgColor' => '#FFFFFF', // 底部背景颜色(开始)
'pageEndBgColor' => '', // 底部背景颜色(结束)
'pageGradientAngle' => 'to bottom', // 渐变角度从上到下to bottom、从左到右to right
'componentBgUrl' => '', // 组件背景图片
'componentBgAlpha' => 2, // 组件背景图片的透明度0~10
"componentStartBgColor" => '', // 组件背景颜色(开始)
"componentEndBgColor" => '', // 组件背景颜色(结束)
"componentGradientAngle" => 'to bottom', // 渐变角度上下to bottom、左右to right
"topRounded" => 0, // 组件上圆角
"bottomRounded" => 0, // 组件下圆角
"elementBgColor" => '', // 元素背景颜色
"topElementRounded" => 0,// 元素上圆角
"bottomElementRounded" => 0, // 元素下圆角
"margin" => [
"top" => 8, // 上边距
"bottom" => 8, // 下边距
"both" => 10 // 左右边距
],
],
'value' => [
// 表单的公共属性
'field' => [
'name' => '手机号', // 字段名称
// 字段说明,支持修改颜色、大小
'remark' => [
'text' => '',
'color' => '#999999',
"fontSize" => 14,
],
'required' => false, // 是否必填 truefalse
'unique' => false, // 内容不可重复提交 truefalse
'autofill' => false, // 自动填充上次填写的内容 true开启false关闭
'privacyProtection' => false, // 隐私保护 true开启false关闭隐藏逻辑各组件自行处理
'cache' => true, // 开启本地数据缓存 true开启false关闭
'default' => '', // 默认值 存储数据类型不同,各组件自行处理
'value' => '', // 字段值 存储数据类型不同,各组件自行处理
],
'placeholder' => '请输入', // 提示语
"fontSize" => 14,
"fontWeight" => "normal",
]
],
'FormEmail' => [
'title' => '邮箱',
'icon' => 'iconfont icona-youxiangpc30',
'path' => 'edit-form-email', // 编辑组件属性名称
'uses' => 0, // 最大添加数量
'sort' => 10009,
// 组件属性
'template' => [
"textColor" => "#303133", // 文字颜色
'pageStartBgColor' => '#FFFFFF', // 底部背景颜色(开始)
'pageEndBgColor' => '', // 底部背景颜色(结束)
'pageGradientAngle' => 'to bottom', // 渐变角度从上到下to bottom、从左到右to right
'componentBgUrl' => '', // 组件背景图片
'componentBgAlpha' => 2, // 组件背景图片的透明度0~10
"componentStartBgColor" => '', // 组件背景颜色(开始)
"componentEndBgColor" => '', // 组件背景颜色(结束)
"componentGradientAngle" => 'to bottom', // 渐变角度上下to bottom、左右to right
"topRounded" => 0, // 组件上圆角
"bottomRounded" => 0, // 组件下圆角
"elementBgColor" => '', // 元素背景颜色
"topElementRounded" => 0,// 元素上圆角
"bottomElementRounded" => 0, // 元素下圆角
"margin" => [
"top" => 8, // 上边距
"bottom" => 8, // 下边距
"both" => 10 // 左右边距
],
],
'value' => [
// 表单的公共属性
'field' => [
'name' => '邮箱', // 字段名称
// 字段说明,支持修改颜色、大小
'remark' => [
'text' => '',
'color' => '#999999',
"fontSize" => 14,
],
'required' => false, // 是否必填 truefalse
'unique' => false, // 内容不可重复提交 truefalse
'autofill' => false, // 自动填充上次填写的内容 true开启false关闭
'privacyProtection' => false, // 隐私保护 true开启false关闭隐藏逻辑各组件自行处理
'cache' => true, // 开启本地数据缓存 true开启false关闭
'default' => '', // 默认值 存储数据类型不同,各组件自行处理
'value' => '', // 字段值 存储数据类型不同,各组件自行处理
],
'placeholder' => '请输入', // 提示语
"fontSize" => 14,
"fontWeight" => "normal",
]
],
'FormIdentity' => [
'title' => '身份证号',
'icon' => 'iconfont icona-shenfenzhengpc30',
'path' => 'edit-form-identity', // 编辑组件属性名称
'uses' => 1, // 最大添加数量
'sort' => 10010,
// 组件属性
'template' => [
"textColor" => "#303133", // 文字颜色
'pageStartBgColor' => '#FFFFFF', // 底部背景颜色(开始)
'pageEndBgColor' => '', // 底部背景颜色(结束)
'pageGradientAngle' => 'to bottom', // 渐变角度从上到下to bottom、从左到右to right
'componentBgUrl' => '', // 组件背景图片
'componentBgAlpha' => 2, // 组件背景图片的透明度0~10
"componentStartBgColor" => '', // 组件背景颜色(开始)
"componentEndBgColor" => '', // 组件背景颜色(结束)
"componentGradientAngle" => 'to bottom', // 渐变角度上下to bottom、左右to right
"topRounded" => 0, // 组件上圆角
"bottomRounded" => 0, // 组件下圆角
"elementBgColor" => '', // 元素背景颜色
"topElementRounded" => 0,// 元素上圆角
"bottomElementRounded" => 0, // 元素下圆角
"margin" => [
"top" => 8, // 上边距
"bottom" => 8, // 下边距
"both" => 10 // 左右边距
],
],
'value' => [
// 表单的公共属性
'field' => [
'name' => '身份证号', // 字段名称
// 字段说明,支持修改颜色、大小
'remark' => [
'text' => '',
'color' => '#999999',
"fontSize" => 14,
],
'required' => false, // 是否必填 truefalse
'unique' => false, // 内容不可重复提交 truefalse
'autofill' => false, // 自动填充上次填写的内容 true开启false关闭
'privacyProtection' => false, // 隐私保护 true开启false关闭隐藏逻辑各组件自行处理
'cache' => true, // 开启本地数据缓存 true开启false关闭
'default' => '', // 默认值 存储数据类型不同,各组件自行处理
'value' => '', // 字段值 存储数据类型不同,各组件自行处理
],
'placeholder' => '请输入', // 提示语
"fontSize" => 14,
"fontWeight" => "normal",
]
],
// 'FormTable' => [
// 'title' => '表格',
// 'icon' => 'iconfont iconbiaotipc',
// 'path' => 'edit-form-table', // 编辑组件属性名称
// 'uses' => 0, // 最大添加数量
// 'sort' => 10011,
// // 组件属性
// 'template' => [
// "textColor" => "#303133", // 文字颜色
// 'pageStartBgColor' => '#FFFFFF', // 底部背景颜色(开始)
// 'pageEndBgColor' => '', // 底部背景颜色(结束)
// 'pageGradientAngle' => 'to bottom', // 渐变角度从上到下to bottom、从左到右to right
// 'componentBgUrl' => '', // 组件背景图片
// 'componentBgAlpha' => 2, // 组件背景图片的透明度0~10
// "componentStartBgColor" => '', // 组件背景颜色(开始)
// "componentEndBgColor" => '', // 组件背景颜色(结束)
// "componentGradientAngle" => 'to bottom', // 渐变角度上下to bottom、左右to right
// "topRounded" => 0, // 组件上圆角
// "bottomRounded" => 0, // 组件下圆角
// "elementBgColor" => '', // 元素背景颜色
// "topElementRounded" => 0,// 元素上圆角
// "bottomElementRounded" => 0, // 元素下圆角
// "margin" => [
// "top" => 10, // 上边距
// "bottom" => 10, // 下边距
// "both" => 10 // 左右边距
// ],
// ],
// 'value' => [
// // 表单的公共属性
// 'field' => [
// 'name' => '表格', // 字段名称
// // 字段说明,支持修改颜色、大小
// 'remark' => [
// 'text' => '',
// 'color' => '#999999',
// "fontSize" => 14,
// ],
// 'required' => false, // 是否必填 truefalse
// 'unique' => false, // 内容不可重复提交 truefalse
// 'autofill' => false, // 自动填充上次填写的内容 true开启false关闭
// 'privacyProtection' => false, // 隐私保护 true开启false关闭隐藏逻辑各组件自行处理
// 'cache' => true, // 开启本地数据缓存 true开启false关闭
// 'detailComponent' => '/src/app/views/diy_form/components/detail-form-table.vue', // 用于详情展示
// 'default' => '', // 默认值 存储数据类型不同,各组件自行处理
// 'value' => '', // 字段值 存储数据类型不同,各组件自行处理
// ],
// "fontSize" => 14,
// "fontWeight" => "normal",
// // 列设置
// 'columnList' => [
// [
// 'id' => '', // 唯一值,用于排序
// 'type' => 'text', // 类型text文本number数字radio单选项checkbox多选项todo不同类型结构也不一样这个组件要在前端处理
// 'name' => '', // 字段名称
// 'value' => '选项1' // 字段值
// ],
// ],
// 'autoIncrementControl' => false, // 是否开启自增(展示按钮),添加多个
// // 填写限制(开启自增才展示)
// 'writeLimit' => [
// 'default' => 2, // 默认展示 N 项
// 'min' => 0, // 最少填写 N 项
// 'max' => 0 // 最多填写 N 项
// ],
// 'btnText' => '新增一组'
// ],
// // 渲染值
// 'render' => function($data) {
// // todo 处理业务数据
// return '';
// },
// // 转换类型
// 'convert' => function($data) {
// // todo 处理业务数据
// return $data;
// }
// ],
'FormDate' => [
'title' => '日期',
'icon' => 'iconfont icona-riqipc30',
'path' => 'edit-form-date', // 编辑组件属性名称
'uses' => 0, // 最大添加数量
'sort' => 10012,
// 组件属性
'template' => [
"textColor" => "#303133", // 文字颜色
'pageStartBgColor' => '#FFFFFF', // 底部背景颜色(开始)
'pageEndBgColor' => '', // 底部背景颜色(结束)
'pageGradientAngle' => 'to bottom', // 渐变角度从上到下to bottom、从左到右to right
'componentBgUrl' => '', // 组件背景图片
'componentBgAlpha' => 2, // 组件背景图片的透明度0~10
"componentStartBgColor" => '', // 组件背景颜色(开始)
"componentEndBgColor" => '', // 组件背景颜色(结束)
"componentGradientAngle" => 'to bottom', // 渐变角度上下to bottom、左右to right
"topRounded" => 0, // 组件上圆角
"bottomRounded" => 0, // 组件下圆角
"elementBgColor" => '', // 元素背景颜色
"topElementRounded" => 0,// 元素上圆角
"bottomElementRounded" => 0, // 元素下圆角
"margin" => [
"top" => 8, // 上边距
"bottom" => 8, // 下边距
"both" => 10 // 左右边距
],
],
'value' => [
// 表单的公共属性
'field' => [
'name' => '日期', // 字段名称
// 字段说明,支持修改颜色、大小
'remark' => [
'text' => '',
'color' => '#999999',
"fontSize" => 14,
],
'required' => false, // 是否必填 truefalse
'unique' => false, // 内容不可重复提交 truefalse
'autofill' => false, // 自动填充上次填写的内容 true开启false关闭
'privacyProtection' => false, // 隐私保护 true开启false关闭隐藏逻辑各组件自行处理
'cache' => true, // 开启本地数据缓存 true开启false关闭
'default' => [ // 默认值 存储数据类型不同,各组件自行处理
'date' => '', // 例2024-12-27
'timestamp' => 0, // 例1735290511
],
'value' => [ // 字段值 存储数据类型不同,各组件自行处理
'date' => '', // 例2024-12-27
'timestamp' => 0, // 例1735290511
]
],
'placeholder' => '请输入', // 提示语
"fontSize" => 14,
"fontWeight" => "normal",
'dateFormat' => 'YYYY年M月D日', // 日期格式YYYY年M月D日、YYYY-MM-DD、YYYY/MM/DD、YYYY-MM-DD HH:mm、HH:mm
'dateWay' => "current", // 默认值方式current当前日期diy指定日期 todo 在做的过程中可能会再调整字段名称
'defaultControl' => true,
],
// 渲染值
'render' => function($data) {
if (!empty($data)) {
$data = json_decode($data, true);
return "{$data['date']}";
}
return '';
},
// 转换类型
'convert' => function($data) {
$data = json_decode($data, true);
return $data;
}
],
'FormDateScope' => [
'title' => '日期范围',
'icon' => 'iconfont icona-riqifanweipc30',
'path' => 'edit-form-date-scope', // 编辑组件属性名称
'uses' => 0, // 最大添加数量
'sort' => 10013,
// 组件属性
'template' => [
"textColor" => "#303133", // 文字颜色
'pageStartBgColor' => '#FFFFFF', // 底部背景颜色(开始)
'pageEndBgColor' => '', // 底部背景颜色(结束)
'pageGradientAngle' => 'to bottom', // 渐变角度从上到下to bottom、从左到右to right
'componentBgUrl' => '', // 组件背景图片
'componentBgAlpha' => 2, // 组件背景图片的透明度0~10
"componentStartBgColor" => '', // 组件背景颜色(开始)
"componentEndBgColor" => '', // 组件背景颜色(结束)
"componentGradientAngle" => 'to bottom', // 渐变角度上下to bottom、左右to right
"topRounded" => 0, // 组件上圆角
"bottomRounded" => 0, // 组件下圆角
"elementBgColor" => '', // 元素背景颜色
"topElementRounded" => 0,// 元素上圆角
"bottomElementRounded" => 0, // 元素下圆角
"margin" => [
"top" => 8, // 上边距
"bottom" => 8, // 下边距
"both" => 10 // 左右边距
],
],
'value' => [
'field' => [
'name' => '日期范围', // 字段名称
// 字段说明,支持修改颜色、大小
'remark' => [
'text' => '',
'color' => '#999999',
"fontSize" => 14,
],
'required' => false, // 是否必填 truefalse
'unique' => false, // 内容不可重复提交 truefalse
'autofill' => false, // 自动填充上次填写的内容 true开启false关闭
'privacyProtection' => false, // 隐私保护 true开启false关闭隐藏逻辑各组件自行处理
'cache' => true, // 开启本地数据缓存 true开启false关闭
// 默认值 存储数据类型不同,各组件自行处理
'default' => [
// todo 在做的过程中可能会再调整字段名称
'start' => [
'date' => '', // 例2024-12-27
'timestamp' => 0, // 例1735290511
],
'end' => [
'date' => '', // 例2025-01-03
'timestamp' => 0, // 例1735895311
],
],
// 字段值 存储数据类型不同,各组件自行处理
'value' => [
'start' => [
'date' => '', // 例2024-12-27
'timestamp' => 0, // 例1735290511
],
'end' => [
'date' => '', // 例2025-01-03
'timestamp' => 0, // 例1735895311
],
],
],
"fontSize" => 14,
"fontWeight" => "normal",
'dateFormat' => 'YYYY年M月D日', // 日期格式YYYY年M月D日、YYYY-MM-DD、YYYY/MM/DD、YYYY-MM-DD HH:mm
'start' => [
'placeholder' => '请选择起始日期',
'dateWay' => "current", // 默认值方式current当前日期diy指定日期 todo 在做的过程中可能会再调整字段名称
'defaultControl' => true,
],
'end' => [
'placeholder' => '请选择结束日期',
'dateWay' => "current", // 默认值方式current当前日期diy指定日期 todo 在做的过程中可能会再调整字段名称
'defaultControl' => true,
],
],
// 渲染值
'render' => function($data) {
if (!empty($data)) {
$data = json_decode($data, true);
return "{$data['start']['date']}-{$data['end']['date']}";
}
return '';
},
// 转换类型
'convert' => function($data) {
$data = json_decode($data, true);
return $data;
}
],
'FormTime' => [
'title' => '时间',
'icon' => 'iconfont icona-shijianpc30-1',
'path' => 'edit-form-time', // 编辑组件属性名称
'uses' => 0, // 最大添加数量
'sort' => 10014,
// 组件属性
'template' => [
"textColor" => "#303133", // 文字颜色
'pageStartBgColor' => '#FFFFFF', // 底部背景颜色(开始)
'pageEndBgColor' => '', // 底部背景颜色(结束)
'pageGradientAngle' => 'to bottom', // 渐变角度从上到下to bottom、从左到右to right
'componentBgUrl' => '', // 组件背景图片
'componentBgAlpha' => 2, // 组件背景图片的透明度0~10
"componentStartBgColor" => '', // 组件背景颜色(开始)
"componentEndBgColor" => '', // 组件背景颜色(结束)
"componentGradientAngle" => 'to bottom', // 渐变角度上下to bottom、左右to right
"topRounded" => 0, // 组件上圆角
"bottomRounded" => 0, // 组件下圆角
"elementBgColor" => '', // 元素背景颜色
"topElementRounded" => 0,// 元素上圆角
"bottomElementRounded" => 0, // 元素下圆角
"margin" => [
"top" => 8, // 上边距
"bottom" => 8, // 下边距
"both" => 10 // 左右边距
],
],
'value' => [
// 表单的公共属性
'field' => [
'name' => '时间', // 字段名称
// 字段说明,支持修改颜色、大小
'remark' => [
'text' => '',
'color' => '#999999',
"fontSize" => 14,
],
'required' => false, // 是否必填 truefalse
'unique' => false, // 内容不可重复提交 truefalse
'autofill' => false, // 自动填充上次填写的内容 true开启false关闭
'privacyProtection' => false, // 隐私保护 true开启false关闭隐藏逻辑各组件自行处理
'cache' => true, // 开启本地数据缓存 true开启false关闭
'default' => '', // 默认值 存储数据类型不同,各组件自行处理
'value' => '', // 字段值 存储数据类型不同,各组件自行处理
],
'placeholder' => '请输入', // 提示语
"fontSize" => 14,
"fontWeight" => "normal",
'timeWay' => "current", // 默认值方式current当前时间diy指定时间 todo 在做的过程中可能会再调整字段名称
'defaultControl' => true,
]
],
'FormTimeScope' => [
'title' => '时间范围',
'icon' => 'iconfont icona-shijianfanweipc30',
'path' => 'edit-form-time-scope', // 编辑组件属性名称
'uses' => 0, // 最大添加数量
'sort' => 10015,
// 组件属性
'template' => [
"textColor" => "#303133", // 文字颜色
'pageStartBgColor' => '#FFFFFF', // 底部背景颜色(开始)
'pageEndBgColor' => '', // 底部背景颜色(结束)
'pageGradientAngle' => 'to bottom', // 渐变角度从上到下to bottom、从左到右to right
'componentBgUrl' => '', // 组件背景图片
'componentBgAlpha' => 2, // 组件背景图片的透明度0~10
"componentStartBgColor" => '', // 组件背景颜色(开始)
"componentEndBgColor" => '', // 组件背景颜色(结束)
"componentGradientAngle" => 'to bottom', // 渐变角度上下to bottom、左右to right
"topRounded" => 0, // 组件上圆角
"bottomRounded" => 0, // 组件下圆角
"elementBgColor" => '', // 元素背景颜色
"topElementRounded" => 0,// 元素上圆角
"bottomElementRounded" => 0, // 元素下圆角
"margin" => [
"top" => 8, // 上边距
"bottom" => 8, // 下边距
"both" => 10 // 左右边距
],
],
'value' => [
'field' => [
'name' => '时间范围', // 字段名称
// 字段说明,支持修改颜色、大小
'remark' => [
'text' => '',
'color' => '#999999',
"fontSize" => 14,
],
'required' => false, // 是否必填 truefalse
'unique' => false, // 内容不可重复提交 truefalse
'autofill' => false, // 自动填充上次填写的内容 true开启false关闭
'privacyProtection' => false, // 隐私保护 true开启false关闭隐藏逻辑各组件自行处理
'cache' => true, // 开启本地数据缓存 true开启false关闭
// 默认值 存储数据类型不同,各组件自行处理
'default' => [
'start' => [
'date' => '', // 例09:00
'timestamp' => 0, // 例32400
],
'end' => [
'date' => '', // 例18:30
'timestamp' => 0, // 66600
]
],
// 字段值 存储数据类型不同,各组件自行处理
'value' => [
'start' => [
'date' => '', // 例09:00
'timestamp' => 0, // 例32400
],
'end' => [
'date' => '', // 例18:30
'timestamp' => 0, // 66600
]
]
],
"fontSize" => 14,
"fontWeight" => "normal",
'start' => [
'placeholder' => '请选择起始时间',
'timeWay' => "current", // 默认值方式current当前时间diy指定时间 todo 在做的过程中可能会再调整字段名称
'defaultControl' => true,
],
'end' => [
'placeholder' => '请选择结束时间',
'timeWay' => "current", // 默认值方式current当前时间diy指定时间 todo 在做的过程中可能会再调整字段名称
'defaultControl' => true,
],
],
// 渲染值
'render' => function($data) {
if (!empty($data)) {
$data = json_decode($data, true);
return "{$data['start']['date']}-{$data['end']['date']}";
}
return '';
},
// 转换类型
'convert' => function($data) {
$data = json_decode($data, true);
return $data;
}
],
// 'FormLocation' => [
// 'title' => '定位',
// 'icon' => 'iconfont iconbiaotipc',
// 'path' => 'edit-form-location', // 编辑组件属性名称
// 'uses' => 1, // 最大添加数量
// 'sort' => 10016,
// // 组件属性
// 'template' => [
// "textColor" => "#303133", // 文字颜色
// 'pageStartBgColor' => '#FFFFFF', // 底部背景颜色(开始)
// 'pageEndBgColor' => '', // 底部背景颜色(结束)
// 'pageGradientAngle' => 'to bottom', // 渐变角度从上到下to bottom、从左到右to right
// 'componentBgUrl' => '', // 组件背景图片
// 'componentBgAlpha' => 2, // 组件背景图片的透明度0~10
// "componentStartBgColor" => '', // 组件背景颜色(开始)
// "componentEndBgColor" => '', // 组件背景颜色(结束)
// "componentGradientAngle" => 'to bottom', // 渐变角度上下to bottom、左右to right
// "topRounded" => 0, // 组件上圆角
// "bottomRounded" => 0, // 组件下圆角
// "elementBgColor" => '', // 元素背景颜色
// "topElementRounded" => 0,// 元素上圆角
// "bottomElementRounded" => 0, // 元素下圆角
// "margin" => [
// "top" => 10, // 上边距
// "bottom" => 10, // 下边距
// "both" => 10 // 左右边距
// ],
// ],
// 'value' => [
// // 表单的公共属性
// 'field' => [
// 'name' => '定位', // 字段名称
// // 字段说明,支持修改颜色、大小
// 'remark' => [
// 'text' => '',
// 'color' => '#999999',
// "fontSize" => 14,
// ],
// 'required' => false, // 是否必填 truefalse
// 'unique' => false, // 内容不可重复提交 truefalse
// 'autofill' => false, // 自动填充上次填写的内容 true开启false关闭
// 'privacyProtection' => false, // 隐私保护 true开启false关闭隐藏逻辑各组件自行处理
// 'cache' => true, // 开启本地数据缓存 true开启false关闭
// 'default' => '', // 默认值 存储数据类型不同,各组件自行处理
// 'value' => '', // 字段值 存储数据类型不同,各组件自行处理
// ],
// 'placeholder' => '请输入', // 提示语
// "fontSize" => 14,
// "fontWeight" => "normal",
// 'mode' => 'authorized_wechat_location', // 获取方式authorized_wechat_location授权微信定位open_choose_location手动选择定位
// ]
// ],
// 'FormAddress' => [
// 'title' => '地址',
// 'icon' => 'iconfont iconbiaotipc',
// 'path' => 'edit-form-address', // 编辑组件属性名称
// 'uses' => 0, // 最大添加数量
// 'sort' => 10017,
// // 组件属性
// 'template' => [
// "textColor" => "#303133", // 文字颜色
// 'pageStartBgColor' => '#FFFFFF', // 底部背景颜色(开始)
// 'pageEndBgColor' => '', // 底部背景颜色(结束)
// 'pageGradientAngle' => 'to bottom', // 渐变角度从上到下to bottom、从左到右to right
// 'componentBgUrl' => '', // 组件背景图片
// 'componentBgAlpha' => 2, // 组件背景图片的透明度0~10
// "componentStartBgColor" => '', // 组件背景颜色(开始)
// "componentEndBgColor" => '', // 组件背景颜色(结束)
// "componentGradientAngle" => 'to bottom', // 渐变角度上下to bottom、左右to right
// "topRounded" => 0, // 组件上圆角
// "bottomRounded" => 0, // 组件下圆角
// "elementBgColor" => '', // 元素背景颜色
// "topElementRounded" => 0,// 元素上圆角
// "bottomElementRounded" => 0, // 元素下圆角
// "margin" => [
// "top" => 10, // 上边距
// "bottom" => 10, // 下边距
// "both" => 10 // 左右边距
// ],
// ],
// 'value' => [
// // 表单的公共属性
// 'field' => [
// 'name' => '地址', // 字段名称
// // 字段说明,支持修改颜色、大小
// 'remark' => [
// 'text' => '',
// 'color' => '#999999',
// "fontSize" => 14,
// ],
// 'required' => false, // 是否必填 truefalse
// 'unique' => false, // 内容不可重复提交 truefalse
// 'autofill' => false, // 自动填充上次填写的内容 true开启false关闭
// 'privacyProtection' => false, // 隐私保护 true开启false关闭隐藏逻辑各组件自行处理
// 'default' => '', // 默认值 存储数据类型不同,各组件自行处理 todo 设置默认省/市/区/街道
// 'value' => '', // 字段值 存储数据类型不同,各组件自行处理
// ],
// 'placeholder' => '请输入', // 提示语
// "fontSize" => 14,
// "fontWeight" => "normal",
// 'addressFormat' => 'province/city/district/address', // 地址格式
// ]
// ],
'FormImage' => [
'title' => '图片',
'icon' => 'iconfont icona-tupianpc30',
'path' => 'edit-form-image', // 编辑组件属性名称
'uses' => 0, // 最大添加数量
'sort' => 10018,
// 组件属性
'template' => [
"textColor" => "#303133", // 文字颜色
'pageStartBgColor' => '#FFFFFF', // 底部背景颜色(开始)
'pageEndBgColor' => '', // 底部背景颜色(结束)
'pageGradientAngle' => 'to bottom', // 渐变角度从上到下to bottom、从左到右to right
'componentBgUrl' => '', // 组件背景图片
'componentBgAlpha' => 2, // 组件背景图片的透明度0~10
"componentStartBgColor" => '', // 组件背景颜色(开始)
"componentEndBgColor" => '', // 组件背景颜色(结束)
"componentGradientAngle" => 'to bottom', // 渐变角度上下to bottom、左右to right
"topRounded" => 0, // 组件上圆角
"bottomRounded" => 0, // 组件下圆角
"elementBgColor" => '', // 元素背景颜色
"topElementRounded" => 0,// 元素上圆角
"bottomElementRounded" => 0, // 元素下圆角
"margin" => [
"top" => 8, // 上边距
"bottom" => 8, // 下边距
"both" => 10 // 左右边距
],
],
'value' => [
// 表单的公共属性
'field' => [
'name' => '图片', // 字段名称
// 字段说明,支持修改颜色、大小
'remark' => [
'text' => '',
'color' => '#999999',
"fontSize" => 14,
],
'required' => false, // 是否必填 truefalse
'unique' => false, // 内容不可重复提交 truefalse
'autofill' => false, // 自动填充上次填写的内容 true开启false关闭
'privacyProtection' => false, // 隐私保护 true开启false关闭隐藏逻辑各组件自行处理
'cache' => true, // 开启本地数据缓存 true开启false关闭
'detailComponent' => '/src/app/views/diy_form/components/detail-form-image.vue', // 用于详情展示
'default' => '', // 默认值 存储数据类型不同,各组件自行处理
'value' => [], // 字段值 存储数据类型不同,各组件自行处理
],
"fontSize" => 14,
"fontWeight" => "normal",
/**
* 上传方式
* select_from_album从相册选择
* take_pictures拍照上传可用于防作假
* 请选择拍照方式快速拍照模式支持连拍支持闪光灯拍照、微信拍照模式每次只能拍摄1张
* is_album_upload 相册
* is_photo_upload 拍照
* is_chat_upload 微信
* open_continuous 开放的连续
*/
// 'uploadMode' => [ 'take_pictures', 'select_from_album' ], // 上传方式
'uploadMode' => [ 'take_pictures', 'select_from_album' ], // 上传方式
'limit' => 9, // 限制上传数量
],
// 渲染值
'render' => function($data) {
if (!empty($data)) {
$data = json_decode($data, true);
$value = [];
foreach ($data as $k => $v) {
$value[] = str_starts_with($v, 'http') ? $v : request()->domain() . '/' . $v;
}
return implode(',', $value);
}
return '';
},
// 转换类型
'convert' => function($data) {
$data = json_decode($data, true);
return $data;
}
],
// 'FormVideo' => [
// 'title' => '视频',
// 'icon' => 'iconfont iconbiaotipc',
// 'path' => 'edit-form-video', // 编辑组件属性名称
// 'uses' => 0, // 最大添加数量
// 'sort' => 10019,
// // 组件属性
// 'template' => [
// "textColor" => "#303133", // 文字颜色
// 'pageStartBgColor' => '#FFFFFF', // 底部背景颜色(开始)
// 'pageEndBgColor' => '', // 底部背景颜色(结束)
// 'pageGradientAngle' => 'to bottom', // 渐变角度从上到下to bottom、从左到右to right
// 'componentBgUrl' => '', // 组件背景图片
// 'componentBgAlpha' => 2, // 组件背景图片的透明度0~10
// "componentStartBgColor" => '', // 组件背景颜色(开始)
// "componentEndBgColor" => '', // 组件背景颜色(结束)
// "componentGradientAngle" => 'to bottom', // 渐变角度上下to bottom、左右to right
// "topRounded" => 0, // 组件上圆角
// "bottomRounded" => 0, // 组件下圆角
// "elementBgColor" => '', // 元素背景颜色
// "topElementRounded" => 0,// 元素上圆角
// "bottomElementRounded" => 0, // 元素下圆角
// "margin" => [
// "top" => 10, // 上边距
// "bottom" => 10, // 下边距
// "both" => 10 // 左右边距
// ],
// ],
// 'value' => [
// // 表单的公共属性
// 'field' => [
// 'name' => '视频', // 字段名称
// // 字段说明,支持修改颜色、大小
// 'remark' => [
// 'text' => '',
// 'color' => '#999999',
// "fontSize" => 14,
// ],
// 'required' => false, // 是否必填 truefalse
// 'unique' => false, // 内容不可重复提交 truefalse
// 'autofill' => false, // 自动填充上次填写的内容 true开启false关闭
// 'privacyProtection' => false, // 隐私保护 true开启false关闭隐藏逻辑各组件自行处理
// 'cache' => true, // 开启本地数据缓存 true开启false关闭
// 'detailComponent' => '/src/app/views/diy_form/components/detail-form-video.vue', // 用于详情展示
// 'default' => '', // 默认值 存储数据类型不同,各组件自行处理
// 'value' => '', // 字段值 存储数据类型不同,各组件自行处理
// ],
// "fontSize" => 14,
// "fontWeight" => "normal",
// /**
// * 上传方式
// * shoot_and_album拍摄和相册
// * shoot_only只允许拍摄
// */
// 'uploadMode' => 'shoot_and_album', // 上传方式
// ]
// ],
// 'FormFile' => [
// 'title' => '文件',
// 'icon' => 'iconfont iconbiaotipc',
// 'path' => 'edit-form-file', // 编辑组件属性名称
// 'uses' => 0, // 最大添加数量
// 'sort' => 10020,
// // 组件属性
// 'template' => [
// "textColor" => "#303133", // 文字颜色
// 'pageStartBgColor' => '#FFFFFF', // 底部背景颜色(开始)
// 'pageEndBgColor' => '', // 底部背景颜色(结束)
// 'pageGradientAngle' => 'to bottom', // 渐变角度从上到下to bottom、从左到右to right
// 'componentBgUrl' => '', // 组件背景图片
// 'componentBgAlpha' => 2, // 组件背景图片的透明度0~10
// "componentStartBgColor" => '', // 组件背景颜色(开始)
// "componentEndBgColor" => '', // 组件背景颜色(结束)
// "componentGradientAngle" => 'to bottom', // 渐变角度上下to bottom、左右to right
// "topRounded" => 0, // 组件上圆角
// "bottomRounded" => 0, // 组件下圆角
// "elementBgColor" => '', // 元素背景颜色
// "topElementRounded" => 0,// 元素上圆角
// "bottomElementRounded" => 0, // 元素下圆角
// "margin" => [
// "top" => 10, // 上边距
// "bottom" => 10, // 下边距
// "both" => 10 // 左右边距
// ],
// ],
// 'value' => [
// // 表单的公共属性
// 'field' => [
// 'name' => '文件', // 字段名称
// // 字段说明,支持修改颜色、大小
// 'remark' => [
// 'text' => '',
// 'color' => '#999999',
// "fontSize" => 14,
// ],
// 'required' => false, // 是否必填 truefalse
// 'unique' => false, // 内容不可重复提交 truefalse
// 'autofill' => false, // 自动填充上次填写的内容 true开启false关闭
// 'privacyProtection' => false, // 隐私保护 true开启false关闭隐藏逻辑各组件自行处理
// 'cache' => true, // 开启本地数据缓存 true开启false关闭
// 'detailComponent' => '/src/app/views/diy_form/components/detail-form-file.vue', // 用于详情展示
// 'default' => '', // 默认值 存储数据类型不同,各组件自行处理
// 'value' => '', // 字段值 存储数据类型不同,各组件自行处理
// ],
// "fontSize" => 14,
// "fontWeight" => "normal",
// 'limitUploadSize' => 30720, // 限制上传大小30MB
// ]
// ],
],
],
];
$list = ( new DictLoader("DiyFormComponent") )->load($system_components);
if (!empty($params[ 'component_name' ])) {
$component = [];
foreach ($list as $k => $v) {
$is_ok = false;
foreach ($v[ 'list' ] as $ck => $cv) {
if ($ck == $params[ 'component_name' ]) {
$is_ok = true;
$component = $cv;
break;
}
}
if ($is_ok) {
break;
}
}
return $component;
} else {
return $list;
}
}
}