plus-pro-components
Version:
Page level components developed based on Element Plus.
45 lines (42 loc) • 1.05 kB
JavaScript
import { ElImage, ElLink, ElTag, ElProgress, ElAvatar } from 'element-plus';
import '../../utils/index.mjs';
import { formatDate, formatMoney } from '../../utils/format.mjs';
const DisplayComponentMap = {
img: {
component: ElImage,
class: "plus-display-item__image",
hasSlots: true
},
link: {
component: ElLink,
class: "plus-display-item__link",
hasSlots: true
},
tag: {
component: ElTag,
hasSlots: true
},
progress: {
component: ElProgress,
hasSlots: true
},
avatar: {
component: ElAvatar,
hasSlots: true
},
"date-picker": {
component: "span",
format: formatDate
},
money: {
component: "span",
format: formatMoney
},
code: {
component: "span",
class: "plus-display-item__pre"
}
};
const hasDisplayComponent = (valueType) => Object.keys(DisplayComponentMap).includes(valueType);
const getDisplayComponent = (valueType) => Reflect.get(DisplayComponentMap, valueType) || {};
export { DisplayComponentMap, getDisplayComponent, hasDisplayComponent };