login.vue 2.93 KB
<!--
 * @Date: 2024-10-18 18:00:47
 * @LastEditors: hookehuyr hookehuyr@gmail.com
 * @LastEditTime: 2024-10-21 09:59:33
 * @FilePath: /hager/src/views/user/login.vue
 * @Description: 文件描述
-->
<template>
  <div class="hager-login-page">
    <div class="input-title">用户登录</div>
    <div style="padding: 1rem 1.5rem 1rem 1rem;">
      <hagerInput type="email" required v-model="email" placeholder="请输入注册邮箱地址" />
      <hagerInput type="pwd" required v-model="pwd" placeholder="请输入登录密码" />
      <!-- TODO: 记住密码和忘记密码业务显示的问题? -->
      <div class="pwd-box">
        <!-- <div><el-checkbox v-model="checked">记住密码</el-checkbox></div> -->
        <div><span @click="goToReset">忘记密码?</span></div>
      </div>
    </div>
    <div class="login-footer">
      <div class="submit-btn" @click="onSubmit">立即登录</div>
      <div class="login-subsidiary">
        <div class="login">没有账号,<span @click="goToRegister">注册新账号</span></div>
      </div>
    </div>
  </div>
</template>

<script>
import mixin from 'common/mixin';
import hagerInput from '@/components/common/hagerInput.vue';

export default {
  mixins: [mixin.init],
  data () {
    return {
      email: '',
      pwd: '',
      checked: false
    }
  },
  mounted () {

  },
  methods: {
    onSubmit () {
      console.warn();
    },
    goToRegister () {
      this.$router.push('/user/register');
    },
    goToReset () {
      this.$router.push('/user/reset');
    }
  }
}
</script>

<style lang="less" scoped>
  .hager-login-page {
    padding: 2rem 0.5rem 0;
    .input-title {
      color: @secondary-color;
      font-weight: bold;
      font-size: 1.25rem;
      text-align: center;
    }
    .pwd-box {
      display: flex;
      justify-content: flex-end;
      align-items: center;
      margin-top: 1rem;
      font-size: 0.85rem;
      padding-left: 1rem;
      span {
        color: @primary-color;
        font-weight: bold;
        &:hover {
          cursor: pointer;
        }
      }
    }
    .submit-btn {
      background-color: @secondary-color;
      color: #FFF;
      padding: 0.5rem 1rem;
      text-align: center;
      border-radius: 5px;
      &:hover {
        cursor: pointer;
      }
    }
    .login-footer {
      padding: 0 1rem 1rem 2rem;
      .login-subsidiary {
        text-align: center;
        font-size: 0.85rem;
        margin-top: 1rem;
        span {
          color: @primary-color;
          text-decoration: underline;
          font-weight: bold;
          &:hover {
            cursor: pointer;
          }
        }
        .privacy {

        }
        .login {

        }
      }
    }
  }

  :deep(.el-checkbox__input.is-checked .el-checkbox__inner, .el-checkbox__input.is-indeterminate .el-checkbox__inner) {
    background-color: #009FE5;
    border-color: #009FE5;
  }

  :deep(.el-checkbox__input.is-checked+.el-checkbox__label) {
    color: #009FE5;
  }
</style>