import {createApp} from 'vue'
import App from './App.vue'
import router from './router';
import ElementPlus from 'element-plus';
import 'element-plus/dist/index.css';
import zhCn from 'element-plus/es/locale/lang/zh-cn';
// import axiosInstance from '@/utils/axios-config';
import axios from 'axios';
import '@/assets/global.css'
import { useGlobalWebSocket } from './utils/useGlobalWebSocket';


const app = createApp(App)
const globalWebSocket = useGlobalWebSocket(); 
app.provide('globalWebSocket',globalWebSocket);
// app.provide('axios', axiosInstance);
app.use(ElementPlus, { locale: zhCn });
app.use (router)

// 导航守卫，检查登录状态
router.beforeEach((to, from, next) => {
    const token = localStorage.getItem('alertToken'); // 检查 token 是否存在，作为是否登录的依据
    if (to.matched.some(record => record.meta.requiresAuth)) {
        // 该路由需要认证
        if (!token) {
            // 如果没有 token，重定向到登录页面
            next({
                path: '/login',
                query: { redirect: to.fullPath } // 将当前路径传递给登录页面，登录后可以重定向回来
            });
        } else {
            // 已登录，继续访问
            next();
        }
    } else {
        // 不需要认证，继续访问
        next();
    }
});

app.mount('#app')
