|
@@ -1,25 +1,71 @@
|
|
|
import router from './router'
|
|
|
-import { ElMessage } from 'element-plus'
|
|
|
+import {
|
|
|
+ ElMessage
|
|
|
+} from 'element-plus'
|
|
|
import NProgress from 'nprogress'
|
|
|
import 'nprogress/nprogress.css'
|
|
|
-import { getToken } from '@/utils/auth'
|
|
|
-import { isHttp } from '@/utils/validate'
|
|
|
-import { isRelogin } from '@/utils/request'
|
|
|
+import {
|
|
|
+ getToken
|
|
|
+} from '@/utils/auth'
|
|
|
+import {
|
|
|
+ isHttp
|
|
|
+} from '@/utils/validate'
|
|
|
+import {
|
|
|
+ isRelogin
|
|
|
+} from '@/utils/request'
|
|
|
import useUserStore from '@/store/modules/user'
|
|
|
import useSettingsStore from '@/store/modules/settings'
|
|
|
import usePermissionStore from '@/store/modules/permission'
|
|
|
+import axios from "axios";
|
|
|
|
|
|
-NProgress.configure({ showSpinner: false });
|
|
|
+
|
|
|
+NProgress.configure({
|
|
|
+ showSpinner: false
|
|
|
+});
|
|
|
|
|
|
const whiteList = ['/login', '/register'];
|
|
|
|
|
|
+// 版本判断
|
|
|
+const checkVersion = async () => {
|
|
|
+ const url = `/version.json?t=${Date.now()}`;
|
|
|
+ let res = null;
|
|
|
+ try {
|
|
|
+ res = await axios.get(url);
|
|
|
+ } catch (err) {
|
|
|
+ console.error("checkVersion error: ", err);
|
|
|
+ }
|
|
|
+ let version = null;
|
|
|
+ if (res) {
|
|
|
+ version = res.data.version;
|
|
|
+ }
|
|
|
+ const localVersion = localStorage.getItem("ehsd_web_version");
|
|
|
+ if (version && localVersion && JSON.parse(localVersion).version && JSON.parse(localVersion).version !== version) {
|
|
|
+ localStorage.setItem("ehsd_web_version", JSON.stringify({
|
|
|
+ version: version
|
|
|
+ }));
|
|
|
+ window.location.reload();
|
|
|
+ } else {
|
|
|
+ localStorage.setItem("ehsd_web_version", JSON.stringify({
|
|
|
+ version: version
|
|
|
+ }));
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+const isRefresh =
|
|
|
+ import.meta.env.VITE_REFRESH
|
|
|
router.beforeEach((to, from, next) => {
|
|
|
+ // 检测版本更新;
|
|
|
+ if (from.path !== "/" && isRefresh === "true") {
|
|
|
+ checkVersion();
|
|
|
+ }
|
|
|
NProgress.start()
|
|
|
if (getToken()) {
|
|
|
to.meta.title && useSettingsStore().setTitle(to.meta.title)
|
|
|
/* has token*/
|
|
|
if (to.path === '/login') {
|
|
|
- next({ path: '/' })
|
|
|
+ next({
|
|
|
+ path: '/'
|
|
|
+ })
|
|
|
NProgress.done()
|
|
|
} else {
|
|
|
if (useUserStore().roles.length === 0) {
|
|
@@ -34,12 +80,17 @@ router.beforeEach((to, from, next) => {
|
|
|
router.addRoute(route) // 动态添加可访问路由表
|
|
|
}
|
|
|
})
|
|
|
- next({ ...to, replace: true }) // hack方法 确保addRoutes已完成
|
|
|
+ next({
|
|
|
+ ...to,
|
|
|
+ replace: true
|
|
|
+ }) // hack方法 确保addRoutes已完成
|
|
|
})
|
|
|
}).catch(err => {
|
|
|
useUserStore().logOut().then(() => {
|
|
|
ElMessage.error(err)
|
|
|
- next({ path: '/' })
|
|
|
+ next({
|
|
|
+ path: '/'
|
|
|
+ })
|
|
|
})
|
|
|
})
|
|
|
} else {
|
|
@@ -60,4 +111,4 @@ router.beforeEach((to, from, next) => {
|
|
|
|
|
|
router.afterEach(() => {
|
|
|
NProgress.done()
|
|
|
-})
|
|
|
+})
|