UNPKG

element-plus-jsx

Version:

基于 Element Plus 扩展 JSX 语法的组件库

36 lines (33 loc) 1.19 kB
import { createVNode, mergeProps } from 'vue'; import { _get, _set } from '../../_utils/index.js'; import { defineFormFnPlugin, useFnOrRefProp } from '../../hooks.js'; import { ElRadioButton, ElRadio, ElRadioGroup } from 'element-plus'; var radioPlugins = defineFormFnPlugin(props => { return props.formFn.map(item => { if (!item.slots?.default && item.type === 'radio') { const RadioEl = item.radioProps?.button ? ElRadioButton : ElRadio; return { ...item, slots: { default: () => createVNode(ElRadioGroup, mergeProps({ "style": { width: '100%' }, "modelValue": _get(props.form.value, item.prop), "onUpdate:modelValue": val => { _set(props.form.value, item.prop, val); }, "disabled": useFnOrRefProp(item.disabled, props) }, item.radioProps), { default: () => [item.radioOptions?.map(option => { return createVNode(RadioEl, option, option.slots); })], ...item.radioProps?.slots }) } }; } return item; }); }); export { radioPlugins as default };