element-plus-jsx
Version:
基于 Element Plus 扩展 JSX 语法的组件库
31 lines (28 loc) • 954 B
JavaScript
import { createVNode, mergeProps } from 'vue';
import { _get, _set } from '../../_utils/index.js';
import { defineFormFnPlugin, useFnOrRefProp } from '../../hooks.js';
import { ElUpload } from 'element-plus';
var uploadPlugins = defineFormFnPlugin(props => {
return props.formFn.map(item => {
if (!item.slots?.default && item.type === 'upload') {
return {
...item,
slots: {
default: () => createVNode(ElUpload, mergeProps({
"style": {
width: '100%'
},
"file-list": _get(props.form.value, item.prop),
"onUpdate:file-list": val => {
_set(props.form.value, item.prop, val);
},
"disabled": useFnOrRefProp(item.disabled, props),
"placeholder": item.placeholder
}, item.uploadProps), item.uploadProps?.slots)
}
};
}
return item;
});
});
export { uploadPlugins as default };