From 1c46f5e5d745b2381bdb7f928a326782b0cafd17 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Tue, 17 Jul 2018 23:59:20 +0800 Subject: [PATCH] =?UTF-8?q?is-mobile=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Former-commit-id: c859c0a360ad0d23b45c479e4d9e39edbca03cf8 [formerly c859c0a360ad0d23b45c479e4d9e39edbca03cf8 [formerly c859c0a360ad0d23b45c479e4d9e39edbca03cf8 [formerly c859c0a360ad0d23b45c479e4d9e39edbca03cf8 [formerly e67ff51ddc4498da1d45a5ed1b29a006e284ca9e [formerly 0847d1f0e60a9992c4e4457d35eff0d981c0e79e]]]]] Former-commit-id: 4bbc804527be8d0b049558d616926d107964d630 Former-commit-id: 0aa8a6c02f2474fe40761b65e958b6a862a809b0 Former-commit-id: b4aa260b2fc851f1411723a10980ec8eeb8812a1 [formerly ea0cd16fec9ecf1f5d8ae5fef8371f858a53f4a2] Former-commit-id: 14f651f5bdeeeee713f9fabfd1cd94836c7ff1b1 Former-commit-id: 4ad96fab15f02793f4727c5f047679cf90d5c7f4 Former-commit-id: 2958b0c9a6e039c6aeb9888a250428559e91171c Former-commit-id: 1ae356951e27fc2a841da0028f5fe08f89d2eb58 Former-commit-id: a25fa4db9e8516374c6379e67a331e0903985d8e --- src/libs/util.js | 34 +++++++++++++++++-- src/main.js | 7 ++-- src/pages/dashboard/index.js | 2 +- .../dashboard/{dashboard.vue => page.vue} | 0 src/pages/error-page-404/index.js | 2 +- .../{error-page-404.vue => page.vue} | 0 src/pages/error-page-is-mobile/index.js | 3 ++ src/pages/error-page-is-mobile/page.vue | 28 +++++++++++++++ src/router/index.js | 5 +++ src/router/routes.js.REMOVED.git-id | 2 +- src/store/modules/d2admin.js.REMOVED.git-id | 2 +- 11 files changed, 77 insertions(+), 8 deletions(-) rename src/pages/dashboard/{dashboard.vue => page.vue} (100%) rename src/pages/error-page-404/{error-page-404.vue => page.vue} (100%) create mode 100644 src/pages/error-page-is-mobile/index.js create mode 100644 src/pages/error-page-is-mobile/page.vue diff --git a/src/libs/util.js b/src/libs/util.js index 6ee741ea..36ba8247 100644 --- a/src/libs/util.js +++ b/src/libs/util.js @@ -3,6 +3,7 @@ import Cookies from 'js-cookie' import axios from 'axios' import semver from 'semver' import dayjs from 'dayjs' +import UaParser from 'ua-parser-js' // 获取项目信息 import packJson from '../../package.json' @@ -10,7 +11,7 @@ import packJson from '../../package.json' let util = {} /** - * @description 得到现在的用户 + * @description 得到现在的用户 uuid */ util.uuid = function () { return Cookies.get('uuid') @@ -20,10 +21,39 @@ util.uuid = function () { * @description 更新标题 * @param {string} title 标题 */ -util.title = function title (titleText) { +util.title = function (titleText) { window.document.title = `${process.env.VUE_APP_TITLE}${titleText ? ` | ${titleText}` : ''}` } +/** + * @description [ 私有 ] 获取所有的 UA 信息 + */ +function getUa () { + return new UaParser().getResult() +} + +/** + * @description 返回当前设备是否是手机 + */ +util.isMobile = function (ua) { + return (ua || getUa()).device.type === 'mobile' +} + +/** + * @description 获取并存储用户 UA 同时对危险环境做检查 + * @param {object} vm vue + */ +util.uaGet = function (vm) { + // 获取 UA + const ua = getUa() + // 存储 + vm.$store.commit('d2adminUaSet', ua) + // 判断 + if (util.isMobile(ua)) { + vm.$router.replace({ name: 'is-mobile' }) + } +} + /** * @description 判断是否在其内 * @param {*} ele element diff --git a/src/main.js b/src/main.js index 3447482e..68201125 100644 --- a/src/main.js +++ b/src/main.js @@ -51,6 +51,11 @@ new Vue({ this.$store.commit('d2adminMenusHeaderSet', menusHeader) }, mounted () { + // D2Admin 开发环境检查更新 + util.checkUpdate(this) + // 获取并记录用户 UA 同时对危险环境做出判断 + util.uaGet(this) + // 展示系统信息 util.showInfo() // DB -> store 加载用户名 this.$store.commit('d2adminUsernameLoad') @@ -58,8 +63,6 @@ new Vue({ this.$store.commit('d2adminThemeLoad') // DB -> store 数据库加载上次退出时的多页列表 this.$store.commit('d2adminPageOpenedListLoad') - // D2Admin 开发环境检查更新 - util.checkUpdate(this) // 初始化全屏监听 this.fullscreenListenerInit() }, diff --git a/src/pages/dashboard/index.js b/src/pages/dashboard/index.js index c8a254df..ddb7de83 100644 --- a/src/pages/dashboard/index.js +++ b/src/pages/dashboard/index.js @@ -1,3 +1,3 @@ -import page from './dashboard' +import page from './page' export default page diff --git a/src/pages/dashboard/dashboard.vue b/src/pages/dashboard/page.vue similarity index 100% rename from src/pages/dashboard/dashboard.vue rename to src/pages/dashboard/page.vue diff --git a/src/pages/error-page-404/index.js b/src/pages/error-page-404/index.js index 1d0ae533..ddb7de83 100644 --- a/src/pages/error-page-404/index.js +++ b/src/pages/error-page-404/index.js @@ -1,3 +1,3 @@ -import page from './error-page-404' +import page from './page' export default page diff --git a/src/pages/error-page-404/error-page-404.vue b/src/pages/error-page-404/page.vue similarity index 100% rename from src/pages/error-page-404/error-page-404.vue rename to src/pages/error-page-404/page.vue diff --git a/src/pages/error-page-is-mobile/index.js b/src/pages/error-page-is-mobile/index.js new file mode 100644 index 00000000..ddb7de83 --- /dev/null +++ b/src/pages/error-page-is-mobile/index.js @@ -0,0 +1,3 @@ +import page from './page' + +export default page diff --git a/src/pages/error-page-is-mobile/page.vue b/src/pages/error-page-is-mobile/page.vue new file mode 100644 index 00000000..be1b921b --- /dev/null +++ b/src/pages/error-page-is-mobile/page.vue @@ -0,0 +1,28 @@ + + + diff --git a/src/router/index.js b/src/router/index.js index 39cf7d8b..13d4a128 100755 --- a/src/router/index.js +++ b/src/router/index.js @@ -16,6 +16,11 @@ let router = new VueRouter({ routes }) * 权限验证 */ router.beforeEach((to, from, next) => { + // 禁止手机访问 + if (to.name !== 'is-mobile' && util.isMobile()) { + next({ name: 'is-mobile' }) + return + } // 验证当前路由所有的匹配中是否需要有登陆验证的 if (to.matched.some(r => r.meta.requiresAuth)) { // 这里暂时将cookie里是否存有token作为验证是否登陆的条件 diff --git a/src/router/routes.js.REMOVED.git-id b/src/router/routes.js.REMOVED.git-id index f415a66f..ce1d1d83 100644 --- a/src/router/routes.js.REMOVED.git-id +++ b/src/router/routes.js.REMOVED.git-id @@ -1 +1 @@ -b48413cb8c217f7ecaf10be1313caa442cffe91b \ No newline at end of file +51bf6b20922ac42bc614d4dafc3928f2f9017796 \ No newline at end of file diff --git a/src/store/modules/d2admin.js.REMOVED.git-id b/src/store/modules/d2admin.js.REMOVED.git-id index a3b4efc7..63e5b434 100644 --- a/src/store/modules/d2admin.js.REMOVED.git-id +++ b/src/store/modules/d2admin.js.REMOVED.git-id @@ -1 +1 @@ -303f0d76d55f00375ac5d17efcd00212c3bc2619 \ No newline at end of file +2831ac4870bc4916671225959f7721a1eeb52ebd \ No newline at end of file