index.vue 1.98 KB
<template>
  <div class="login-container">
    <a-form :form="form" class="login-form" @submit="handleSubmit">
      <a-form-item class="form-item logo">
        logo
      </a-form-item>
      <a-form-item class="form-item">
        <a-input v-decorator="rules.userName" placeholder="请输入用户名">
          <a-icon slot="prefix" type="user" style="color:rgba(0,0,0,.25)" />
        </a-input>
      </a-form-item>
      <a-form-item class="form-item">
        <a-input v-decorator="rules.password" placeholder="请输入密码" type="password">
          <a-icon slot="prefix" type="lock" style="color:rgba(0,0,0,.25)" />
        </a-input>
      </a-form-item>

      <a-form-item class="form-item">
        <a-button type="primary" style="width:100%" html-type="submit">登录</a-button>
      </a-form-item>
    </a-form>

  </div>
</template>
<script>
export default {
  name: 'Login',
  data() {
    return {
      userName: '',
      password: '',
      formLayout: 'horizontal',
      form: this.$form.createForm(this, { name: 'coordinated' }),
      rules: {
        userName: ['userName', { rules: [{ required: true, message: '请输入用户名!' }] }],
        password: ['password', { rules: [{ required: true, message: '请输入密码!' }] }],
      }
    }
  },
  methods: {
    // 登录
    handleSubmit(e) {
      e.preventDefault();
      this.form.validateFields((err, values) => {
        if (!err) {
          console.log('Received values of form: ', values);
          this.$router.push({ path: '/dashboard/home' })
        }
      });
    }
  }
}
</script>
<style lang="less" scoped>
.login-container {
  display: flex;
  flex-direction: column;
  height: 100vh;
  overflow: auto;
  background: #f0f2f5;
  width: 100%;
  background-image: url("../../assets/images/login-bg.svg");
  background-repeat: no-repeat;
  background-position: center 110px;
  background-size: 100%;
  .login-form {
    width: 400px;
    margin: 250px auto 0;
    .logo{
      text-align: center;
    }
  }
}
</style>