| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- import { createApp } from 'vue'
- import App from './App.vue'
- import ElementPlus from 'element-plus'
- import 'element-plus/dist/index.css'
- import * as ElementPlusIconsVue from '@element-plus/icons-vue'
- import zhCn from 'element-plus/es/locale/lang/zh-cn'
- import router from './router'
- import axios from 'axios'
- import tokenRefreshManager from './utils/tokenRefreshManager'
- import PermissionManager from './utils/permission'
- import permissionDirective from './directives/permission'
- const app = createApp(App)
- app.use(ElementPlus, {
- locale: zhCn
- })
- // 注册所有Element Plus图标
- for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
- app.component(key, component)
- }
- app.use(router)
- // 注册权限指令
- app.directive('permission', permissionDirective)
- // 配置axios
- app.config.globalProperties.$axios = axios
- // 设置token刷新回调,刷新时更新权限信息
- tokenRefreshManager.setOnTokenRefresh(async (newToken) => {
- console.log('Token已刷新,更新权限信息...');
- try {
- await PermissionManager.initializePermissions(`Bearer ${newToken}`);
- console.log('权限信息更新完成');
- } catch (error) {
- console.error('更新权限信息失败:', error);
- }
- });
- app.mount('#app')
|