Skip to content

Switch 开关

用来打开或关闭选项。

组件类型

基本用法

v-model 为绑定值,默认为 boolean 类型。

html
<wd-switch v-model="checked" />
ts
const checked = ref<boolean>(true)

修改值

通过 active-value 属性修改开关打开时的值,inactive-value 属性修改开关关闭时的值。

html
<wd-switch v-model="checked" active-value="沃特" inactive-value="商家后台" />

组件状态

加载状态

设置 loading 显示加载状态。

html
<wd-switch v-model="checked" loading active-text="上班" inactive-text="下班" />

禁用状态

设置 disabled 禁用开关。

html
<wd-switch v-model="checked" disabled />

组件样式

修改颜色

通过 active-color 属性修改开关打开时的颜色,inactive-color 属性修改开关关闭时的颜色。

html
<wd-switch v-model="checked" active-color="#13ce66" inactive-color="#f00" />

文字描述

通过 active-textinactive-text 设置开关内文案。

html
<wd-switch v-model="checked" active-text="上班" inactive-text="下班" />

自定义显示图标

通过 active-iconinactive-icon 自定义开关内部图标。

html
<wd-switch v-model="checked" active-icon="check" inactive-icon="close" />

自定义动作图标

通过 active-action-iconinactive-action-icon 自定义按钮图标。

html
<wd-switch v-model="checked" active-action-icon="check" inactive-action-icon="close" />

形状

通过 shape 设置形状,可选值为 roundsquare

html
<wd-switch v-model="checked" shape="round" />
<wd-switch v-model="checked" shape="square" />

自定义大小

设置 size 修改开关大小。

html
<wd-switch v-model="checked" size="24px" />

特殊样式

搭配表单使用

可以放入表单项中作为右侧操作控件。

html
<wd-form-item title="搭配表单使用" center>
  <wd-switch v-model="checked" size="20" />
</wd-form-item>

修改前钩子

设置 before-change 属性,修改前钩子,接收目标 value,返回 false 表示不修改,支持返回 Promise<boolean>

html
<wd-switch v-model="checked" :before-change="beforeChange" @change="handleChange" />
ts
import { useDialog } from '@/uni_modules/wot-ui'

const message = useDialog()

const beforeChange = (value) => {
  return message.confirm('是否切换开关').then(() => true).catch(() => false)
}

Attributes

参数说明类型默认值
model-value / v-model绑定值boolean | string | numberfalse
disabled是否禁用booleanfalse
inactive-action-icon非激活状态操作按钮图标string-
active-action-icon激活状态操作按钮图标string-
active-icon激活状态图标,设置后会忽略 active-textstring-
inactive-icon非激活状态图标,设置后会忽略 inactive-textstring-
active-text激活状态文本string''
inactive-text非激活状态文本string''
active-value激活值boolean | string | numbertrue
inactive-value非激活值boolean | string | numberfalse
active-color激活颜色string-
inactive-color非激活颜色string-
size开关大小string | number-
shape形状,可选值为 roundsquareSwitchShape'round'
loading是否显示加载中booleanfalse
loading-props加载配置项Partial<LoadingProps>-
before-change修改前钩子SwitchBeforeChange-
class-prefix图标类名前缀string'wd-icon'
custom-class根节点自定义类名string''
custom-style根节点自定义样式string''

Events

事件名称说明参数
change值修改事件{ value }

主题定制

CSS 变量

组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 ConfigProvider 全局配置

名称默认值描述
--wot-switch-color-action-bg$base-white操作块背景色
--wot-switch-color-action-icon$primary-6操作块图标颜色
--wot-switch-color-active-bg$primary-6激活态背景色
--wot-switch-color-inner-active-text$text-white内部文案激活态颜色
--wot-switch-color-inner-inactive-text$text-auxiliary内部文案非激活态颜色
--wot-switch-color-active-icon$icon-white内部图标激活态颜色
--wot-switch-color-inactive-bg$filled-strong非激活态背景色
--wot-switch-color-inactive-icon$icon-auxiliary非激活态图标颜色
--wot-switch-left-right-padding$padding-tight水平内边距
--wot-switch-top-bottom-padding$padding-ultra-tight垂直内边距
--wot-switch-size$n-26组件尺寸
--wot-switch-size-icon0.5em内部图标尺寸
--wot-switch-size-action-height1em操作块高度
--wot-switch-size-action-width1em操作块宽度
--wot-switch-size-action-icon0.5em操作块图标尺寸
--wot-switch-size-inner-heightcalc($switch-size-action-height + $switch-top-bottom-padding * 2)内部容器高度
--wot-switch-size-inner-min-widthcalc(1.8em + $switch-top-bottom-padding * 2)内部容器最小宽度
--wot-switch-inner-font-size$typography-body-size-main内部文案字号
--wot-switch-radius$radius-main方角模式圆角
--wot-switch-radius-full$radius-radius-full圆角模式圆角
--wot-switch-radius-action$radius-small方角模式操作块圆角
--wot-switch-radius-action-full$radius-radius-full圆角模式操作块圆角
--wot-switch-spacing$spacing-super-tight图标与文案间距
--wot-switch-transition-duration0.3s过渡时长
--wot-switch-disabled$opacity-disabled禁用态透明度

源代码

文档
组件

Released under the MIT License.

Released under the MIT License.