Switch 开关
提供更加强大的开关组件,可配合表单组件c-form
使用。
平台
App | 小程序 | H5 |
---|---|---|
√ | √ | √ |
属性
属性名 | 类型 | 默认值 | 说明 | 平台 |
---|---|---|---|---|
modelValue | Number,String,Boolean | All | ||
name | String | null | 标识 | All |
disabled | Boolean | null | 禁用 | All |
value | String,Number,Boolean | true | 选中时的值 | All |
inactiveValue | String,Number,Boolean | false | 未选中时的值 | All |
asyncChange | Boolean | false | 是否开启异步变更 点击后出现Loading状态 需要监听change事件,操作完成后手动控制isChecked和isLoading的值 | All |
loadingProps | Object | {} | loading项配置 参考c-loading-indicator组件的props | All |
color | String | null | 未选中时的背景颜色 支持c-bg-开头的类 | All |
activeColor | String | null | 选中时颜色 支持c-bg-开头的类 | All |
text | String,Object | null | 未选中文字 为object时参考c-text的props | All |
activeText | String,Object | null | 选中文字 为object时参考c-text的props | All |
textSize | String,Number | null | 文本尺寸 | All |
size | String,Number | null | 尺寸 | All |
circleStyle | Object | {} | 自定义圆圈样式 | All |
btnStyle | Object | {} | 自定义样式 | All |
cClass | String,Array,Object | null | 组件类 | All |
cStyle | String,Array,Object | null | 组件样式 | All |
margin | String,Number,Array | null | 外边距 | All |
padding | String,Number,Array | null | 内边距 | All |
bgColor | String | null | 背景色,支持c-bg- 开头的背景色类 | All |
事件
事件名 | 说明 | 平台 |
---|---|---|
update:modelValue | All | |
change | {name,value,checked} | All |
方法
名称 | 说明 |
---|---|
isChecked | 是否选中 |
isLoading | 是否Loading |
示例
vue
<template>
<!-- 普通开关示例 -->
<c-switch v-model="isChecked" />
<!-- 异步开关示例 -->
<c-switch ref="mySwitch" asyncChange @change="onChange" />
</template>
<script setup>
const mySwitch = ref(null);
function onChange({value}) {
setTimeout(()=>{
// 操作成功后,设置开关状态
mySwitch.value.isChecked = !value;
},300)
// 如果遇到错误,关闭Loading状态
// mySwitch.value.isLoading = false;
}
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
开关SCSS变量
scss
// 开关大小
$switch-size:54rpx;
// 开关文本大小
$switch-fontSize:24rpx;
1
2
3
4
2
3
4