element-plus-jsx
Version:
基于 Element Plus 扩展 JSX 语法的组件库
36 lines (33 loc) • 1.23 kB
JavaScript
import { createVNode, mergeProps } from 'vue';
import { _get, _set } from '../../_utils/index.js';
import { defineFormFnPlugin, useFnOrRefProp } from '../../hooks.js';
import { ElCheckboxButton, ElCheckbox, ElCheckboxGroup } from 'element-plus';
var checkboxPlugins = defineFormFnPlugin(props => {
return props.formFn.map(item => {
if (!item.slots?.default && item.type === 'checkbox') {
const CheckBoxEl = item.checkboxProps?.button ? ElCheckboxButton : ElCheckbox;
return {
...item,
slots: {
default: () => createVNode(ElCheckboxGroup, 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.checkboxProps), {
default: () => [item.checkboxOptions?.map(option => {
return createVNode(CheckBoxEl, option, option.slots);
})],
...item.checkboxProps?.slots
})
}
};
}
return item;
});
});
export { checkboxPlugins as default };