Skip to content

Switch 开关

规则

基础示例

js
const rule = {
    type:"switch",
    title:"是否上架",
    field:"is_show",
    value:"1",
    props: {
        checkedChildren:"1",
        unCheckedChildren:"0",
    },
}

Props 配置示例

带文字描述

js
const rule = {
    type:"switch",
    title:"商品状态",
    field:"status",
    value:true,
    props: {
        checkedChildren: "上架",
        unCheckedChildren: "下架",
        checkedValue: true,
        unCheckedValue: false,
    },
}

加载状态

js
const rule = {
    type:"switch",
    title:"自动保存",
    field:"autoSave",
    value:false,
    props: {
        loading: false,
        checkedChildren: "开启",
        unCheckedChildren: "关闭",
    },
}

不同尺寸

js
const rule = {
    type:"switch",
    title:"通知开关",
    field:"notification",
    value:true,
    props: {
        size: "small",
        checkedChildren: "开启",
        unCheckedChildren: "关闭",
    },
}

Events 事件示例

监听开关变化

js
const rule = {
    type:"switch",
    title:"是否上架",
    field:"is_show",
    value:"1",
    props: {
        checkedChildren:"1",
        unCheckedChildren:"0",
    },
    on: {
        change: (checked, event) => {
            console.log('开关状态改变:', checked, event);
        },
        click: (checked, event) => {
            console.log('点击开关:', checked, event);
        },
    },
}

联动更新其他字段

js
const rule = [
    {
        type:"switch",
        title:"启用折扣",
        field:"enableDiscount",
        value:false,
        props: {
            checkedChildren: "启用",
            unCheckedChildren: "禁用",
        },
        inject: true,
        on: {
            change: ($inject, checked) => {
                // 启用折扣时,自动设置默认折扣率
                if (checked) {
                    $inject.api.setValue('discount', 0.9);
                } else {
                    $inject.api.setValue('discount', 1);
                }
            },
        },
    },
    {
        type:"input-number",
        title:"折扣率",
        field:"discount",
        props: {
            min: 0,
            max: 1,
            step: 0.1,
            precision: 2,
            disabled: false,
        },
    },
]

完整配置项:Ant-design-vue_Switch

value :Number | String

Props

参数说明类型默认值
autofocus组件自动获取焦点booleanfalse
checkedChildren选中时的内容string|slot
checkedValue选中时的值boolean | string | numbertrue
disabled是否禁用booleanfalse
loading加载中的开关booleanfalse
size开关大小,可选值:default smallstringdefault
unCheckedChildren非选中时的内容string|slot
unCheckedValue非选中时的值boolean | string | numberfalse

Events

事件名称说明回调参数
change变化时回调函数Function(checked: boolean | string | number, event: Event)
click点击时回调函数Function(checked: boolean | string | number, event: Event)

FormCreate 是一个开源项目,基于 MIT 许可证发布,欢迎个人和企业用户免费使用