Login.vue 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <template>
  2. <div class="login-container">
  3. <el-form :model="loginForm" status-icon :rules="rules" ref="loginForm" autocomplete="off" class="login-form">
  4. <h3 class="title">资源管理平台</h3>
  5. <el-form-item prop="userName" class="el-form-item">
  6. <el-input v-model="loginForm.userName" name="userName" type="text" autocomplete="off" placeholder="账号"/>
  7. </el-form-item>
  8. <el-form-item prop="password" class="el-form-item">
  9. <el-input type="password" v-model="loginForm.password" autocomplete="off" show-password placeholder="密码"/>
  10. </el-form-item>
  11. <el-form-item>
  12. <el-button type="primary" @click="submitForm('loginForm')">登录</el-button>
  13. </el-form-item>
  14. </el-form>
  15. </div>
  16. </template>
  17. <script>
  18. import { mapGetters } from 'vuex'
  19. export default {
  20. name: 'Login',
  21. data() {
  22. var checkUserName = (rule, value, callback) => {
  23. if (!value) {
  24. return callback(new Error('账号不能为空'));
  25. }else {
  26. callback();
  27. }
  28. };
  29. var validatePass = (rule, value, callback) => {
  30. if (value === '') {
  31. callback(new Error('请输入密码'));
  32. } else {
  33. callback();
  34. }
  35. };
  36. return {
  37. loginForm: {
  38. userName: '',
  39. password: ''
  40. },
  41. rules: {
  42. userName: [
  43. { validator: checkUserName, trigger: 'blur' }
  44. ],
  45. password: [
  46. { validator: validatePass, trigger: 'blur' }
  47. ]
  48. }
  49. };
  50. },
  51. computed: {
  52. // 使用对象展开运算符将 getter 混入 computed 对象中
  53. ...mapGetters([
  54. 'flag'
  55. ])
  56. },
  57. methods: {
  58. submitForm(formName) {
  59. this.$refs[formName].validate((valid) => {
  60. if (valid) {
  61. // console.log(this.loginForm.userName);
  62. // const userName = this.loginForm.userName;
  63. // const password = this.loginForm.password;
  64. this.$store.dispatch('Login', this.loginForm).then(() => {
  65. this.$router.push({ path: '/nav/nav1' })
  66. }).catch(() => {
  67. alert('登录失败');
  68. })
  69. //alert('submit!');
  70. } else {
  71. console.log('error submit!!');
  72. return false;
  73. }
  74. });
  75. },
  76. // resetForm(formName) {
  77. // alert(flag);
  78. // }
  79. }
  80. }
  81. </script>
  82. <style lang="less">
  83. .login-container {
  84. width: 100%;
  85. height: 100%;
  86. background: #2d3a4b;
  87. .login-form {
  88. position: absolute;
  89. left: 0;
  90. right: 0;
  91. width: 520px;
  92. max-width: 100%;
  93. padding: 35px 35px 15px 35px;
  94. margin: 120px auto;
  95. text-align: center;
  96. box-sizing: border-box;
  97. .title {
  98. margin-bottom:30px;
  99. color: #fff;
  100. }
  101. .el-form-item__label {
  102. color:#fff;
  103. }
  104. .el-input input{
  105. background: transparent;
  106. border: 0px;
  107. -webkit-appearance: none;
  108. border-radius: 0px;
  109. padding: 12px 5px 12px 15px;
  110. border: 1px solid rgba(255, 255, 255, 0.1);
  111. background: rgba(0, 0, 0, 0.1);
  112. border-radius: 5px;
  113. color: #fff;
  114. height: 47px;
  115. }
  116. }
  117. }
  118. </style>