userlogin.vue 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <template>
  2. <el-form class="login-form"
  3. status-icon
  4. :rules="loginRules"
  5. ref="loginForm"
  6. :model="loginForm"
  7. label-width="0">
  8. <el-form-item v-if="tenantMode" prop="tenantCode">
  9. <el-input size="small"
  10. @keyup.enter.native="handleLogin"
  11. v-model="loginForm.tenantCode"
  12. auto-complete="off"
  13. :placeholder="$t('login.tenantCode')">
  14. <i slot="prefix"
  15. class="icon-quanxian"></i>
  16. </el-input>
  17. </el-form-item>
  18. <el-form-item prop="username">
  19. <el-input size="small"
  20. @keyup.enter.native="handleLogin"
  21. v-model="loginForm.username"
  22. auto-complete="off"
  23. :placeholder="$t('login.username')">
  24. <i slot="prefix"
  25. class="icon-yonghu"></i>
  26. </el-input>
  27. </el-form-item>
  28. <el-form-item prop="password">
  29. <el-input size="small"
  30. @keyup.enter.native="handleLogin"
  31. :type="passwordType"
  32. v-model="loginForm.password"
  33. auto-complete="off"
  34. :placeholder="$t('login.password')">
  35. <i class="el-icon-view el-input__icon"
  36. slot="suffix"
  37. @click="showPassword"></i>
  38. <i slot="prefix"
  39. class="icon-mima"></i>
  40. </el-input>
  41. </el-form-item>
  42. <el-form-item>
  43. <el-button type="primary"
  44. size="small"
  45. @click.native.prevent="handleLogin"
  46. class="login-submit">{{$t('login.submit')}}</el-button>
  47. </el-form-item>
  48. </el-form>
  49. </template>
  50. <script>
  51. import { mapGetters } from "vuex";
  52. import website from '@/config/website';
  53. export default {
  54. name: "userlogin",
  55. data() {
  56. return {
  57. tenantMode: website.tenantMode,
  58. loginForm: {
  59. tenantCode: "000000",
  60. username: "admin",
  61. password: "admin",
  62. type: "account"
  63. },
  64. loginRules: {
  65. tenantCode: [
  66. { required: false, message: "请输入租户编号", trigger: "blur" }
  67. ],
  68. username: [
  69. { required: true, message: "请输入用户名", trigger: "blur" }
  70. ],
  71. password: [
  72. { required: true, message: "请输入密码", trigger: "blur" },
  73. { min: 5, message: "密码长度最少为6位", trigger: "blur" }
  74. ]
  75. },
  76. passwordType: "password"
  77. };
  78. },
  79. created() {},
  80. mounted() {},
  81. computed: {
  82. ...mapGetters(["tagWel"])
  83. },
  84. props: [],
  85. methods: {
  86. showPassword() {
  87. this.passwordType == ""
  88. ? (this.passwordType = "password")
  89. : (this.passwordType = "");
  90. },
  91. handleLogin() {
  92. this.$refs.loginForm.validate(valid => {
  93. if (valid) {
  94. this.$store.dispatch("LoginByUsername", this.loginForm).then(() => {
  95. this.$router.push({ path: this.tagWel.value });
  96. });
  97. }
  98. });
  99. }
  100. }
  101. };
  102. </script>
  103. <style>
  104. </style>