import 'dayjs/locale/zh-cn' import { createApp } from 'vue' import ElementPlus from 'element-plus' import * as ElementPlusIconsVue from '@element-plus/icons-vue' import zhCn from 'element-plus/dist/locale/zh-cn.mjs' import '@/config/global' import 'lin/plugin' import { filters } from 'lin/filter' import permissionDirective from 'lin/directive/authorize' import App from '@/app.vue' import store from '@/store' import router from '@/router' import LinNotify from '@/component/notify' import LIcon from '@/component/base/icon/lin-icon' import StickyTop from '@/component/base/sticky-top/sticky-top' import SourceCode from '@/component/base/source-code/source-code' import '@/assets/style/index.scss' import 'element-plus/dist/index.css' import '@/assets/style/realize/element-variable.scss' const app = createApp(App) // 注册element plus icons for (const [key, component] of Object.entries(ElementPlusIconsVue)) { app.component(key, component) } app.use(store) app.use(router) app.use(ElementPlus, { locale: zhCn, }) app.use(LinNotify, { reconnection: true, reconnectionAttempts: 5, reconnectionDelay: 3000, }) // base 组件注册 app.component('l-icon', LIcon) app.component('sticky-top', StickyTop) app.component('source-code', SourceCode) app.config.globalProperties.$filters = filters app.directive('permission', permissionDirective) app.mount('#app') // 设置 App 实例 window.App = app