diff --git a/src/component/HomePage/Header.vue b/src/component/HomePage/Header.vue index 1aae2169..f6bfc3af 100644 --- a/src/component/HomePage/Header.vue +++ b/src/component/HomePage/Header.vue @@ -9,6 +9,7 @@
/ {{$t('Header.hello')}}@{{ $t('isTest.userName') }}
/ {{$t('Header.hello')}}@{{ userInfo?.userName }}
{ + murmurStr = rv + }) + } + let isSxis = false + let data = { + browserIdentifiers: murmurStr + } + await Https.axiosPost(Https.httpUrls.existNoLoginRequired, data) + .then((rv) => { + isSxis = rv + }) + .catch((res) => { + }); + if (isSxis && !token) { + // if(isLogin != 'login'){ + // return + // } + Https.axiosPost(Https.httpUrls.noLoginRequired, data) + .then((rv) => { + let isTest = rv.isTrial == 1 ? true : false + let isBeginner = rv.isBeginner == 1 ? true : false + setCookie("isMurmur", true); + setCookie("token", rv.token); + setCookie("isTest", isTest); + setCookie("isBeginner", isBeginner); + setCookie("isBeginnerNum", 0);//从第一步开始,机器人开始的话就是从第二部开始 + setCookie("userInfo", JSON.stringify(rv)); + sessionStorage.setItem('isTimeOne', JSON.stringify(false));//是否需要公告 提示 弹窗 + let randomNum: any = Math.floor(Math.random() * 9000000000000000) + 1000000000000000; + sessionStorage.setItem('sessionId', randomNum); + router.push("/home"); + }) + .catch((res) => { + }); + } } -createApp(App).use(store).use(router).use(Antd).use(VueLazyload,loadingParam).use(i18n).mount('#app') +isMurmur() + +let loadingParam = { + loading: require('./assets/images/homePage/loading.gif'), + attempt: 1 +} +createApp(App).use(store).use(router).use(Antd).use(VueLazyload, loadingParam).use(i18n).mount('#app') diff --git a/src/router/index.ts b/src/router/index.ts index f5fa627d..d460accc 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -1,5 +1,7 @@ import { createRouter, createWebHistory, RouteRecordRaw, createWebHashHistory } from 'vue-router' import { defineAsyncComponent } from 'vue' +import {getBrowserInfo,murmur} from '@/tool/util' +import { getCookie,setCookie } from "@/tool/cookie"; const _import = (path: string) => defineAsyncComponent(() => import(`../views/${path}.vue`)); const routes: Array = [ @@ -9,6 +11,12 @@ const routes: Array = [ redirect: "/login" // redirect: "/Upgrade" }, + { + path: "/", + // redirect重定向 + redirect: "/home" + // redirect: "/Upgrade" + }, { path: '/login', name: 'login', @@ -56,12 +64,52 @@ const router = createRouter({ // history: createWebHashHistory(), routes }) -// router.beforeEach((to, from, next) => { -// const toName = to.name === 'upgrade'; -// if (toName) { -// next(); -// } else { -// next({ name: 'upgrade' }); -// } -// }); +router.beforeEach((to, from, next) => { +// // 获取路由配置对象 +// const route = router.resolve({ path: '/' }).route + +// // 修改重定向 +// route.redirect = '/new-path' +// router.addRoute(route) + + // next(); + // let token = getCookie("token"); + // console.log(to,from); + // if(from.path == '/' && !token){ + // console.log(111); + // murmur().then((rv)=>{ + // console.log(rv); + + // if(rv){ + // console.log(123123); + // next({ name: 'history' }); + // } + // }) + // }else{ + // console.log(333); + // next() + // } + //系统维护 + // const toName = to.name === 'upgrade'; + // if (toName) { + // next(); + // } else { + // next({ name: 'upgrade' }); + // } + + //机房用户 + let murmurStr:any = localStorage.getItem('murmurStr') + let getIsMurmur:any = getCookie("isMurmur") + let isMurmur = JSON.parse(getIsMurmur) + if(isMurmur&& murmurStr){ + const toName = to.name === 'login'; + if (toName) { + next({ name: 'home' }); + } else { + next(); + } + }else{ + next(); + } +}); export default router diff --git a/src/tool/cookie.js b/src/tool/cookie.js index c2623f49..2f6e71d3 100644 --- a/src/tool/cookie.js +++ b/src/tool/cookie.js @@ -1,5 +1,5 @@ const setCookie = (name,value) => { - var Days = 30; + var Days = 100; var exp = new Date(); exp.setTime(exp.getTime() + Days*24*60*60*1000); document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString(); diff --git a/src/tool/guide.js b/src/tool/guide.js index 88a0be97..39a5835f 100644 --- a/src/tool/guide.js +++ b/src/tool/guide.js @@ -232,6 +232,7 @@ const openGuide = () =>{ // console.log(isBeginner); let isBeginnerNum = JSON.parse(getCookie('isBeginnerNum')?getCookie('isBeginnerNum'):'0') // console.log(isBeginner); + console.log(isBeginner,isTest); if(isBeginner && !isTest){ if(isBeginnerNum){ driverObj__.drive(isBeginnerNum); diff --git a/src/tool/https.js b/src/tool/https.js index e1be8478..608acb72 100644 --- a/src/tool/https.js +++ b/src/tool/https.js @@ -100,9 +100,15 @@ export const Https = { trialUserLogout:`/account/trialUserLogout`, //试用用户退出登录接口 completeGuidancet:`/api/account/completeGuidance`, //用户指引结束 - getExpiredTime:`/api/account/getExpiredTime`, //获取用户到期事件 + getExpiredTime:`/api/account/getExpiredTime`, //获取用户到期时间 + + addNoLoginRequired:`/api/third/party/addNoLoginRequired`, //机房用户注册 + deleteNoLoginRequired:`/api/third/party/deleteNoLoginRequired`, //机房用户注销 + noLoginRequired:`api/account/noLoginRequired`, //机房用户登录 + existNoLoginRequired:`/api/third/party/existNoLoginRequired`, //获取唯一标识是否存在 + preLogin:'/api/account/preLogin',//预先登入 accountSendEmail:`/api/account/sendEmail`, //发送邮件 accountResetPwd:'/api/account/resetPwd', //忘记密码修改 diff --git a/src/tool/util.js b/src/tool/util.js index 59406259..3c617e72 100644 --- a/src/tool/util.js +++ b/src/tool/util.js @@ -1,3 +1,4 @@ +import Fingerprint2 from 'fingerprintjs2';//获取浏览器唯一标识 const isEmail = (email) => { let reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/ let result = reg.test(email) @@ -182,6 +183,25 @@ function getBrowserInfo() {//获取是什么浏览器 return agent.match(regStr_saf); } } +async function murmur(){ + return await new Promise((resolve,reject)=>{ + Fingerprint2.get(function (components) { + const values = components.map(function ( + component, + index + ) { + if (index === 0) { + //把微信浏览器里UA的wifi或4G等网络替换成空,不然切换网络会ID不一样 + return component.value.replace(/\bNetType\/\w+\b/, ""); + } + return component.value; + }); + // 生成最终id murmur + let murmur = Fingerprint2.x64hash128(values.join(""), 31); + resolve(murmur) + }); + }) +} export { isEmail, getUploadUrl, @@ -194,4 +214,5 @@ export { isMoible, downloadIamge, getBrowserInfo, + murmur, } \ No newline at end of file diff --git a/src/views/LoginPage.vue b/src/views/LoginPage.vue index da3d0a9e..07670553 100644 --- a/src/views/LoginPage.vue +++ b/src/views/LoginPage.vue @@ -233,7 +233,7 @@ import { defineComponent,ref ,onMounted} from "vue"; import { Https } from "@/tool/https"; import { isEmail } from "@/tool/util"; -import { setCookie } from "@/tool/cookie"; +import { setCookie ,WriteCookie } from "@/tool/cookie"; import { message } from "ant-design-vue"; import VerificationCodeInput from "@/component/LoginPage/verificationCodeInput.vue"; import { useI18n } from "vue-i18n"; @@ -246,6 +246,7 @@ export default defineComponent({ setup(){ let timer:any = 0; const {locale} = useI18n() + WriteCookie("token"); return{ timer, @@ -463,12 +464,11 @@ export default defineComponent({ Https.axiosPost(Https.httpUrls.accountLogin, data).then( (rv: any) => { if (rv) { - console.log(rv); - this.createTimer(); let isTest = rv.isTrial == 1?true:false let isBeginner = rv.isBeginner == 1?true:false let token = rv.token; + setCookie("isMurmur", false); setCookie("token", token); setCookie("isTest", isTest); setCookie("isBeginner", isBeginner); diff --git a/src/views/setIdentification.vue b/src/views/setIdentification.vue index 3f748a8f..b9b2ef4f 100644 --- a/src/views/setIdentification.vue +++ b/src/views/setIdentification.vue @@ -1,7 +1,8 @@