login.vue 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <template>
  2. <div class="mac_bg"></div>
  3. <div class="login animate__animated" :class="{ animate__bounceOut: pass }">
  4. <div class="head">
  5. <img
  6. src="https://avatar.gitee.com/uploads/61/632261_smallweigit.jpg!avatar100?1518660401"
  7. alt=""
  8. />
  9. </div>
  10. <div class="message">Login Please</div>
  11. <div class="form">
  12. <div class="item" :class="isUserNameError ? 'error' : ''">
  13. <input class="account" placeholder="account here..." v-model="form.username" type="email" />
  14. </div>
  15. <div class="item" :class="isUserPasswordError ? 'error' : ''">
  16. <input
  17. class="password"
  18. placeholder="password here..."
  19. v-model="form.password"
  20. type="password"
  21. />
  22. <i class="iconfont icon-send" @click="handleLogin"></i>
  23. </div>
  24. </div>
  25. </div>
  26. </template>
  27. <script>
  28. import { mapGetters } from 'vuex';
  29. export default {
  30. data() {
  31. return {
  32. pass: false,
  33. isUserNameError: false,
  34. isUserPasswordError: false,
  35. form: {
  36. username: '',
  37. password: '',
  38. },
  39. };
  40. },
  41. computed: {
  42. ...mapGetters(['tagWel']),
  43. },
  44. methods: {
  45. handleLogin() {
  46. if (this.form.username == '') {
  47. this.isUserNameError = true;
  48. setTimeout(() => {
  49. this.isUserNameError = false;
  50. }, 1000);
  51. return;
  52. return;
  53. } else if (this.form.password == '') {
  54. this.isUserPasswordError = true;
  55. setTimeout(() => {
  56. this.isUserPasswordError = false;
  57. }, 1000);
  58. return;
  59. }
  60. this.$store.dispatch('LoginByUsername', this.loginForm).then(() => {
  61. this.pass = true;
  62. setTimeout(() => {
  63. this.$router.push(this.tagWel);
  64. }, 1000);
  65. });
  66. },
  67. },
  68. };
  69. </script>
  70. <style scoped>
  71. @import url('./login.css');
  72. </style>