perf(radio): 新增 radio 组件 change 事件
This commit is contained in:
@@ -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 }"
|
||||
></i
|
||||
>
|
||||
<i
|
||||
v-if="modelValue == label"
|
||||
class="layui-anim layui-icon layui-anim-scaleSpring"
|
||||
:class="{ 'layui-form-radioed': modelValue == label }"
|
||||
></i
|
||||
>
|
||||
<i
|
||||
v-else
|
||||
class="layui-anim layui-icon layui-anim-scaleSpring layui-form-radioed"
|
||||
></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>
|
||||
|
||||
Reference in New Issue
Block a user