bladex前端ui项目,基于avue-cli2.0开发 包含基础工作流,不包含表单设计器 https://git.javablade.com/blade/Saber
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

106 lines
2.7 KiB

<template>
<div class="login-container"
ref="login"
@keyup.enter.native="handleLogin">
<top-color v-show="false"/>
<div class="login-weaper animated bounceInDown">
<div class="login-left">
<div class="login-time">
{{time}}
</div>
<img class="img"
src="/img/logo.png"
alt="">
<p class="title">{{ $t('login.info') }}</p>
</div>
<div class="login-border">
<div class="login-main">
<h4 class="login-title">
{{ $t('login.title') }}{{website.title}}
<top-lang/>
</h4>
<userLogin v-if="activeName==='user'"/>
<codeLogin v-else-if="activeName==='code'"/>
<thirdLogin v-else-if="activeName==='third'"/>
<div class="login-menu">
<a href="#"
@click.stop="activeName='user'">{{ $t('login.userLogin') }}</a>
<a href="#"
@click.stop="activeName='code'">{{ $t('login.phoneLogin') }}</a>
<a href="#"
@click.stop="activeName='third'">{{ $t('login.thirdLogin') }}</a>
</div>
</div>
</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";
export default {
name: "login",
components: {
userLogin,
codeLogin,
thirdLogin,
topLang,
topColor
},
data() {
return {
time: "",
activeName: "user"
};
},
watch: {
$route() {
const params = this.$route.query;
this.socialForm.state = params.state;
this.socialForm.code = params.code;
if (!validatenull(this.socialForm.state)) {
const loading = this.$loading({
lock: true,
text: `${
this.socialForm.state === "WX" ? "微信" : "QQ"
}登录中,请稍后`,
spinner: "el-icon-loading"
});
setTimeout(() => {
loading.close();
}, 2000);
}
}
},
created() {
this.getTime();
setInterval(() => {
this.getTime();
}, 1000);
},
mounted() {
},
computed: {
...mapGetters(["website"])
},
props: [],
methods: {
getTime() {
this.time = dateFormat(new Date());
}
}
};
</script>
<style lang="scss">
@import "@/styles/login.scss";
</style>