|
|
|
@ -8,31 +8,121 @@ import type { Component } from 'vue'; |
|
|
|
import type { BaseFormComponentType } from '@vben/common-ui'; |
|
|
|
import type { Recordable } from '@vben/types'; |
|
|
|
|
|
|
|
import { defineComponent, getCurrentInstance, h, ref } from 'vue'; |
|
|
|
import { |
|
|
|
defineAsyncComponent, |
|
|
|
defineComponent, |
|
|
|
getCurrentInstance, |
|
|
|
h, |
|
|
|
ref, |
|
|
|
} from 'vue'; |
|
|
|
|
|
|
|
import { ApiComponent, globalShareState, IconPicker } from '@vben/common-ui'; |
|
|
|
import { $t } from '@vben/locales'; |
|
|
|
|
|
|
|
import { |
|
|
|
ElButton, |
|
|
|
ElCheckbox, |
|
|
|
ElCheckboxButton, |
|
|
|
ElCheckboxGroup, |
|
|
|
ElDatePicker, |
|
|
|
ElDivider, |
|
|
|
ElInput, |
|
|
|
ElInputNumber, |
|
|
|
ElNotification, |
|
|
|
ElRadio, |
|
|
|
ElRadioButton, |
|
|
|
ElRadioGroup, |
|
|
|
ElSelectV2, |
|
|
|
ElSpace, |
|
|
|
ElSwitch, |
|
|
|
ElTimePicker, |
|
|
|
ElTreeSelect, |
|
|
|
ElUpload, |
|
|
|
} from 'element-plus'; |
|
|
|
import { ElNotification } from 'element-plus'; |
|
|
|
|
|
|
|
const ElButton = defineAsyncComponent(() => |
|
|
|
Promise.all([ |
|
|
|
import('element-plus/es/components/button/index'), |
|
|
|
import('element-plus/es/components/button/style/css'), |
|
|
|
]).then(([res]) => res.ElButton), |
|
|
|
); |
|
|
|
const ElCheckbox = defineAsyncComponent(() => |
|
|
|
Promise.all([ |
|
|
|
import('element-plus/es/components/checkbox/index'), |
|
|
|
import('element-plus/es/components/checkbox/style/css'), |
|
|
|
]).then(([res]) => res.ElCheckbox), |
|
|
|
); |
|
|
|
const ElCheckboxButton = defineAsyncComponent(() => |
|
|
|
Promise.all([ |
|
|
|
import('element-plus/es/components/checkbox/index'), |
|
|
|
import('element-plus/es/components/checkbox-button/style/css'), |
|
|
|
]).then(([res]) => res.ElCheckboxButton), |
|
|
|
); |
|
|
|
const ElCheckboxGroup = defineAsyncComponent(() => |
|
|
|
Promise.all([ |
|
|
|
import('element-plus/es/components/checkbox/index'), |
|
|
|
import('element-plus/es/components/checkbox-group/style/css'), |
|
|
|
]).then(([res]) => res.ElCheckboxGroup), |
|
|
|
); |
|
|
|
const ElDatePicker = defineAsyncComponent(() => |
|
|
|
Promise.all([ |
|
|
|
import('element-plus/es/components/date-picker/index'), |
|
|
|
import('element-plus/es/components/date-picker/style/css'), |
|
|
|
]).then(([res]) => res.ElDatePicker), |
|
|
|
); |
|
|
|
const ElDivider = defineAsyncComponent(() => |
|
|
|
Promise.all([ |
|
|
|
import('element-plus/es/components/divider/index'), |
|
|
|
import('element-plus/es/components/divider/style/css'), |
|
|
|
]).then(([res]) => res.ElDivider), |
|
|
|
); |
|
|
|
const ElInput = defineAsyncComponent(() => |
|
|
|
Promise.all([ |
|
|
|
import('element-plus/es/components/input/index'), |
|
|
|
import('element-plus/es/components/input/style/css'), |
|
|
|
]).then(([res]) => res.ElInput), |
|
|
|
); |
|
|
|
const ElInputNumber = defineAsyncComponent(() => |
|
|
|
Promise.all([ |
|
|
|
import('element-plus/es/components/input-number/index'), |
|
|
|
import('element-plus/es/components/input-number/style/css'), |
|
|
|
]).then(([res]) => res.ElInputNumber), |
|
|
|
); |
|
|
|
const ElRadio = defineAsyncComponent(() => |
|
|
|
Promise.all([ |
|
|
|
import('element-plus/es/components/radio/index'), |
|
|
|
import('element-plus/es/components/radio/style/css'), |
|
|
|
]).then(([res]) => res.ElRadio), |
|
|
|
); |
|
|
|
const ElRadioButton = defineAsyncComponent(() => |
|
|
|
Promise.all([ |
|
|
|
import('element-plus/es/components/radio/index'), |
|
|
|
import('element-plus/es/components/radio-button/style/css'), |
|
|
|
]).then(([res]) => res.ElRadioButton), |
|
|
|
); |
|
|
|
const ElRadioGroup = defineAsyncComponent(() => |
|
|
|
Promise.all([ |
|
|
|
import('element-plus/es/components/radio/index'), |
|
|
|
import('element-plus/es/components/radio-group/style/css'), |
|
|
|
]).then(([res]) => res.ElRadioGroup), |
|
|
|
); |
|
|
|
const ElSelectV2 = defineAsyncComponent(() => |
|
|
|
Promise.all([ |
|
|
|
import('element-plus/es/components/select-v2/index'), |
|
|
|
import('element-plus/es/components/select-v2/style/css'), |
|
|
|
]).then(([res]) => res.ElSelectV2), |
|
|
|
); |
|
|
|
const ElSpace = defineAsyncComponent(() => |
|
|
|
Promise.all([ |
|
|
|
import('element-plus/es/components/space/index'), |
|
|
|
import('element-plus/es/components/space/style/css'), |
|
|
|
]).then(([res]) => res.ElSpace), |
|
|
|
); |
|
|
|
const ElSwitch = defineAsyncComponent(() => |
|
|
|
Promise.all([ |
|
|
|
import('element-plus/es/components/switch/index'), |
|
|
|
import('element-plus/es/components/switch/style/css'), |
|
|
|
]).then(([res]) => res.ElSwitch), |
|
|
|
); |
|
|
|
const ElTimePicker = defineAsyncComponent(() => |
|
|
|
Promise.all([ |
|
|
|
import('element-plus/es/components/time-picker/index'), |
|
|
|
import('element-plus/es/components/time-picker/style/css'), |
|
|
|
]).then(([res]) => res.ElTimePicker), |
|
|
|
); |
|
|
|
const ElTreeSelect = defineAsyncComponent(() => |
|
|
|
Promise.all([ |
|
|
|
import('element-plus/es/components/tree-select/index'), |
|
|
|
import('element-plus/es/components/tree-select/style/css'), |
|
|
|
]).then(([res]) => res.ElTreeSelect), |
|
|
|
); |
|
|
|
const ElUpload = defineAsyncComponent(() => |
|
|
|
Promise.all([ |
|
|
|
import('element-plus/es/components/upload/index'), |
|
|
|
import('element-plus/es/components/upload/style/css'), |
|
|
|
]).then(([res]) => res.ElUpload), |
|
|
|
); |
|
|
|
|
|
|
|
const withDefaultPlaceholder = <T extends Component>( |
|
|
|
component: T, |
|
|
|
|