login.vue 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. <template>
  2. <div id="login" class="loginForm">
  3. <el-form :model="form" :rules="formRules">
  4. <el-form-item prop="account">
  5. <el-input v-model="form.account"
  6. placeholder="请输入账号"
  7. prefix-icon="el-icon-user"
  8. style="width: 280px"></el-input>
  9. </el-form-item>
  10. <el-form-item prop="password">
  11. <el-input v-model="form.password"
  12. prefix-icon="el-icon-lock"
  13. placeholder="请输入密码"
  14. type="password"
  15. style="width: 280px"></el-input>
  16. </el-form-item>
  17. <el-form-item prop="verifyCode">
  18. <div>
  19. <el-input v-model="form.verifyCode"
  20. prefix-icon="el-icon-circle-check"
  21. placeholder="请输入图形验证码"
  22. style="width: 140px;
  23. float: left;
  24. margin-right: 10px"
  25. ></el-input>
  26. <img @click="handleRefreshVerifyCode" class="verify-img" :src="verifyCodeUrl" style="cursor: pointer"
  27. alt="">
  28. </div>
  29. </el-form-item>
  30. <div>
  31. <el-button @click="login" type="primary" style="margin-left: 100px;background-color: lightslategrey;color: black">登录
  32. </el-button>
  33. </div>
  34. </el-form>
  35. </div>
  36. </template>
  37. <script>
  38. export default {
  39. name: "login",
  40. data() {
  41. return {
  42. form: {
  43. account: '',
  44. password: '',
  45. verifyCode: '',
  46. },
  47. formErrorMsg: {
  48. account: '',
  49. password: '',
  50. verifyCode: '',
  51. },
  52. formRules: {
  53. account: [
  54. {required: true, message: '请输入账号', trigger: 'blur'},
  55. ],
  56. password: [
  57. {required: true, message: '请输入密码', trigger: 'blur'},
  58. ],
  59. verifyCode: [
  60. {required: true, message: '请输入验证码', trigger: 'blur'},
  61. ]
  62. },
  63. verifyCodeUrl: this.$api.auth.verifyCode,
  64. };
  65. },
  66. created() {
  67. this.handleRefreshVerifyCode();
  68. },
  69. methods: {
  70. handleRefreshVerifyCode() {
  71. this.verifyCodeUrl = (this.$api.auth.verifyCode + "?t=" + new Date().getTime());
  72. },
  73. login() {
  74. const vm = this;
  75. vm.$http.get(vm.$api.auth.login, {
  76. params: {
  77. account: this.form.account,
  78. password: this.form.password,
  79. verifyCode: this.form.verifyCode,
  80. }
  81. }).then((resp) => {
  82. if (resp.data.status === 200) {
  83. vm.$message({
  84. type: "success",
  85. message: resp.data.desc
  86. });
  87. vm.$router.push({
  88. path: '/',
  89. query: {userBean: resp.data.data.userBean}
  90. });
  91. }
  92. if (resp.data.status === 400) {
  93. vm.$message({
  94. type: "error",
  95. message: resp.data.data.errorFields[0].message
  96. });
  97. }
  98. if (resp.data.status === 500) {
  99. vm.$message({
  100. type: "error",
  101. message: resp.data.desc
  102. });
  103. }
  104. })
  105. }
  106. },
  107. }
  108. </script>
  109. <style scoped>
  110. .el-form {
  111. width: 360px;
  112. height: 360px;
  113. margin-left: 60px;
  114. margin-top: 30px;
  115. }
  116. .verify-img {
  117. width: 130px;
  118. height: 40px;
  119. }
  120. .loginForm{
  121. padding: 10px;
  122. width: 400px;
  123. height: 290px;
  124. margin-left: 38%;
  125. margin-top: 16%;
  126. background-color: whitesmoke;
  127. }
  128. </style>