parent
b87edbbf94
commit
1069569f69
11 changed files with 251 additions and 135 deletions
@ -0,0 +1,141 @@ |
|||||||
|
<template> |
||||||
|
<div class="login-container" ref="login" @keyup.enter.native="handleLogin"> |
||||||
|
<top-color v-show="false"></top-color> |
||||||
|
<div class="login-weaper animated bounceInDown"> |
||||||
|
<!-- 左侧 --> |
||||||
|
<div class="login-border"> |
||||||
|
<div class="login-main"> |
||||||
|
<div class="login-logo"> |
||||||
|
<img :src="require('@/assets/img/login/logo.png')" /> |
||||||
|
</div> |
||||||
|
<div class="login-title">运维管理系统,欢迎您!</div> |
||||||
|
<div class="login-subTitle"> |
||||||
|
WELCOME TO THE OPERATION AND MAINTENANCE<br /> |
||||||
|
MANAGEMENT SYSTEM |
||||||
|
</div> |
||||||
|
<userLogin></userLogin> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<!-- 右侧 --> |
||||||
|
<div class="login-right"> |
||||||
|
<img :src="require('@/assets/img/login/login-right.png')" alt=""> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
<script> |
||||||
|
import userLogin from "./userlogin"; |
||||||
|
import codeLogin from "./codelogin"; |
||||||
|
import thirdLogin from "./thirdlogin"; |
||||||
|
import { mapGetters } from "vuex"; |
||||||
|
import { dateFormat } from "@/util/date"; |
||||||
|
import { validatenull } from "@/util/validate"; |
||||||
|
import topLang from "@/page/index/top/top-lang"; |
||||||
|
import topColor from "@/page/index/top/top-color"; |
||||||
|
import { getQueryString, getTopUrl } from "@/util/util"; |
||||||
|
|
||||||
|
export default { |
||||||
|
name: "newlogin", |
||||||
|
components: { |
||||||
|
userLogin, |
||||||
|
codeLogin, |
||||||
|
thirdLogin, |
||||||
|
topLang, |
||||||
|
topColor, |
||||||
|
}, |
||||||
|
data() { |
||||||
|
return { |
||||||
|
time: "", |
||||||
|
socialForm: { |
||||||
|
tenantId: "000000", |
||||||
|
source: "", |
||||||
|
code: "", |
||||||
|
state: "", |
||||||
|
}, |
||||||
|
}; |
||||||
|
}, |
||||||
|
watch: { |
||||||
|
$route() { |
||||||
|
this.handleLogin(); |
||||||
|
}, |
||||||
|
}, |
||||||
|
created() { |
||||||
|
this.handleLogin(); |
||||||
|
this.getTime(); |
||||||
|
}, |
||||||
|
mounted() {}, |
||||||
|
computed: { |
||||||
|
...mapGetters(["website", "tagWel"]), |
||||||
|
}, |
||||||
|
props: [], |
||||||
|
methods: { |
||||||
|
getTime() { |
||||||
|
setInterval(() => { |
||||||
|
this.time = dateFormat(new Date()); |
||||||
|
}, 1000); |
||||||
|
}, |
||||||
|
handleLogin() { |
||||||
|
const topUrl = getTopUrl(); |
||||||
|
const redirectUrl = "/oauth/redirect/"; |
||||||
|
const ssoCode = "?code="; |
||||||
|
this.socialForm.source = getQueryString("source"); |
||||||
|
this.socialForm.code = getQueryString("code"); |
||||||
|
this.socialForm.state = getQueryString("state"); |
||||||
|
if ( |
||||||
|
validatenull(this.socialForm.source) && |
||||||
|
topUrl.includes(redirectUrl) |
||||||
|
) { |
||||||
|
let source = topUrl.split("?")[0]; |
||||||
|
source = source.split(redirectUrl)[1]; |
||||||
|
this.socialForm.source = source; |
||||||
|
} |
||||||
|
if ( |
||||||
|
topUrl.includes(redirectUrl) && |
||||||
|
!validatenull(this.socialForm.source) && |
||||||
|
!validatenull(this.socialForm.code) && |
||||||
|
!validatenull(this.socialForm.state) |
||||||
|
) { |
||||||
|
const loading = this.$loading({ |
||||||
|
lock: true, |
||||||
|
text: "第三方系统登录中,请稍后。。。", |
||||||
|
spinner: "el-icon-loading", |
||||||
|
}); |
||||||
|
this.$store |
||||||
|
.dispatch("LoginBySocial", this.socialForm) |
||||||
|
.then(() => { |
||||||
|
window.location.href = topUrl.split(redirectUrl)[0]; |
||||||
|
this.$router.push({ path: this.tagWel.value }); |
||||||
|
loading.close(); |
||||||
|
}) |
||||||
|
.catch(() => { |
||||||
|
loading.close(); |
||||||
|
}); |
||||||
|
} else if ( |
||||||
|
!topUrl.includes(redirectUrl) && |
||||||
|
!validatenull(this.socialForm.code) && |
||||||
|
!validatenull(this.socialForm.state) |
||||||
|
) { |
||||||
|
const loading = this.$loading({ |
||||||
|
lock: true, |
||||||
|
text: "单点系统登录中,请稍后。。。", |
||||||
|
spinner: "el-icon-loading", |
||||||
|
}); |
||||||
|
this.$store |
||||||
|
.dispatch("LoginBySso", this.socialForm) |
||||||
|
.then(() => { |
||||||
|
window.location.href = topUrl.split(ssoCode)[0]; |
||||||
|
this.$router.push({ path: this.tagWel.value }); |
||||||
|
loading.close(); |
||||||
|
}) |
||||||
|
.catch(() => { |
||||||
|
loading.close(); |
||||||
|
}); |
||||||
|
} |
||||||
|
}, |
||||||
|
}, |
||||||
|
}; |
||||||
|
</script> |
||||||
|
|
||||||
|
<style lang="scss" scoped> |
||||||
|
@import "@/styles/login.scss"; |
||||||
|
</style> |
||||||
Loading…
Reference in new issue