Skip to content

form builder组件联动

liaofei edited this page Jan 20, 2021 · 1 revision

PHP表单生成器,快速生成现代化的form表单。包含复选框、单选框、输入框、下拉选择框等元素以及省市区三级联动、时间选择、日期选择、颜色选择、树型、文件/图片上传等功能。具体参考form-builder文档

是一款很强大的表单生成器,但是目前还不支持不同组件之间的联动。系统框架内对radio组件为主做了其他组件的联动,比如开启小票打印开关为开启时,显示其他配置组件,开关为关闭时,隐藏其他配置组件。

开启

输入图片说明

关闭

输入图片说明

下面我们讲一下联动配置的地方,如果需要做其他组件之间的联动,可进行参考。

设置配置services: app/services/system/config/SystemConfigServices.php

class SystemConfigServices extends BaseServices
{


    /**
     * 子集控制规则
     * @var array[]
     */
    protected $relatedRule = []

    }

所有的控制规则都在relatedRule属性中进行配置,有新的配置规则在此属性中添加即可。我们还是以小票打印配置组件联动为例:

protected $relatedRule = [
  'pay_success_printing_switch' => [
            'son_type' => [
                'develop_id' => '',
                'printing_api_key' => '',
                'printing_client_id' => '',
                'terminal_number' => '',
            ],
            'show_value' => 1
        ],
]

1,pay_success_printing_switch:小票打印开关字段变量名 2,develop_id:开发者ID字段变量名 3,printing_api_key:应用密钥字段变量名 4,printing_client_id:应用ID字段变量名 5,terminal_number:终端号字段变量名

从上面可以看出pay_success_printing_switch为控制组件,是一个多维数组,son_type里面是需要被控制是否展示的组件,如果加入son_type中就会隐藏加入的组件。show_value是控制值,就是当redio的值为多少时隐藏其他组件。

如果子集son_type也有redio2 key要联动其他组件,给redio2再赋予son_type即可。例如:

 protected $relatedRule = [
     'brokerage_func_status' => [
            'son_type' => [
                'brokerage_bindind' => '',
                'store_brokerage_ratio' => '',
                'store_brokerage_two' => '',
                'user_extract_min_price' => '',
                'user_extract_bank' => '',
                'extract_time' => '',
                'spread_banner' => '',
                'store_brokerage_statu' => [
                    'son_type' => ['store_brokerage_price' => ''],
                    'show_value' => 3
                ],
            ],
            'show_value' => 1
        ],
]

注意我们此处只是redio和其他组件之间的控制关系。如果其他组件要产生控制关系,参考redio控制逻辑二开。

Clone this wiki locally