login.vue 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <script setup lang="ts">
  2. import { reactive, onBeforeMount } from "vue";
  3. import info, { ContextProps } from "../components/ReInfo/index.vue";
  4. import { getVerify, getLogin } from "/@/api/user";
  5. import { useRouter } from "vue-router";
  6. import { storageSession } from "/@/utils/storage";
  7. import { warnMessage, successMessage } from "/@/utils/message";
  8. const router = useRouter();
  9. // 刷新验证码
  10. const refreshGetVerify = async () => {
  11. let { svg } = await getVerify();
  12. contextInfo.svg = svg;
  13. };
  14. const contextInfo: ContextProps = reactive({
  15. userName: "",
  16. passWord: "",
  17. verify: null,
  18. svg: null
  19. });
  20. const toPage = (info: Object): void => {
  21. storageSession.setItem("info", info);
  22. router.push("/");
  23. };
  24. // 登录
  25. const onLogin = async () => {
  26. let { userName, passWord, verify } = contextInfo;
  27. let { code, info, accessToken } = await getLogin({
  28. username: userName,
  29. password: passWord,
  30. verify: verify
  31. });
  32. code === 0
  33. ? successMessage(info) &&
  34. toPage({
  35. username: userName,
  36. accessToken
  37. })
  38. : warnMessage(info);
  39. };
  40. const refreshVerify = (): void => {
  41. refreshGetVerify();
  42. };
  43. onBeforeMount(() => {
  44. // refreshGetVerify();
  45. });
  46. </script>
  47. <template>
  48. <div class="login">
  49. <info
  50. :ruleForm="contextInfo"
  51. @on-behavior="onLogin"
  52. @refreshVerify="refreshVerify"
  53. />
  54. </div>
  55. </template>