From f338e97208ad65f29d384ff0956b119390719909 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=95=E9=87=91=E6=B3=BD?= <1098696801@qq.com> Date: Fri, 5 Aug 2022 20:14:35 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dswitch=20=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/magic/form/mb-switch.vue | 35 +++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/magic-boot-ui/src/components/magic/form/mb-switch.vue b/magic-boot-ui/src/components/magic/form/mb-switch.vue index df1a7ab..8d28b10 100644 --- a/magic-boot-ui/src/components/magic/form/mb-switch.vue +++ b/magic-boot-ui/src/components/magic/form/mb-switch.vue @@ -1,8 +1,8 @@ @@ -17,10 +17,39 @@ const props = defineProps({ inactiveValue: Boolean | String | Number, props: Object }) +const _activeValue = ref(true) +const _inactiveValue = ref(false) + +function setActive(value){ + if(typeof(value) == 'boolean'){ + if(props.activeValue == undefined && props.inactiveValue == undefined){ + _activeValue.value = true + _inactiveValue.value = false + }else{ + _activeValue.value = props.activeValue + _inactiveValue.value = props.inactiveValue + } + }else{ + if(value || value == 0){ + if(props.activeValue == undefined && props.inactiveValue == undefined){ + _activeValue.value = '1' + _inactiveValue.value = '0' + }else{ + _activeValue.value = props.activeValue + '' + _inactiveValue.value = props.inactiveValue + '' + } + }else{ + _activeValue.value = true + _inactiveValue.value = false + } + } +} dynamicSetValue(props.modelValue) +setActive(props.modelValue) watch(() => props.modelValue, (value) => { dynamicSetValue(value) + setActive(value) }) function dynamicSetValue(value){ if(typeof(value) == 'boolean'){ @@ -28,6 +57,8 @@ function dynamicSetValue(value){ }else{ if(value || value == 0){ selectValue.value = value + '' + }else{ + selectValue.value = false } } }