From fa3ac93010bea3805438ee3ab0a182bfbf7423da Mon Sep 17 00:00:00 2001 From: baoshiwei <baoshiwei@shlanbao.cn> Date: 星期一, 27 五月 2024 16:19:31 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/views/sys/login/TokenLoginPage.vue | 209 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 209 insertions(+), 0 deletions(-) diff --git a/src/views/sys/login/TokenLoginPage.vue b/src/views/sys/login/TokenLoginPage.vue new file mode 100644 index 0000000..d386fb2 --- /dev/null +++ b/src/views/sys/login/TokenLoginPage.vue @@ -0,0 +1,209 @@ +<template> + <div class="app-loading"> + <div class="app-loading-wrap"> + <img src="/resource/img/logo.png" class="app-loading-logo" alt="Logo"> + <div class="app-loading-dots"> + <span class="dot dot-spin"><i></i><i></i><i></i><i></i></span> + </div> + <div class="app-loading-title">鏅鸿兘涓嵂骞茬嚗鏈烘暟瀛楀寲杞﹂棿</div> + </div> + </div> +</template> + + +<script lang="ts"> + /** + * 鍦板潃涓惡甯oken锛岃烦杞嚦姝ら〉闈㈣繘琛岀櫥褰曟搷浣� + */ + import { useRoute, useRouter } from 'vue-router'; + import { useMessage } from '/@/hooks/web/useMessage'; + import { useUserStore } from '/@/store/modules/user'; + import { useI18n } from '/@/hooks/web/useI18n'; + + export default { + name: "TokenLogin", + setup(){ + const route = useRoute(); + let router = useRouter(); + const {createMessage, notification} = useMessage() + const {t} = useI18n(); + const routeQuery:any = route.query; + if(!routeQuery){ + createMessage.warning('鍙傛暟鏃犳晥') + } + + const token = routeQuery['loginToken']; + if(!token){ + createMessage.warning('token鏃犳晥') + } + const userStore = useUserStore(); + userStore.ThirdLogin({ token, thirdType:'email' }).then(res => { + console.log("res====>doThirdLogin",res) + if(res && res.userInfo){ + requestSuccess(res) + }else{ + requestFailed(res) + } + }); + + function requestFailed (err) { + notification.error({ + message: '鐧诲綍澶辫触', + description: ((err.response || {}).data || {}).message || err.message || "璇锋眰鍑虹幇閿欒锛岃绋嶅悗鍐嶈瘯", + duration: 4, + }); + } + + function requestSuccess(res){ + let info = routeQuery.info; + if(info){ + let query = JSON.parse(info) + let taskId = query.taskId; + let path = '/task/handle/'+taskId + router.replace({ path, query }) + notification.success({ + message: t('sys.login.loginSuccessTitle'), + description: `${t('sys.login.loginSuccessDesc')}: ${res.userInfo.realname}`, + duration: 3, + }); + }else{ + notification.error({ + message: '鍙傛暟澶辨晥', + description: "椤甸潰璺宠浆鍙傛暟涓㈠け锛岃鏌ョ湅鏃ュ織", + duration: 4, + }); + } + } + } + } +</script> + +<style scoped> + + html[data-theme='dark'] .app-loading { + background-color: #2c344a; + } + + html[data-theme='dark'] .app-loading .app-loading-title { + color: rgba(255, 255, 255, 0.85); + } + + .app-loading { + display: flex; + width: 100%; + height: 100%; + justify-content: center; + align-items: center; + flex-direction: column; + background-color: #f4f7f9; + } + + .app-loading .app-loading-wrap { + position: absolute; + top: 50%; + left: 50%; + display: flex; + -webkit-transform: translate3d(-50%, -50%, 0); + transform: translate3d(-50%, -50%, 0); + justify-content: center; + align-items: center; + flex-direction: column; + } + + .app-loading .dots { + display: flex; + padding: 98px; + justify-content: center; + align-items: center; + } + + .app-loading .app-loading-title { + display: flex; + margin-top: 30px; + font-size: 30px; + color: rgba(0, 0, 0, 0.85); + justify-content: center; + align-items: center; + } + + .app-loading .app-loading-logo { + display: block; + width: 90px; + margin: 0 auto; + margin-bottom: 20px; + } + + .dot { + position: relative; + display: inline-block; + width: 48px; + height: 48px; + margin-top: 30px; + font-size: 32px; + transform: rotate(45deg); + box-sizing: border-box; + animation: antRotate 1.2s infinite linear; + } + + .dot i { + position: absolute; + display: block; + width: 20px; + height: 20px; + background-color: #0065cc; + border-radius: 100%; + opacity: 0.3; + transform: scale(0.75); + animation: antSpinMove 1s infinite linear alternate; + transform-origin: 50% 50%; + } + + .dot i:nth-child(1) { + top: 0; + left: 0; + } + + .dot i:nth-child(2) { + top: 0; + right: 0; + -webkit-animation-delay: 0.4s; + animation-delay: 0.4s; + } + + .dot i:nth-child(3) { + right: 0; + bottom: 0; + -webkit-animation-delay: 0.8s; + animation-delay: 0.8s; + } + + .dot i:nth-child(4) { + bottom: 0; + left: 0; + -webkit-animation-delay: 1.2s; + animation-delay: 1.2s; + } + @keyframes antRotate { + to { + -webkit-transform: rotate(405deg); + transform: rotate(405deg); + } + } + @-webkit-keyframes antRotate { + to { + -webkit-transform: rotate(405deg); + transform: rotate(405deg); + } + } + @keyframes antSpinMove { + to { + opacity: 1; + } + } + @-webkit-keyframes antSpinMove { + to { + opacity: 1; + } + } + +</style> -- Gitblit v1.9.3