仅桌面端保证样式
Switch 开关
表示两种相互对立状态的切换控件,支持自定义开 / 关时的取值与文案,以及异步加载态。在 eb-form 中 change 时机自动触发校验。
基础用法
v-model 绑定布尔值(与 active-value / inactive-value 比较判定状态);disabled 禁用切换,loading 呈加载中并同样阻止切换。静态回显用 :model-value 绑定即可。
基础用法之上,还有两种改变默认行为的方式:改变取值语义与异步受控,见下方示例。
文案与尺寸
active-text / inactive-text 自定义两侧文案(建议配合 width 加宽开关);inline-prompt 时文案内嵌同时呈现;size 切换 small / large 尺寸。
下线发布
关开
自定义取值
active-value / inactive-value 让开 / 关写入自定义值(字符串、数字等):绑定值与 active-value 相等即为开态,适合后端字段语义不是 boolean 的场景(如下例 yes / no 与 1 / 0)。
当前值:yes
异步切换
等待服务端确认再翻转的受控写法:用 :model-value 受控 + change 回调里先置 loading(阻止重复切换),请求成功后再把新值写入绑定值。loading 期间开关不可操作。
handleAsyncChange 定义见页面顶部 script:模拟 800ms 请求后提交新值,实际项目中替换为接口调用即可。
组合场景:控制配置项可用性
开关驱动其它控件的可用性是后台表单的高频组合:关闭后关联输入框联动禁用,直观表达该配置未启用。
所有人仅管理员
API
Switch Props
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| v-model | 绑定值(与 active-value 比较判定开态) | string | number | boolean | false |
| active-value | 打开时的值 | string | number | boolean | true |
| inactive-value | 关闭时的值 | string | number | boolean | false |
| active-text | 打开态文案(两侧或内嵌展示) | string | |
| inactive-text | 关闭态文案 | string | |
| inline-prompt | 文案内嵌显示(开 / 关文案同时呈现于两侧) | boolean | false |
| width | 开关宽度(px),放置文案时建议加宽 | string | number | — |
| size | 尺寸,支持 small / default / large | string | default |
| disabled | 禁用(同时响应表单禁用态) | boolean | false |
| loading | 加载中(禁止切换并显示旋转图标) | boolean | false |
| name | 原生 input name 属性 | string | — |
Switch Events
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| update:modelValue | 状态切换,返回切换后的值(active-value 或 inactive-value) | (value: string | number | boolean) => void | — |
| change | 状态切换,与 update:modelValue 同步触发 | (value: string | number | boolean) => void | — |
Switch Methods
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| focus | 使内部 input 聚焦 | () => void | — |
| blur | 使内部 input 失焦 | () => void | — |
| ref | 内部原生 input 元素引用 | HTMLInputElement | — |