import { createApp } from 'vue' import App from './App.vue' import router from './router' import { createPinia } from 'pinia' import * as ElementPlusIconsVue from '@element-plus/icons-vue' import 'element-plus/dist/index.css' import 'element-plus/theme-chalk/dark/css-vars.css' import 'normalize.css/normalize.css' import '@/styles/theme.scss' import '@/styles/element.scss' import Breadcrumb from '@/components/Breadcrumb/index.vue' import Pagination from '@/components/Pagination/index.vue' // 注册 SVG 图标组件 import SvgIcon from '@/components/SvgIcon/index.vue' import 'virtual:svg-icons-register' // ⚠️ 路由守卫必须在 createApp 后、mount 前引入 import './permission' const app = createApp(App) const pinia = createPinia() // 注册所有 Element Plus 图标(Sidebar 的 icon 字段使用) for (const [key, component] of Object.entries(ElementPlusIconsVue)) { app.component(key, component) } // 注册 SVG 图标组件 app.component('SvgIcon', SvgIcon) // 注册面包屑组件 app.component('Breadcrumb', Breadcrumb) // 注册分页组件 app.component('Pagination', Pagination) app.use(pinia).use(router) app.mount('#app')