2019-12-04 13:45:37 +08:00
|
|
|
<template>
|
2019-12-26 16:31:53 +08:00
|
|
|
<div class="login">
|
2020-02-18 21:31:39 +08:00
|
|
|
<div class="model"></div>
|
|
|
|
|
<div class="logo"><img height="155" src="../../assets/img/logo-big.png"></div>
|
|
|
|
|
<div class='login-box'>
|
|
|
|
|
<div class="login-label"></div>
|
|
|
|
|
<div class="login-input">
|
|
|
|
|
<input v-model="loginData.username" ></input>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="login-label"></div>
|
|
|
|
|
<div class="login-input">
|
|
|
|
|
<input v-model="loginData.password" type="password"></input>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="login-foot">
|
|
|
|
|
<button @click="login" class="login-btn" id="login">Login</button>
|
|
|
|
|
<div class="login-foot-langs">
|
|
|
|
|
<i class="nz-icon nz-icon-lang-en"></i><i class="nz-icon nz-icon-arrow-down"></i>
|
2019-12-05 16:48:23 +08:00
|
|
|
</div>
|
2019-12-26 16:31:53 +08:00
|
|
|
</div>
|
2019-12-04 13:45:37 +08:00
|
|
|
</div>
|
2019-12-26 16:31:53 +08:00
|
|
|
</div>
|
2019-12-04 13:45:37 +08:00
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
2019-12-26 16:31:53 +08:00
|
|
|
|
2019-12-04 13:45:37 +08:00
|
|
|
export default {
|
|
|
|
|
name: "login",
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
loginData: {
|
|
|
|
|
username: '',
|
|
|
|
|
password: '',
|
2019-12-26 16:31:53 +08:00
|
|
|
remember: false
|
2019-12-04 13:45:37 +08:00
|
|
|
},
|
2019-12-26 16:31:53 +08:00
|
|
|
lang: localStorage.getItem("nz-language") ? localStorage.getItem("nz-language") : 'en'
|
2019-12-04 13:45:37 +08:00
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
login() {
|
2019-12-05 16:48:23 +08:00
|
|
|
this.$post('sys/login', (this.loginData)).then(res => {
|
2019-12-04 13:45:37 +08:00
|
|
|
if (res.code == 200) {
|
2019-12-26 16:31:53 +08:00
|
|
|
sessionStorage.setItem("nz-token", res.data.token);
|
|
|
|
|
sessionStorage.setItem("nz-username", this.loginData.username);
|
2020-01-08 22:19:46 +08:00
|
|
|
localStorage.setItem("nz-username", this.loginData.username);
|
2019-12-04 13:45:37 +08:00
|
|
|
this.$router.push({
|
2020-02-11 10:44:46 +08:00
|
|
|
path: "/panel",
|
2019-12-04 13:45:37 +08:00
|
|
|
query: {
|
|
|
|
|
t: +new Date()
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
2019-12-26 16:31:53 +08:00
|
|
|
changeLang(lang) {
|
|
|
|
|
if (this.lang == lang) {
|
|
|
|
|
return;
|
|
|
|
|
} else {
|
|
|
|
|
localStorage.setItem("nz-language", lang);
|
|
|
|
|
this.lang = lang;
|
|
|
|
|
this.$i18n.locale = lang;
|
|
|
|
|
}
|
|
|
|
|
}
|
2019-12-04 13:45:37 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
2020-02-18 21:31:39 +08:00
|
|
|
<style scoped lang="scss">
|
2019-12-26 16:31:53 +08:00
|
|
|
.login {
|
|
|
|
|
background-image: url("../../assets/img/login-background.png");
|
2020-02-18 21:31:39 +08:00
|
|
|
background-size: cover;
|
|
|
|
|
position: relative;
|
2019-12-26 16:31:53 +08:00
|
|
|
}
|
|
|
|
|
.model {
|
|
|
|
|
height: 100%;
|
|
|
|
|
width: 100%;
|
2020-02-18 21:31:39 +08:00
|
|
|
background-color: rgba(130, 130, 135, 0.4);
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: 0;
|
|
|
|
|
left: 0;
|
|
|
|
|
z-index: 1;
|
2019-12-05 16:48:23 +08:00
|
|
|
}
|
|
|
|
|
|
2020-02-18 21:31:39 +08:00
|
|
|
.logo {
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: 25%;
|
|
|
|
|
left: 50%;
|
|
|
|
|
transform: translateX(-50%);
|
|
|
|
|
z-index: 2;
|
2019-12-26 16:31:53 +08:00
|
|
|
}
|
2020-02-18 21:31:39 +08:00
|
|
|
|
|
|
|
|
.login-box {
|
|
|
|
|
width: 460px;
|
2019-12-26 16:31:53 +08:00
|
|
|
position: absolute;
|
2020-02-18 21:31:39 +08:00
|
|
|
left: 50%;
|
|
|
|
|
transform: translateX(-50%);
|
|
|
|
|
top: 50%;
|
|
|
|
|
height: 100%;
|
|
|
|
|
z-index: 2;
|
2019-12-26 16:31:53 +08:00
|
|
|
}
|
2020-02-18 21:31:39 +08:00
|
|
|
|
|
|
|
|
.login-box .login-input {
|
|
|
|
|
padding: 20px 0;
|
|
|
|
|
height: 60px;
|
2019-12-05 16:48:23 +08:00
|
|
|
}
|
2020-02-18 21:31:39 +08:00
|
|
|
.login-box .login-input input {
|
|
|
|
|
height: 100%;
|
|
|
|
|
width: calc(100% - 30px);
|
|
|
|
|
background-color: rgba(0, 0, 0, 0.55);
|
|
|
|
|
padding-left: 30px;
|
|
|
|
|
font-size: 20px;
|
|
|
|
|
border: none;
|
|
|
|
|
outline: none;
|
|
|
|
|
color: white;
|
|
|
|
|
border-radius: 4px;
|
2019-12-26 16:31:53 +08:00
|
|
|
}
|
2020-02-18 21:31:39 +08:00
|
|
|
|
2019-12-26 16:31:53 +08:00
|
|
|
.login-foot {
|
2020-02-18 21:31:39 +08:00
|
|
|
padding-top: 45px;
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: space-between;
|
2019-12-26 16:31:53 +08:00
|
|
|
}
|
2020-02-18 21:31:39 +08:00
|
|
|
|
|
|
|
|
.login-btn {
|
|
|
|
|
color: white;
|
|
|
|
|
border-radius: 3px;
|
|
|
|
|
background-image: $btn-normal-background-color;
|
|
|
|
|
border: none;
|
|
|
|
|
outline: none;
|
|
|
|
|
height: 44px;
|
|
|
|
|
width: 320px;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
box-shadow: 0 2px 3px 2px rgba(0, 0, 0, 0.30);
|
2019-12-26 16:31:53 +08:00
|
|
|
}
|
2020-02-18 21:31:39 +08:00
|
|
|
|
2019-12-26 16:31:53 +08:00
|
|
|
.login-foot-langs {
|
|
|
|
|
position: relative;
|
2020-02-18 21:31:39 +08:00
|
|
|
cursor: pointer;
|
2019-12-26 16:31:53 +08:00
|
|
|
}
|
2020-02-18 21:31:39 +08:00
|
|
|
.login-foot-langs .nz-icon-lang-en, .login-foot-langs .nz-icon-lang-zh {
|
|
|
|
|
font-size: 40px;
|
|
|
|
|
color: white;
|
|
|
|
|
margin-right: 30px;
|
2019-12-26 16:31:53 +08:00
|
|
|
}
|
2020-02-18 21:31:39 +08:00
|
|
|
.nz-icon-arrow-down, .nz-icon-arrow-up {
|
2019-12-26 16:31:53 +08:00
|
|
|
position: absolute;
|
2020-02-18 21:31:39 +08:00
|
|
|
font-size: 18px;
|
|
|
|
|
color: white;
|
|
|
|
|
top: 50%;
|
|
|
|
|
right: 0;
|
|
|
|
|
transform: translateY(-50%);
|
2019-12-26 16:31:53 +08:00
|
|
|
}
|
|
|
|
|
</style>
|