From 524c42f8c77bcd5d93484bcbee721b6cd9ebe296 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Wed, 02 Apr 2025 18:46:02 +0800
Subject: [PATCH] feat: 全局组件自动注册

---
 src/main.js |  134 +++++++++++++++++++++++---------------------
 1 files changed, 69 insertions(+), 65 deletions(-)

diff --git a/src/main.js b/src/main.js
index e4cf81b..e333796 100644
--- a/src/main.js
+++ b/src/main.js
@@ -1,83 +1,87 @@
-import { createApp } from 'vue';
-import website from './config/website';
-import axios from './axios';
-import router from './router/';
-import store from './store';
-import i18n from './lang/';
-import { language, messages } from './lang/';
-import * as ElementPlusIconsVue from '@element-plus/icons-vue';
-import ElementPlus from 'element-plus';
-import 'element-plus/dist/index.css';
-import Avue from '@smallwei/avue';
-import '@smallwei/avue/lib/index.css';
-import avueUeditor from 'avue-plugin-ueditor';
-import crudCommon from '@/mixins/crud.js';
-import { getScreen } from './utils/util';
-import './permission';
-import error from './error';
-import App from './App.vue';
-import 'animate.css';
-import dayjs from 'dayjs';
-import 'styles/common.scss';
+import { createApp } from 'vue'
+import website from './config/website'
+import axios from './axios'
+import router from './router/'
+import store from './store'
+import i18n from './lang/'
+import { language, messages } from './lang/'
+import * as ElementPlusIconsVue from '@element-plus/icons-vue'
+import ElementPlus from 'element-plus'
+import 'element-plus/dist/index.css'
+import Avue from '@smallwei/avue'
+import '@smallwei/avue/lib/index.css'
+import avueUeditor from 'avue-plugin-ueditor'
+import crudCommon from '@/mixins/crud.js'
+import { getScreen } from './utils/util'
+import './permission'
+import error from './error'
+import App from './App.vue'
+import 'animate.css'
+import dayjs from 'dayjs'
+import 'styles/common.scss'
 // 系统组件
-import debug from './debug';
-import VueClipboard from 'vue3-clipboard';
-import highlight from './components/highlight/main.vue';
-import codeEditor from './components/code-editor/main.vue';
-import basicBlock from './components/basic-block/main.vue';
-import basicContainer from './components/basic-container/main.vue';
-import SvgIcon from './components/SvgIcon.vue';
-import thirdRegister from './components/third-register/main.vue';
-import flowDesign from './components/flow-design/main.vue';
-import flowDesignStep from './components/flow-design-step/main.vue';
+import debug from './debug'
+import VueClipboard from 'vue3-clipboard'
+import highlight from './components/highlight/main.vue'
+import codeEditor from './components/code-editor/main.vue'
+import basicBlock from './components/basic-block/main.vue'
+import basicContainer from './components/basic-container/main.vue'
+import SvgIcon from './components/SvgIcon.vue'
+import thirdRegister from './components/third-register/main.vue'
+import flowDesign from './components/flow-design/main.vue'
+import flowDesignStep from './components/flow-design-step/main.vue'
 // 业务组件
 // import codeSetting from './views/tool/codesetting.vue';
 // import formSetting from './views/tool/formsetting.vue';
 // import tenantPackage from './views/system/tenantpackage.vue';
 // import tenantDatasource from './views/system/tenantdatasource.vue';
-import { onResize, pxToRem } from '@/utils/rem';
+// 全局组件
+import globalComponents from '@/components'
+
+import { onResize, pxToRem } from '@/utils/rem'
 onResize()
 import 'virtual:svg-icons-register'
-window.$crudCommon = crudCommon;
-debug();
-window.axios = axios;
-const app = createApp(App);
+window.$crudCommon = crudCommon
+debug()
+window.axios = axios
+const app = createApp(App)
 for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
-  app.component(key, component);
+    app.component(key, component)
 }
-app.component('basicContainer', basicContainer);
-app.component('basicBlock', basicBlock);
-app.component('highlight', highlight);
-app.component('codeEditor', codeEditor);
-app.component('thirdRegister', thirdRegister);
-app.component('flowDesign', flowDesign);
-app.component('flowDesignStep', flowDesignStep);
-app.component('SvgIcon', SvgIcon);
+app.component('basicContainer', basicContainer)
+app.component('basicBlock', basicBlock)
+app.component('highlight', highlight)
+app.component('codeEditor', codeEditor)
+app.component('thirdRegister', thirdRegister)
+app.component('flowDesign', flowDesign)
+app.component('flowDesignStep', flowDesignStep)
+app.component('SvgIcon', SvgIcon)
 // app.component('codeSetting', codeSetting);
 // app.component('formSetting', formSetting);
 // app.component('tenantPackage', tenantPackage);
 // app.component('tenantDatasource', tenantDatasource);
-app.config.globalProperties.$app = app;
-app.config.globalProperties.$dayjs = dayjs;
-app.config.globalProperties.website = website;
-app.config.globalProperties.getScreen = getScreen;
-app.config.globalProperties.pxToRem = pxToRem;
+app.config.globalProperties.$app = app
+app.config.globalProperties.$dayjs = dayjs
+app.config.globalProperties.website = website
+app.config.globalProperties.getScreen = getScreen
+app.config.globalProperties.pxToRem = pxToRem
 
-app.use(error);
-app.use(i18n);
-app.use(store);
-app.use(router);
+app.use(error)
+app.use(i18n)
+app.use(store)
+app.use(router)
 app.use(ElementPlus, {
-  locale: messages[language],
-});
+    locale: messages[language],
+})
 app.use(Avue, {
-  axios,
-  calcHeight: 10,
-  locale: messages[language],
-});
-app.use(avueUeditor, { axios });
+    axios,
+    calcHeight: 10,
+    locale: messages[language],
+})
+app.use(avueUeditor, { axios })
 app.use(VueClipboard, {
-  autoSetContainer: true,
-  appendToBody: true, // 这可以帮助解决一些更复杂的使用场景下的问题
-});
-app.mount('#app');
+    autoSetContainer: true,
+    appendToBody: true, // 这可以帮助解决一些更复杂的使用场景下的问题
+})
+app.use(globalComponents)
+app.mount('#app')

--
Gitblit v1.9.3