import { createApp, Directive } from 'vue'; import App from './App.vue'; import router from '@/router'; import { setupStore } from '@/store'; import print from 'vue3-print-nb' import ElementPlus from 'element-plus'; import * as ElementPlusIconsVue from '@element-plus/icons-vue' import Pagination from '@/components/Pagination/index.vue'; import '@/permission'; // 引入svg注册脚本 import 'virtual:svg-icons-register'; // 国际化 import i18n from '@/lang/index'; import '@/styles/index.scss'; import 'element-plus/theme-chalk/index.css'; import 'element-plus/theme-chalk/dark/css-vars.css'; const app = createApp(App); // 自定义指令 import * as directive from '@/directive'; Object.keys(directive).forEach(key => { app.directive(key, (directive as { [key: string]: Directive })[key]); }); for (const [key, component] of Object.entries(ElementPlusIconsVue)) { app.component(key, component) } // 全局方法 import { getDictionaries } from '@/api/dict'; app.config.globalProperties.$getDictionaries = getDictionaries; // 全局挂载 setupStore(app); app .component('Pagination', Pagination) .use(router) .use(print) .use(ElementPlus) .use(i18n) .mount('#app');