UNPKG

element-plus-jsx

Version:

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

36 lines (33 loc) 1.23 kB
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 };