index.vue 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <template>
  2. <div class="login-body">
  3. <el-form ref="formRef" :model="formValue" :rules="formRules" label-position="left" label-width="0px" size="large">
  4. <el-form-item prop="username">
  5. <el-input v-model="formValue.username" clearable placeholder="账号" />
  6. </el-form-item>
  7. <el-form-item class="mt-8" prop="password">
  8. <el-input v-model="formValue.password" clearable placeholder="密码" show-password type="password" @keyup="passwordKeyUp" />
  9. </el-form-item>
  10. <el-form-item>
  11. <el-checkbox v-model="checkbox" label="记住密码" />
  12. </el-form-item>
  13. <el-form-item class="mt-8">
  14. <el-button :loading="loading" block type="primary" @click="formValidateClick">登 录</el-button>
  15. </el-form-item>
  16. </el-form>
  17. </div>
  18. </template>
  19. <script setup>
  20. import { onMounted, ref } from 'vue'
  21. import { useRouter } from 'vue-router'
  22. import { useAppStore } from '~src/store'
  23. import { formValidate } from 'js-fast-way'
  24. //初始化
  25. const router = useRouter()
  26. const store = useAppStore()
  27. onMounted(() => {
  28. store.clearStoreData() //先清理下缓存
  29. })
  30. //表单
  31. const formRef = ref(null)
  32. const checkbox = ref(false)
  33. const formValue = ref({ username: '', password: '' })
  34. const formRules = {
  35. username: {
  36. required: true,
  37. message: '请输入账号',
  38. trigger: 'blur',
  39. },
  40. password: {
  41. required: true,
  42. message: '请输入密码',
  43. trigger: 'blur',
  44. },
  45. }
  46. const passwordKeyUp = (e) => {
  47. if (e.key === 'Enter') {
  48. formValidateClick()
  49. }
  50. }
  51. //登录
  52. const loading = ref(false)
  53. const formValidateClick = async () => {
  54. const formRes = await formValidate(formRef.value)
  55. if (!formRes) return false
  56. }
  57. </script>
  58. <style lang="scss">
  59. @import "~src/styles/view/login.scss";
  60. </style>