| | |
| | | <template> |
| | | <div> |
| | | 登录组件 |
| | | <div class='login_container'> |
| | | <div class="login_span"> |
| | | <!-- 头像区域 --> |
| | | <span style="text-align: center;display:block;font-size: 100px;color: #FFFFFF;">青羊经侦管理系统</span> |
| | | </div> |
| | | <div class="login_box"> |
| | | <!-- 头像区域 --> |
| | | <div class="avater_box"> |
| | | <img src="../assets/jh.png" |
| | | alt=""> |
| | | </div> |
| | | <!-- 登录表单区域 --> |
| | | <el-form label-width="0px" |
| | | class="login_form" |
| | | :model="loginForm" |
| | | :rules="loginFormRules" |
| | | ref="loginFormRef"> |
| | | <!-- 用户名 --> |
| | | <el-form-item prop="username"> |
| | | <el-input v-model="loginForm.username" |
| | | prefix-icon="iconfont icon-user"></el-input> |
| | | </el-form-item> |
| | | <!-- 密码 --> |
| | | <el-form-item prop="password"> |
| | | <el-input v-model="loginForm.password" show-password |
| | | prefix-icon="iconfont icon-3702mima" |
| | | type="password" @keyup.enter.native="login"></el-input> |
| | | </el-form-item> |
| | | <!-- 提交按钮 --> |
| | | <el-form-item class="btns"> |
| | | <el-button type="primary" |
| | | @click="login">登录 |
| | | </el-button> |
| | | <el-button type="info" |
| | | @click="resetLoginForm">重置 |
| | | </el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | export default { |
| | | name: "Login" |
| | | data() { |
| | | return { |
| | | loginForm: { |
| | | username: '', |
| | | password: '' |
| | | }, |
| | | // 表单验证规则对象 |
| | | loginFormRules: { |
| | | username: [ |
| | | {required: true, message: '用户名不能为空', trigger: 'blur'}, |
| | | { |
| | | min: 3, |
| | | max: 10, |
| | | message: '长度在 3 到 10 个字符', |
| | | trigger: 'blur' |
| | | } |
| | | ], |
| | | password: [ |
| | | {required: true, message: '密码不能为空', trigger: 'blur'}, |
| | | ] |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | resetLoginForm() { |
| | | this.$refs.loginFormRef.resetFields() |
| | | }, |
| | | login() { |
| | | this.$refs.loginFormRef.validate(async (vaild) => { |
| | | if (!vaild) return this.$message.error('输入有误') |
| | | const {data: res} = await this.$http("/api/login", { |
| | | method: 'POST', |
| | | params: this.loginForm |
| | | }) |
| | | console.log(res) |
| | | if (res.code == 200) { |
| | | this.$message.success('登录成功') |
| | | window.sessionStorage.setItem('token', res.data) |
| | | await this.$router.push('/home') |
| | | } else { |
| | | this.$message.error(res.msg) |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | <style lang="scss" scoped> |
| | | .login_container { |
| | | background-color: #2b4b6b; |
| | | height: 100%; |
| | | } |
| | | |
| | | </style> |
| | | .login_box { |
| | | width: 450px; |
| | | height: 300px; |
| | | background-color: #fff; |
| | | // 圆角边框 |
| | | border-radius: 3px; |
| | | position: absolute; |
| | | left: 50%; |
| | | top: 50%; |
| | | transform: translate(-50%, -50%); |
| | | |
| | | .avater_box { |
| | | height: 130px; |
| | | width: 130px; |
| | | border: 1px solid #eee; |
| | | border-radius: 50%; |
| | | padding: 10px; |
| | | // 阴影 |
| | | box-shadow: 0 0 10px #ddd; |
| | | position: absolute; |
| | | left: 50%; |
| | | transform: translate(-50%, -50%); |
| | | background-color: #fff; |
| | | |
| | | img { |
| | | width: 100%; |
| | | height: 100%; |
| | | border-radius: 50%; |
| | | background-color: #eee; |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | // .login_span { |
| | | // position: absolute; |
| | | // bottom: 0; |
| | | // width: 100%; |
| | | // padding: 0 20px; |
| | | // box-sizing: border-box; |
| | | // } |
| | | |
| | | .login_form { |
| | | position: absolute; |
| | | bottom: 0; |
| | | width: 100%; |
| | | padding: 0 20px; |
| | | box-sizing: border-box; |
| | | } |
| | | |
| | | .btns { |
| | | display: flex; |
| | | justify-content: flex-end; |
| | | } |
| | | </style> |