提交 a62e599a authored 作者: 王鹏飞's avatar 王鹏飞

增加浏览器判断

上级 9696d490
...@@ -122,11 +122,12 @@ export default class API { ...@@ -122,11 +122,12 @@ export default class API {
}) })
}) })
} else if (status === 401) { } else if (status === 401) {
this.setConfirm('提示', '关闭', data.message).then(() => {}) _vIn.$router.push({ path: '/403' })
} }
} }
err = new Error(data.message || JSON.stringify(data)) err = new Error(data.message || JSON.stringify(data))
err.code = data.code err.code = data.code
err.status = data.status
} else { } else {
err = new Error('msg:' + res.message + 'stack:' + res.stack) err = new Error('msg:' + res.message + 'stack:' + res.stack)
err.code = 500 err.code = 500
......
...@@ -5,18 +5,32 @@ export default class Before { ...@@ -5,18 +5,32 @@ export default class Before {
const UA = navigator.userAgent const UA = navigator.userAgent
this.opt = opt || {} this.opt = opt || {}
// 免登录列表 // 免登录列表
this.whiteList = ['login-normal', 'login-code', 'login-forget', 'studentHelp', 'teacherHelp'] this.whiteList = ['login-normal', 'login-code', 'login-forget', 'studentHelp', 'teacherHelp', '403', 'browser']
this.isMobile = /iphone/i.test(UA) || (/android/i.test(UA) && /mobile/i.test(UA)) this.isMobile = /iphone/i.test(UA) || (/android/i.test(UA) && /mobile/i.test(UA))
this.isIe = window.ActiveXObject || 'ActiveXObject' in window
this.isChrome = !!window.chrome && (!!window.chrome.webstore || !!window.chrome.runtime)
this.chromeVersion = 0
if (this.isChrome) {
this.chromeVersion = parseFloat(UA.match(/Chrome\/([\d.]+)/)[1])
}
this.notSupport = !this.isMobile && (this.isIe || (this.isChrome && this.chromeVersion < 70))
// https://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser
} }
async update(to, from, next) { async update(to, from, next) {
// 浏览器不支持
if (this.notSupport && to.name !== 'browser') {
next({ path: '/browser' })
return
}
// 免登录页面 // 免登录页面
if (this.whiteList.includes(to.name)) { if (this.whiteList.includes(to.name)) {
next() next()
return return
} }
// 检测登录状态 // 检测登录状态
const isLogin = await this.isLogin() const isLogin = await this.isLogin(next)
if (!isLogin) { if (!isLogin) {
// next({ // next({
// path: '/login/index', // path: '/login/index',
...@@ -34,7 +48,7 @@ export default class Before { ...@@ -34,7 +48,7 @@ export default class Before {
} }
/* 获取用户信息 */ /* 获取用户信息 */
isLogin() { isLogin(next) {
if (window.G.UserInfo) return true if (window.G.UserInfo) return true
return cAction.Other.getInfo() return cAction.Other.getInfo()
.then(res => { .then(res => {
...@@ -45,7 +59,11 @@ export default class Before { ...@@ -45,7 +59,11 @@ export default class Before {
return false return false
} }
}) })
.catch(() => { .catch(res => {
if (res.status === 401) {
next({ path: '/403' })
return true
}
return false return false
}) })
} }
......
<!DOCTYPE html> <!DOCTYPE html>
<html lang="zh-cn"> <html lang="zh-cn">
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="renderer" content="webkit" />
<meta content="origin" name="referrer"> <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" />
<title>紫荆教育MBA学习系统</title> <meta content="origin" name="referrer" />
<meta name="viewport" id="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, shrink-to-fit=no"> <title>紫荆教育MBA学习系统</title>
<!-- 直接引入aliyun播放插件 CSS --> <meta
<link rel="stylesheet" href="https://g.alicdn.com/de/prismplayer/2.9.1/skins/default/aliplayer-min.css" /> name="viewport"
</head> id="viewport"
<body> content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, shrink-to-fit=no"
<div id="app"></div> />
<!-- es5 兼容 新方法 --> <!-- 直接引入aliyun播放插件 CSS -->
<!-- <script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/es5-shim.min.js"></script> <link rel="stylesheet" href="https://g.alicdn.com/de/prismplayer/2.9.1/skins/default/aliplayer-min.css" />
</head>
<body>
<div id="app"></div>
<!-- es5 兼容 新方法 -->
<!-- <script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/es5-shim.min.js"></script>
<script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/es5-sham.min.js"></script> --> <script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/es5-sham.min.js"></script> -->
<!-- 三方插件引入 --> <!-- 三方插件引入 -->
<!-- <script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/ckeditor/ckeditor.js"></script> <!-- <script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/ckeditor/ckeditor.js"></script>
<script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/videoJs/videoJs.js"></script> --> <script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/videoJs/videoJs.js"></script> -->
<!-- common --> <!-- common -->
<script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/common/base64.js"></script> <script
<script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/common/md5.js"></script> type="text/javascript"
<script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/common/jQuery-2.1.4.min.js"></script> src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/common/base64.js"
<script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/common/runtime.js"></script> ></script>
<!-- 直接引入aliyun播放插件 JS --> <script
<script type="text/javascript" charset="utf-8" src="https://g.alicdn.com/de/prismplayer/2.9.1/aliplayer-min.js"></script> type="text/javascript"
<script type="text/javascript" charset="utf-8" src="https://player.alicdn.com/aliplayer/presentation/js/aliplayercomponents.min.js"></script> src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/common/md5.js"
<!-- 解决iframe嵌套,CC视频在safri中打开免登陆兼容问题 --> ></script>
<script src="//view.csslcloud.net/js/_fix_.js"></script> <script
<script src="//view.csslcloud.net/js/jquery-1.9.0.min.js" type="text/javascript"></script> type="text/javascript"
<script src="//view.csslcloud.net/js/sdk/3.1.0/liveSDK.js" type="text/javascript"></script> src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/common/jQuery-2.1.4.min.js"
></script>
<script
type="text/javascript"
src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/common/runtime.js"
></script>
<!-- 直接引入aliyun播放插件 JS -->
<script
type="text/javascript"
charset="utf-8"
src="https://g.alicdn.com/de/prismplayer/2.9.1/aliplayer-min.js"
></script>
<script
type="text/javascript"
charset="utf-8"
src="https://player.alicdn.com/aliplayer/presentation/js/aliplayercomponents.min.js"
></script>
<!-- 解决iframe嵌套,CC视频在safri中打开免登陆兼容问题 -->
<script src="//view.csslcloud.net/js/_fix_.js"></script>
<script src="//view.csslcloud.net/js/jquery-1.9.0.min.js" type="text/javascript"></script>
<script src="//view.csslcloud.net/js/sdk/3.1.0/liveSDK.js" type="text/javascript"></script>
<!-- <script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/notify/notification.js"></script> --> <!-- <script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/notify/notification.js"></script> -->
<!-- <script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/errorCollection/collection.js"></script> --> <!-- <script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/errorCollection/collection.js"></script> -->
<!--[if lt IE 9]> <!--[if lt IE 9]>
<script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/console-polyfill.js"></script> <script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/console-polyfill.js"></script>
<script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/html5shiv.min.js"></script> <script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/html5shiv.min.js"></script>
<script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/respond.min.js"></script> <script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/respond.min.js"></script>
<![endif]--> <![endif]-->
<!-- Matomo --> <!-- Matomo -->
<script type="text/javascript"> <script type="text/javascript">
var _paq = window._paq = window._paq || []; var _paq = (window._paq = window._paq || [])
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */ /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(["setCookieDomain", "*.e-learning.ezijing.com"]); _paq.push(['setCookieDomain', '*.e-learning.ezijing.com'])
_paq.push(['trackPageView']); _paq.push(['trackPageView'])
_paq.push(['enableLinkTracking']); _paq.push(['enableLinkTracking'])
(function() { ;(function() {
var u="https://matomo.ezijing.com/"; var u = 'https://matomo.ezijing.com/'
_paq.push(['setTrackerUrl', u+'matomo.php']); _paq.push(['setTrackerUrl', u + 'matomo.php'])
_paq.push(['setSiteId', '3']); _paq.push(['setSiteId', '3'])
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; var d = document,
g.type='text/javascript'; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); g = d.createElement('script'),
})(); s = d.getElementsByTagName('script')[0]
</script> g.type = 'text/javascript'
<!-- End Matomo Code --> g.async = true
</body> g.src = u + 'matomo.js'
s.parentNode.insertBefore(g, s)
})()
</script>
<!-- End Matomo Code -->
</body>
</html> </html>
差异被折叠。
<template>
<div class="container">
<div class="box">
<h1 class="tips">你的浏览器版本较低,请升级你的浏览器。</h1>
<div class="list">
<ul>
<li>
<a href="https://www.google.cn/chrome" target="_blank">
<img src="../../assets/images/chrome.png" />
<p class="t1">Chrome</p>
<p class="t2">Google</p>
</a>
</li>
<li>
<a href="https://www.microsoft.com/edge" target="_blank">
<img src="../../assets/images/edge.png" />
<p class="t1">Edge</p>
<p class="t2">Microsoft</p>
</a>
</li>
<li>
<a href="https://download.mozilla.org" target="_blank">
<img src="../../assets/images/firefox.png" />
<p class="t1">Firefox</p>
<p class="t2">Mozilla Foundation</p>
</a>
</li>
</ul>
</div>
</div>
</div>
</template>
<script>
export default {}
</script>
<style lang="scss" scoped>
.container {
height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.box {
background-color: #fff4f4;
border-radius: 10px;
}
.tips {
margin: 30px;
font-size: 24px;
color: #313131;
text-align: center;
}
ul {
margin: 0;
padding: 0;
display: flex;
list-style: none;
li {
padding: 40px;
}
img {
width: 100px;
}
p {
margin: 0;
text-align: center;
}
.t1 {
color: #e25600;
}
.t2 {
color: #aaa;
text-decoration: none;
}
a {
text-decoration: none;
}
}
</style>
...@@ -209,5 +209,7 @@ export default [ ...@@ -209,5 +209,7 @@ export default [
name: 'survey', name: 'survey',
component: () => import('@/pages/survey/survey.vue'), component: () => import('@/pages/survey/survey.vue'),
props: true props: true
} },
{ path: '/403', name: '403', component: () => import('@/pages/exception/403.vue') },
{ path: '/browser', name: 'browser', component: () => import('@/pages/exception/browser.vue') }
] ]
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论