student_login.vue 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <template>
  2. <div>
  3. <el-form ref="loginRef" :model="loginForm" :rules="loginRules" class="login-form">
  4. <h3 class="title">{{ title }}</h3>
  5. <el-form-item prop="username">
  6. <el-input
  7. v-model="loginForm.username"
  8. type="text"
  9. size="large"
  10. auto-complete="off"
  11. placeholder="身份证号"
  12. >
  13. <template #prefix>
  14. <svg-icon icon-class="user" class="el-input__icon input-icon"/>
  15. </template>
  16. </el-input>
  17. </el-form-item>
  18. <el-form-item prop="password">
  19. <el-input
  20. v-model="loginForm.password"
  21. type="password"
  22. size="large"
  23. auto-complete="off"
  24. placeholder="密码"
  25. @keyup.enter="handleLogin"
  26. >
  27. <template #prefix>
  28. <svg-icon icon-class="password" class="el-input__icon input-icon"/>
  29. </template>
  30. </el-input>
  31. </el-form-item>
  32. <el-form-item style="width:100%;">
  33. <el-button
  34. :loading="loading"
  35. size="large"
  36. type="primary"
  37. style="width:100%;"
  38. @click.prevent="handleLogin"
  39. >
  40. <span v-if="!loading">登 录</span>
  41. <span v-else>登 录 中...</span>
  42. </el-button>
  43. <el-button @click="forgetPass">忘记密码</el-button>
  44. <div style="float: right;" v-if="register">
  45. <router-link class="link-type" :to="'/register'">立即注册</router-link>
  46. </div>
  47. </el-form-item>
  48. </el-form>
  49. </div>
  50. </template>
  51. <script setup>
  52. import {login} from '@/api/login'
  53. import useUserStore from '@/store/modules/user'
  54. import { setToken } from '@/utils/auth'
  55. const userStore = useUserStore()
  56. const {proxy} = getCurrentInstance()
  57. const router = useRouter()
  58. const route = useRoute()
  59. const params = route.query
  60. const loading = ref(false)
  61. const loginForm = ref({
  62. username: "",
  63. password: "",
  64. loginType: "1",
  65. rememberMe: false,
  66. code: "",
  67. uuid: ""
  68. })
  69. const loginRules = {
  70. username: [{required: true, trigger: "blur", message: "请输入您的身份证号"}],
  71. password: [{required: true, trigger: "blur", message: "请输入您的密码"}],
  72. }
  73. function handleLogin() {
  74. proxy.$refs.loginRef.validate(valid => {
  75. if (valid) {
  76. loading.value = true
  77. // 调用action的登录方法
  78. loginForm.value.loginType = "1"
  79. login(loginForm.value.username, loginForm.value.password, null, null, loginForm.value.loginType).then(resp => {
  80. setToken(resp.data.access_token)
  81. router.push({
  82. path: params.modulePath
  83. })
  84. })
  85. }
  86. })
  87. }
  88. function forgetPass() {
  89. router.push({
  90. path : '/xjc-integratedmachine/login/student_forgetpass',
  91. query:{
  92. modulePath : params.modulePath
  93. }
  94. })
  95. }
  96. </script>
  97. <style scoped>
  98. </style>