plus-pro-components
Version:
Page level components developed based on Element Plus.
96 lines (93 loc) • 2.36 kB
JavaScript
import { ElAutocomplete, ElCascader, ElCheckboxGroup, ElCheckbox, ElColorPicker, ElDatePicker, ElInputNumber, ElRadioGroup, ElRadio, ElRate, ElSelect, ElOption, ElSlider, ElSwitch, ElTimePicker, ElTimeSelect, ElTransfer, ElInput, ElTreeSelect, ElSelectV2 } from 'element-plus';
import { PlusRadio } from '../../radio/index.mjs';
import { PlusDatePicker } from '../../date-picker/index.mjs';
import { PlusInputTag } from '../../input-tag/index.mjs';
const FieldComponentMap = {
// plus
"plus-radio": {
component: PlusRadio,
hasOptions: true
},
"plus-date-picker": {
component: PlusDatePicker
},
"plus-input-tag": {
component: PlusInputTag
},
// el
autocomplete: {
component: ElAutocomplete,
props: { placeholder: "plus.field.pleaseEnter" },
hasSelectEvent: true
},
cascader: {
component: ElCascader,
hasOptions: true
},
checkbox: {
component: ElCheckboxGroup,
children: ElCheckbox,
hasVersionCompatibility: true
},
"color-picker": {
component: ElColorPicker
},
"date-picker": {
component: ElDatePicker,
props: {
startPlaceholder: "plus.datepicker.startPlaceholder",
endPlaceholder: "plus.datepicker.endPlaceholder"
}
},
"input-number": {
component: ElInputNumber,
props: { placeholder: "plus.field.pleaseEnter" }
},
radio: {
component: ElRadioGroup,
children: ElRadio,
hasVersionCompatibility: true
},
rate: {
component: ElRate
},
select: {
component: ElSelect,
children: ElOption
},
slider: {
component: ElSlider
},
switch: {
component: ElSwitch
},
"time-picker": {
component: ElTimePicker
},
"time-select": {
component: ElTimeSelect
},
transfer: {
component: ElTransfer
},
input: {
component: ElInput,
props: { placeholder: "plus.field.pleaseEnter" }
},
textarea: {
component: ElInput,
props: { type: "textarea", placeholder: "plus.field.pleaseEnter" }
},
"tree-select": {
component: ElTreeSelect
},
"select-v2": {
component: ElSelectV2,
hasOptions: true
}
};
const hasFieldComponent = (valueType) => Object.keys(FieldComponentMap).includes(
valueType
);
const getFieldComponent = (valueType) => Reflect.get(FieldComponentMap, valueType) || {};
export { FieldComponentMap, getFieldComponent, hasFieldComponent };