Login.vue 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <template>
  2. <div class="login-flex">
  3. <div class="login">
  4. <div class="logo"><img src="img/logo_blue.png" /></div>
  5. <a-form @submit="loginAction">
  6. <div>
  7. <a-select
  8. style="width: 100%; text-align: left"
  9. v-model:value="server"
  10. :options="servers"
  11. placeholder="请选择服务地址"
  12. >
  13. </a-select>
  14. </div>
  15. <div>
  16. <a-input
  17. v-model:value="loginName"
  18. id="loginName-input"
  19. type="text"
  20. placeholder="请输入账号"
  21. />
  22. </div>
  23. <div>
  24. <a-input
  25. v-model:value="password"
  26. id="password-input"
  27. type="password"
  28. placeholder="请输入密码"
  29. @press-enter="loginAction"
  30. />
  31. </div>
  32. <div><a href="##" id="login-button" @click="loginAction">登录</a></div>
  33. </a-form>
  34. </div>
  35. <div class="ft">
  36. Copyright © 2011-2021 www.qmth.com.cn, All Rights Reserved
  37. </div>
  38. </div>
  39. </template>
  40. <script setup lang="ts">
  41. import { onMounted, ref } from "vue";
  42. import { store } from "@/store";
  43. import { login } from "@/api/api";
  44. import { useRouter } from "vue-router";
  45. const router = useRouter();
  46. let server = ref(null);
  47. const servers = store.config.servers.map((v) => {
  48. return { label: v.name, value: v.host };
  49. });
  50. let loginName = ref("");
  51. let password = ref("");
  52. // FIXME: restore original state
  53. // onMounted(() => {
  54. // window.localStorage.clear();
  55. // });
  56. // server.value = "http://192.168.10.224:80";
  57. // loginName.value = "admin-test";
  58. // password.value = "123456";
  59. const loginAction = () => {
  60. Object.assign(store.env, {
  61. server: store.config.servers.find((v) => v.host === server.value),
  62. loginName: loginName.value,
  63. password: password.value,
  64. });
  65. if (!server.value) {
  66. alert("请选择服务地址");
  67. return;
  68. }
  69. if (!loginName.value) {
  70. alert("请输入账号");
  71. return;
  72. }
  73. if (!password.value) {
  74. alert("请输入密码");
  75. return;
  76. }
  77. login()
  78. .then((res) => {
  79. Object.assign(store.env.user, res.data);
  80. router.push("/exam-list");
  81. })
  82. .catch((err) => {
  83. console.log(err);
  84. alert("登陆失败,用户名或密码错误");
  85. });
  86. };
  87. </script>