UNPKG

magiccube-vue3

Version:

vue3-js版组件库

49 lines (40 loc) 1.29 kB
import { computed, provide, ref, getCurrentInstance } from 'vue' import getFormValidMethod from '../../utils/form-valid' const RadioGroup = { name: 'McRadioGroup', props: { modelValue: [String, Number], }, emits: ['update:modelValue', 'change'], setup(props, { emit, slots }) { const isGroup = ref('true') const instance = getCurrentInstance() const { validator } = getFormValidMethod(instance) const model = computed({ get() { return props.modelValue }, set(value) { validator && validator('change', value) emit('update:modelValue', value) emit('change', value) } }) const handleChange = (value) => { model.value = value } provide('radioGroupChange', handleChange) provide('radioGroupModel', model) provide('isRadioGroup', isGroup) return () => ( <div class="mc-radio-group"> {slots.default ? slots.default() : ''} </div> ) } } RadioGroup.install = (app) => { app.component(RadioGroup.name, RadioGroup) } const McRadioGroup = RadioGroup export { McRadioGroup, McRadioGroup as default }