Skip to content
On this page

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>

Released under the MIT License.