Skip to content

扩展右侧配置规则

通过 config 中的 baseRuleformRulecomponentRuleappendConfigData 参数,您可以扩展和自定义组件右侧的配置规则。这些参数允许您根据需求调整和增强设计器的配置选项,使其更符合特定的业务场景。

扩展表单配置

扩展表单配置

在表单配置的顶部添加一个备注输入框,帮助用户在表单创建时配置额外的信息或说明。输入的值会保存在 options.mark

vue
<template>
    <fc-designer ref="designer" :config="config"/>
</template>
<script setup>
    const config = {
        appendConfigData: ['formCreateMark'],
        formRule: {
            prepend: true,
            // append: true, // 添加到底部
            rule() {
                return [
                    {
                        type: 'input',
                        //配置名称, 修改 options.mark
                        field: 'formCreateMark',
                        title: '表单备注'
                    }
                ]
            }
        }
    }
</script>

表单配置名称映射规则

在组件配置规则(rule)方法中,如果 fieldformCreate 开头,系统将自动修改规则中对应的字段。这使得开发者可以通过统一的方式来定义和映射组件的配置。

字段说明
formCreateForm>labelWidth修改options.form.labelWidth字段
formCreateMark修改options.mark字段

扩展表单组件配置

扩展表单组件配置

在表单组件配置的顶部增加一个字段映射输入框。

vue
<template>
    <fc-designer ref="designer" :config="config"/>
</template>
<script setup>
    const config = {
        appendConfigData: ['formCreateMark'],
        //给所有表单组件增加
        baseRule: {
            prepend: true,
            // append: true, // 添加到底部
            rule() {
                return [
                    {
                        type: 'input',
                        //配置名称, 修改 rule.mark
                        field: 'formCreateMark',
                        title: '组件备注'
                    }
                ]
            }
        }
    }
</script>

扩展组件配置

扩展组件配置

给输入框组件配置项顶部增加一个是否必填开关

vue
<template>
    <fc-designer ref="designer" :config="config"/>
</template>
<script setup>
    const config = {
        appendConfigData: ['formCreateDbField', 'formCreateProps>mark'],
        componentRule: {
            //给所有组件增加
            default: {
                prepend: true,
                // append: true, // 添加到底部
                rule() {
                    return [
                        {
                            type: 'input',
                            field: 'formCreateDbField',
                            title: '数据字段'
                        }
                    ]
                }
            },
            //单独给拖拽规则为`input` 的组件添加
            input: {
                prepend: true,
                // append: true, // 添加到底部
                rule() {
                    return [
                        {
                            type: 'switch',
                            field: 'formCreateProps>mark',
                            title: ' 备注'
                        }
                    ]
                }
            }
        }
    }
</script>

组件配置名称映射规则

在组件配置规则(rule)方法中,如果 fieldformCreate 开头,系统将自动修改规则中对应的字段。这使得开发者可以通过统一的方式来定义和映射组件的配置。

字段说明
formCreateProps>labelWidth修改rule.props.labelWidth字段
formCreateMark修改rule.mark字段
formCreateChild修改rule.children[0]

数据结构

ts
//定义函数返回规则或者通过rule字段返回规则
type extendRule = ((arg: { t: t }) => Rule[]) | {
    //生成规则
    rule: (arg: { t: t }) => Rule[];
    //追加
    append?: boolean;
    //前置
    prepend?: boolean;
};
type Config = {
    //基础配置的渲染规则,可以覆盖默认规则.append为true时追加到默认规则后面
    baseRule?: extendRule;
    //表单的渲染规则,可以覆盖默认规则.append为true时追加到默认规则后面
    formRule?: extendRule;
    //组件配置的渲染规则,可以覆盖默认规则.append为true时追加到默认规则后面
    componentRule?: {
        //所有组件生效
        default: (rule: Rule, arg: { t: t }) => Rule[] | {
            rule: (rule: Rule, arg: { t: t }) => Rule[];
            append?: boolean;
            prepend?: boolean;
        };
        //id组件拖拽组件规则的id,rule为当前组件的生成规则
        [id: string]: (rule: Rule, arg: { t: t }) => Rule[] | {
            rule: (rule: Rule, arg: { t: t }) => Rule[],
            append?: boolean
            prepend?: boolean;
        }
    };
}