perf(radio): 新增 radio 组件 change 事件

This commit is contained in:
就眠仪式
2021-10-13 13:10:37 +08:00
parent aac27992c0
commit 1cc6e529c0
4 changed files with 111 additions and 16 deletions

View File

@@ -7,20 +7,18 @@
'layui-form-radioed': modelValue == label,
'layui-radio-disbaled layui-disabled': disabled,
}"
@click="handleClick"
@click.stop="handleClick"
>
<i
v-if="modelValue != label"
class="layui-anim layui-icon layui-anim-scaleSpring"
:class="{ 'layui-form-radioed': modelValue != label }"
>&#xe63f;</i
>
<i
v-if="modelValue == label"
class="layui-anim layui-icon layui-anim-scaleSpring"
:class="{ 'layui-form-radioed': modelValue == label }"
>&#xe643;</i
>
<i
v-else
class="layui-anim layui-icon layui-anim-scaleSpring layui-form-radioed"
>&#xe63f;</i
>
<span><slot /></span>
</div>
</span>
@@ -29,19 +27,21 @@
<script setup name="LayRadio" lang="ts">
import { defineProps, defineEmits } from 'vue'
const props = defineProps<{
modelValue: string
disabled?: boolean
label?: string
name: string
}>()
const props =
defineProps<{
modelValue: string
disabled?: boolean
label?: string
name: string
}>()
const emit = defineEmits(['update:modelValue'])
const emit = defineEmits(['update:modelValue','change'])
const handleClick = function () {
if (props.disabled) {
return false
return
}
emit('change', props.label)
emit('update:modelValue', props.label)
}
</script>