index.vue 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <template>
  2. <div class="login">
  3. <div class="form-box">
  4. <div class="login-text">
  5. <img src="@/assets/image/titleIcon.png" alt="" />
  6. </div>
  7. <el-form ref="form" :model="form" :rules="loginRules">
  8. <el-form-item prop="account">
  9. <el-input
  10. maxlength="11"
  11. v-model.trim="form.account"
  12. prefix-icon="el-icon-user"
  13. placeholder="请输入"
  14. onkeyup="this.value=this.value.replace(/[.]/g,'');"
  15. ></el-input>
  16. </el-form-item>
  17. <el-form-item prop="password">
  18. <el-input
  19. prefix-icon="el-icon-lock"
  20. placeholder="请输入"
  21. v-model="form.password"
  22. show-password
  23. @keyup.enter.native="loginFun"
  24. ></el-input>
  25. </el-form-item>
  26. <el-button type="primary" class="loginButton" @click="loginFun"
  27. >登录
  28. </el-button>
  29. </el-form>
  30. </div>
  31. </div>
  32. </template>
  33. <script>
  34. import { login } from '@/api/login'
  35. import { mapMutations } from 'vuex'
  36. export default {
  37. name: 'Login',
  38. data() {
  39. const validateUsername = (rule, value, callback) => {
  40. if (!/^1[3456789]\d{9}$/.test(value)) {
  41. callback(new Error('请输入正确的手机号'))
  42. } else {
  43. callback()
  44. }
  45. }
  46. const validateUser = (rule, value, callback) => {
  47. if (!/^1[3456789]\d{9}$/.test(value)) {
  48. callback(new Error('请输入正确的手机号'))
  49. } else {
  50. callback()
  51. }
  52. }
  53. const validatePass = (rule, value, callback) => {
  54. if (value.length < 5) {
  55. callback(new Error('密码不能小于5位'))
  56. } else {
  57. callback()
  58. }
  59. }
  60. return {
  61. form: {
  62. account: '',
  63. password: ''
  64. },
  65. loginRules: {
  66. // account: [{ required: true, trigger: 'blur', validator: validateUser }],
  67. password: [{ required: true, trigger: 'blur', validator: validatePass }]
  68. }
  69. }
  70. },
  71. mounted() {
  72. this.clearRouter()
  73. },
  74. methods: {
  75. ...mapMutations({
  76. clearRouter: 'permission/ClEAR_LIST'
  77. }),
  78. loginFun() {
  79. // ? this.$md5(this.form.password) : ''
  80. let params = {
  81. account: this.form.account,
  82. password: this.form.password
  83. }
  84. login(params).then(res => {
  85. localStorage.setItem('Token', res.data.token)
  86. localStorage.setItem('userInfo', JSON.stringify(res.data))
  87. this.$store.commit('getLoginReturnInformation', res.data)
  88. sessionStorage.setItem('currentPage', '/index')
  89. this.$router.push('/index')
  90. })
  91. }
  92. }
  93. }
  94. </script>
  95. <style lang="less" scoped>
  96. @import 'index.less';
  97. </style>