52 lines
1.5 KiB
TypeScript
52 lines
1.5 KiB
TypeScript
|
|
import Animation from '@/components/Animation/index.vue';
|
|||
|
|
import GLink from '@/components/GLink/index.vue';
|
|||
|
|
import OptionLink from '@/components/OptionLink/index.vue';
|
|||
|
|
import Number from '@/components/Number/index.vue';
|
|||
|
|
import Panel from '@/components/Panel/index.vue';
|
|||
|
|
import Time from '@/components/Time/index.vue';
|
|||
|
|
import Copy from '@/components/Copy/index.vue';
|
|||
|
|
import EmptyData from '@/components/EmptyData/index.vue';
|
|||
|
|
import DataPanel from '@/components/DataPanel/index.vue';
|
|||
|
|
import DataPanelV2 from '@/components/v2/DataPanel/index.vue';
|
|||
|
|
import RichLabel from '@/components/RichLabel/index.vue';
|
|||
|
|
import Card from '@/components/Card/index.vue';
|
|||
|
|
import Icon from '@/components/Icon/index.vue';
|
|||
|
|
import UserAvatar from '@/components/UserAvatar/index.vue';
|
|||
|
|
import GText from '@/components/GText/index.vue';
|
|||
|
|
import GAvatar from '@/components/GAvatar/index.vue';
|
|||
|
|
import GrayNumber from '@/components/v2/GrayNum/index.vue'
|
|||
|
|
|
|||
|
|
const GLOBAL_COMPONENT_MAP = {
|
|||
|
|
GLink,
|
|||
|
|
OptionLink,
|
|||
|
|
Number,
|
|||
|
|
Panel,
|
|||
|
|
Time,
|
|||
|
|
Copy,
|
|||
|
|
EmptyData,
|
|||
|
|
DataPanel,
|
|||
|
|
RichLabel,
|
|||
|
|
Card,
|
|||
|
|
Icon,
|
|||
|
|
UserAvatar,
|
|||
|
|
GText,
|
|||
|
|
GAvatar,
|
|||
|
|
DataPanelV2,
|
|||
|
|
GrayNumber
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
const GlobalComponentsPlugin = {
|
|||
|
|
install(app) {
|
|||
|
|
Object.entries(GLOBAL_COMPONENT_MAP).forEach(([name, component]) => {
|
|||
|
|
app.component(name, component);
|
|||
|
|
|
|||
|
|
// 使用G开头重新声明组件(过渡阶段,后面统一使用G开头)
|
|||
|
|
if (!name.startsWith('G')) {
|
|||
|
|
app.component(`G${name}`, component);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
export default GlobalComponentsPlugin;
|