import { createApp } from 'vue'; import website from './config/website'; import axios from './axios'; import router from './router/'; import store from './store'; import i18n from './lang/'; import { language, messages } from './lang/'; import * as ElementPlusIconsVue from '@element-plus/icons-vue'; import ElementPlus from 'element-plus'; import 'element-plus/dist/index.css'; import Avue from '@smallwei/avue'; import '@smallwei/avue/lib/index.css'; import crudCommon from '@/mixins/crud.js'; import { getScreen } from './utils/util'; import { getUrlParams, validatenull } from './utils/validate' import { setToken, setRefreshToken } from './utils/auth'; import { setStore } from './utils/store'; import './permission'; import error from './error'; import avueUeditor from 'avue-plugin-ueditor'; import basicBlock from 'components/basic-block/main.vue'; import basicContainer from 'components/basic-container/main.vue'; import thirdRegister from './components/third-register/main.vue'; import NfDesignBase from '@saber/nf-design-base-elp'; import flowDesign from './components/flow-design/main.vue'; import App from './App.vue'; import 'animate.css'; import dayjs from 'dayjs'; import 'styles/common.scss'; // 业务组件 import tenantPackage from './views/system/tenantpackage.vue'; // 获取url中是否存在token const urlParams = getUrlParams(window.location.href) if (urlParams?.token && !localStorage.getItem("isReload")) { localStorage.setItem("isReload", true) // 设置cookie和localStorage setStore('saber-token', urlParams.token) setToken(urlParams.token) setRefreshToken(urlParams.token) // 设置用户信息,把大屏用户信息保存到localStorage let obj = {}; obj = localStorage.getItem("bs_userInfo"); if (obj instanceof Object) { obj = obj.content } else { obj = JSON.parse(obj).content } setStore({ name: 'userInfo', content: obj }); location.reload() } else { if (localStorage.getItem("isReload")) { localStorage.removeItem("isReload") } } window.$crudCommon = crudCommon; window.axios = axios; const app = createApp(App); for (const [key, component] of Object.entries(ElementPlusIconsVue)) { app.component(key, component); } app.component('basicContainer', basicContainer); app.component('basicBlock', basicBlock); app.component('thirdRegister', thirdRegister); app.component('flowDesign', flowDesign); app.component('tenantPackage', tenantPackage); app.config.globalProperties.$dayjs = dayjs; app.config.globalProperties.website = website; app.config.globalProperties.getScreen = getScreen; app.use(error); app.use(i18n); app.use(store); app.use(router); app.use(ElementPlus, { locale: messages[language], }); app.use(Avue, { axios, calcHeight: 10, locale: messages[language], }); app.use(avueUeditor, { axios }) app.use(NfDesignBase); app.mount('#app');