<template>
|
<div class="page-login">
|
<div class="page-login--layer">
|
<div class="page-login--content" flex="dir:top cross:stretch box:justify">
|
<div class="page-login--content-header">
|
<p class="page-login--content-header-motto">
|
<!-- 时间是一切财富中最宝贵的财富 -->
|
</p>
|
</div>
|
<div class="page-login--content-main" flex="dir:top main:center cross:center">
|
<!-- logo -->
|
<!-- <img class="page-login--logo" src="./image/logo@2x.png" /> -->
|
<!-- form -->
|
<div class="page-login--form">
|
<span style="font-family: PingFangSC-Medium, sans-serif">登录</span>
|
<el-card shadow="never">
|
<el-form ref="loginForm" label-position="top" :rules="rules" :model="formLogin" size="default">
|
<el-form-item prop="username">
|
<el-input type="text" v-model="formLogin.username" placeholder="用户名"> </el-input>
|
</el-form-item>
|
<el-form-item prop="password">
|
<el-input type="password" v-model="formLogin.password" placeholder="密码" show-password id="password">
|
</el-input>
|
<i id="iconfont" class="iconfont icon-biyanjing" @click="clickeye()"></i>
|
</el-form-item>
|
<!-- <el-form-item prop="code">
|
<el-input type="text" v-model="formLogin.code" placeholder="验证码">
|
<template slot="append">
|
<img class="login-code" :src="captcha" @click="getCaptchaData" />
|
</template>
|
</el-input>
|
</el-form-item> -->
|
<el-button size="default" @click="submit" type="primary" class="button-login"> 登录 </el-button>
|
</el-form>
|
</el-card>
|
<div class="error" style="font-size: 14px; float: left">
|
{{ this.error }}
|
</div>
|
<p class="page-login--options">
|
<span> 注册</span>
|
<span>|</span>
|
<span>忘记密码</span>
|
</p>
|
</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
</template>
|
|
<script>
|
// import { mapActions } from "vuex"
|
// import "@/assets/font/iconfont"
|
|
export default {
|
name: "LoginView",
|
data() {
|
return {
|
captcha: "",
|
// timeInterval: null,
|
// time: dayjs().format("HH:mm:ss"),
|
// 快速选择用户
|
dialogVisible: false,
|
// 表单
|
formLogin: {
|
username: "admin",
|
password: "123456",
|
code: ""
|
},
|
// 表单校验
|
rules: {
|
username: [
|
{
|
required: true,
|
message: "请输入用户名",
|
trigger: "blur"
|
}
|
],
|
password: [
|
{
|
required: true,
|
message: "请输入密码",
|
trigger: "blur"
|
}
|
],
|
code: [
|
{
|
required: true,
|
message: "请输入验证码",
|
trigger: "blur"
|
}
|
]
|
},
|
error: ""
|
}
|
},
|
mounted() {
|
this.timeInterval = setInterval(() => {
|
// this.refreshTime()
|
}, 1000)
|
this.getCaptchaData()
|
},
|
beforeDestroy() {
|
clearInterval(this.timeInterval)
|
},
|
methods: {
|
getCaptchaData() {},
|
|
/**
|
* @description 提交表单
|
*/
|
// 提交登录信息
|
submit() {
|
this.$refs.loginForm.validate((valid) => {
|
if (valid) {
|
// 登录
|
// 注意 这里的演示没有传验证码
|
// 具体需要传递的数据请自行修改代码
|
// this.login({
|
// username: this.formLogin.username,
|
// password: this.formLogin.password,
|
// captcha: this.formLogin.code
|
// }).then((rsp) => {
|
// // 重定向对象不存在则返回顶层路径
|
// if (rsp != "") {
|
// // this.$message.warning(rsp);
|
// this.error = "填入信息错误,请检查!"
|
// let _this = this
|
// setTimeout(function () {
|
// _this.error = ""
|
// }, 3000)
|
// return
|
// }
|
this.$router.replace(this.$route.query.redirect || "/").catch((err) => {
|
console.log(err)
|
})
|
// })
|
} else {
|
// 登录表单校验失败
|
// this.$message.error("表单校验失败,请检查");
|
this.error = "填入信息错误,请检查!"
|
var _this = this
|
setTimeout(function () {
|
_this.error = ""
|
}, 3000)
|
}
|
})
|
},
|
//点击眼睛
|
clickeye() {
|
// let eye = document.getElementById("iconfont")
|
let pwd = document.getElementById("password")
|
if (pwd.type == "password") {
|
// ;(pwd.type = "text"), (eye.className = "iconfont icon-yanjing")
|
} else {
|
// ;(pwd.type = "password"), (eye.className = "iconfont icon-biyanjing")
|
}
|
}
|
}
|
}
|
</script>
|
|
<style lang="scss">
|
.el-icon-view:before {
|
content: "";
|
}
|
.iconfont:before {
|
line-height: 48px;
|
position: absolute;
|
right: 19px;
|
font-size: 18px;
|
color: rgba(0, 0, 0, 0.4);
|
}
|
.page-login {
|
background-size: 100%;
|
height: 100%;
|
position: relative;
|
.page-login--layer-area {
|
overflow: hidden;
|
}
|
// 时间
|
.page-login--layer-time {
|
font-size: 24em;
|
font-weight: bold;
|
color: rgba(0, 0, 0, 0.03);
|
overflow: hidden;
|
}
|
// 登陆页面控件的容器
|
.page-login--content {
|
height: 100%;
|
min-height: 500px;
|
position: relative;
|
top: 0;
|
left: 0;
|
}
|
// header
|
.page-login--content-header {
|
padding: 1em 0;
|
.page-login--content-header-motto {
|
margin: 0px;
|
padding: 0px;
|
color: beige;
|
text-align: center;
|
font-size: 12px;
|
}
|
}
|
// main
|
.page-login--logo {
|
width: 240px;
|
margin-bottom: 2em;
|
margin-top: -2em;
|
position: absolute;
|
top: 7%;
|
left: 3%;
|
}
|
// 登录表单
|
.page-login--form {
|
width: 431px;
|
height: 400px;
|
left: 50%;
|
top: 30%;
|
transform: translate(-50%, 0%);
|
position: absolute;
|
background: #fafbff;
|
opacity: 0.9;
|
border-radius: 24px;
|
padding: 35px 36px;
|
text-align: center;
|
font-size: 36px;
|
line-height: 48px;
|
color: #181f30;
|
.el-form {
|
display: flex;
|
flex-direction: column;
|
justify-content: center;
|
align-items: center;
|
.el-form-item {
|
margin-bottom: 24px;
|
width: 359px;
|
height: 48px;
|
background: #fff;
|
border: 8px;
|
.el-input__inner {
|
font-size: 14px;
|
height: 48px;
|
line-height: 20px;
|
padding-left: 16px;
|
color: #181f30;
|
}
|
}
|
}
|
// 卡片
|
.el-card {
|
margin-bottom: 15px;
|
background: transparent;
|
border: 0;
|
}
|
// 登录按钮
|
.button-login {
|
width: 359px;
|
height: 48px;
|
font-size: 16px;
|
line-height: 20px;
|
font-family: PingFangSC-Medium, sans-serif;
|
}
|
// 输入框左边的图表区域缩窄
|
.el-input-group__prepend {
|
padding: 0px 14px;
|
}
|
.login-code {
|
height: 40px - 2px;
|
display: block;
|
margin: 0px -20px;
|
border-top-right-radius: 2px;
|
border-bottom-right-radius: 2px;
|
}
|
// 登陆选项
|
.page-login--options {
|
font-family: PingFangSC-Medium, sans-serif;
|
color: #181f30 !important;
|
margin: 0px;
|
padding: 0px;
|
font-size: 14px;
|
line-height: 20px;
|
color: #2a78fb;
|
margin-right: 34px;
|
margin-bottom: 15px;
|
font-weight: bold;
|
float: right;
|
:nth-child(2) {
|
margin: 0px 5px;
|
}
|
}
|
.page-login--quick {
|
width: 100%;
|
}
|
}
|
.error {
|
float: left;
|
font-size: 14px;
|
line-height: 20px;
|
margin-left: 35px;
|
color: #f62f2f;
|
font-family: PingFangSC-Medium, sans-serif;
|
}
|
}
|
</style>
|