Switch 开关
需要表示开关状态/两种状态之间的切换时。
和 checkbox
的区别是,切换 switch
会直接触发状态改变,而 checkbox
一般用于状态标记,需要和提交操作配合。
基础用法
可使用 size
属性改变选择大小。 除了默认大小外,还有另外两个选项: large
, mini
。
html
<os-switch
v-model="status">
Text
</os-switch>
禁用状态
设置 disabled
属性即可禁用多选框。
开关文字
设置 true-lable
打开时显示的文字,设置false-label
为关闭时显示的文字。
html
<os-switch
v-model="status"
true-label="开"
false-label="关">
</os-switch>
WARNING
注:开关文字不宜过长,尽量控制在2个中文字符长度便好。
加载状态
设置loading
为加载状态,如设置为true,则会同时禁用控件。
阻止切换
设置beforeChange
属性,若返回 false 或者返回 Promise 且被 reject
,则停止切换。
html
<script setup>
import { ref } from 'vue'
import { osMessage } from '../../index'
const status = ref(true)
const loading = ref(false)
const handleBeforeChange = () => {
loading.value = true
return new Promise((resolve, reject) => {
setTimeout(() => {
let errorMsg = 'Switch failed.'
loading.value = false
osMessage.warning(errorMsg)
reject(new Error(errorMsg))
}, 3000)
})
}
</script>
<os-switch v-model="status" true-label="开" false-label="关"
:loading="loading"
:before-change="handleBeforeChange">
</os-switch>