login.vue 1.7 KB

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