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