Login.vue 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <template>
  2. <div class="admin-login__loginForm">
  3. <el-form :model="loginForm" status-icon :rules="loginRules" ref="LoginForm" label-width="100px">
  4. <el-form-item label="用户名:" prop="username">
  5. <el-input type="text" v-model="loginForm.username"></el-input>
  6. </el-form-item>
  7. <el-form-item label="密码:" prop="password">
  8. <el-input type="password" v-model="loginForm.password" autocomplete="off"></el-input>
  9. </el-form-item>
  10. <el-form-item>
  11. <div class="admin-login-btns">
  12. <el-button class="login-btn__login" type="primary" @click="handleLogin('LoginForm')">登录</el-button>
  13. </div>
  14. </el-form-item>
  15. </el-form>
  16. </div>
  17. </template>
  18. <script>
  19. export default {
  20. name: 'Login',
  21. data() {
  22. return {
  23. loginForm: {
  24. username: '',
  25. password: '',
  26. },
  27. loginRules: {
  28. username: [
  29. { required: true, message: '请输入用户名', trigger: 'blur' },
  30. ],
  31. password: [
  32. { required: true, message: '请输入密码', trigger: 'blur' },
  33. ],
  34. },
  35. }
  36. },
  37. methods: {
  38. handleLogin(formName) {
  39. this.$refs[formName].validate((valid) => {
  40. if (valid) {
  41. console.log('submit')
  42. this.doLogin()
  43. } else {
  44. console.log('err')
  45. return false
  46. }
  47. })
  48. },
  49. doLogin() {
  50. const opt = this.getOption();
  51. console.log('Options: ', opt)
  52. },
  53. getOption() {
  54. const opt = {
  55. username: '',
  56. password: ''
  57. }
  58. return opt;
  59. }
  60. }
  61. };
  62. </script>
  63. <style lang="scss" scoped>
  64. $text_color: #ccc;
  65. .admin-login {
  66. &__loginForm {
  67. ::v-deep .el-form-item__label {
  68. color: $text_color;
  69. }
  70. }
  71. &-btns {
  72. .login-btn {
  73. &__login {
  74. width: 100%;
  75. }
  76. }
  77. }
  78. }
  79. </style>