1 line
6.8 KiB
JSON
1 line
6.8 KiB
JSON
{"remainingRequest":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/components/common/UserLogin.vue?vue&type=script&lang=js","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/components/common/UserLogin.vue","mtime":1743265761132},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/babel-loader/lib/index.js","mtime":1743264596348},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js","mtime":1743264596512}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:CmltcG9ydCB7IGxvZ2luIH0gZnJvbSAiQC9hcGkvaW5kZXgiOwoKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICJMb2dpbiIsCiAgZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIGxvYWRpbmc6IGZhbHNlLAogICAgICBzdmc6ICIiLAogICAgICBmb3JtRGF0YTogewogICAgICAgIHNUSWQ6ICIyMTMwMTAxMjciLAogICAgICAgIHBhc3N3b3JkOiAiMDEyNyIsCiAgICAgIH0sCiAgICAgIHJ1bGVzOiB7CiAgICAgICAgc1RJZDogeyByZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZTogIuivt+i+k+WFpeWtpuWPty/lt6Xlj7fvvIEiIH0sCiAgICAgICAgcGFzc3dvcmQ6IHsgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICLor7fovpPlhaXlr4bnoIHvvIEiIH0sCiAgICAgIH0sCiAgICB9OwogIH0sCiAgbWV0aG9kczogewogICAgYXN5bmMgb25TdWJtaXQoZSkgewogICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgIHRyeSB7CiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsKICAgICAgICBhd2FpdCB0aGlzLiRyZWZzLmZvcm0udmFsaWRhdGUoKTsKICAgICAgICAvLyDnlKjmiLfnmbvlvZUKICAgICAgICBsZXQgZm9ybURhdGEgPSB7CiAgICAgICAgICBzVElkOiB0aGlzLmZvcm1EYXRhLnNUSWQsCiAgICAgICAgICBwYXNzd29yZDogdGhpcy5mb3JtRGF0YS5wYXNzd29yZCwKICAgICAgICB9OwogICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGxvZ2luKGZvcm1EYXRhKTsKICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7CiAgICAgICAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oInRva2VuIiwgcmVzLmRhdGEpOyAvLyDkvb/nlKggZGlzcGF0Y2gg5pa55rOV6Kem5Y+RIGFjdGlvbgogICAgICAgICAgdGhpcy4kc3RvcmUuZGlzcGF0Y2goImluaXRVc2VyIik7CiAgICAgICAgICBhd2FpdCB0aGlzLiRyb3V0ZXIucmVwbGFjZSh7IHBhdGg6ICIvIiB9KS5jYXRjaCgoZSkgPT4gZSk7CiAgICAgICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MoYCR7dGltZUZpeCgpfe+8jOasoui/juWbnuadpWApOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKGVycm9yKTsKICAgICAgICB9CiAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCLnmbvlvZXlpLHotKXor7fmo4Dmn6XotKblj7fmiJblr4bnoIEiIHx8IGUpOwogICAgICAgIGlmICghZSkgcmV0dXJuOyAvLyDooajljZXmoKHpqowKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTsKICAgICAgfQogICAgfSwKICB9LAp9OwoKZnVuY3Rpb24gdGltZUZpeCgpIHsKICBjb25zdCB0aW1lID0gbmV3IERhdGUoKTsKICBjb25zdCBob3VyID0gdGltZS5nZXRIb3VycygpOwogIHJldHVybiBob3VyIDwgOQogICAgPyAi5pep5LiK5aW9IgogICAgOiBob3VyIDw9IDExCiAgICA/ICLkuIrljYjlpb0iCiAgICA6IGhvdXIgPD0gMTMKICAgID8gIuS4reWNiOWlvSIKICAgIDogaG91ciA8IDIwCiAgICA/ICLkuIvljYjlpb0iCiAgICA6ICLmmZrkuIrlpb0iOwp9Cg=="},{"version":3,"sources":["UserLogin.vue"],"names":[],"mappings":";AA6CA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"UserLogin.vue","sourceRoot":"src/components/common","sourcesContent":["<template>\n <div class=\"login-form\">\n <div class=\"title\">\n <a-avatar src=\"/logo.png\" :size=\"50\" />\n <span>竞赛管理系统</span>\n </div>\n <a-form-model\n layout=\"vertical\"\n ref=\"form\"\n :model=\"formData\"\n :rules=\"rules\"\n @submit=\"onSubmit\"\n >\n <a-form-model-item ref=\"sTId\" prop=\"sTId\">\n <a-input v-model=\"formData.sTId\" placeholder=\"学号/工号\">\n <a-icon\n slot=\"prefix\"\n type=\"user\"\n style=\"color: rgba(0, 0, 0, 0.25)\"\n />\n </a-input>\n </a-form-model-item>\n <a-form-model-item ref=\"password\" prop=\"password\">\n <a-input-password v-model=\"formData.password\" placeholder=\"密码\">\n <a-icon\n slot=\"prefix\"\n type=\"lock\"\n style=\"color: rgba(0, 0, 0, 0.25)\"\n />\n </a-input-password>\n </a-form-model-item>\n <a-button\n type=\"primary\"\n html-type=\"submit\"\n class=\"login-button\"\n :loading=\"loading\"\n block\n >\n 登录\n </a-button>\n </a-form-model>\n </div>\n</template>\n\n<script>\nimport { login } from \"@/api/index\";\n\nexport default {\n name: \"Login\",\n data() {\n return {\n loading: false,\n svg: \"\",\n formData: {\n sTId: \"213010127\",\n password: \"0127\",\n },\n rules: {\n sTId: { required: true, message: \"请输入学号/工号!\" },\n password: { required: true, message: \"请输入密码!\" },\n },\n };\n },\n methods: {\n async onSubmit(e) {\n e.preventDefault();\n try {\n this.loading = true;\n await this.$refs.form.validate();\n // 用户登录\n let formData = {\n sTId: this.formData.sTId,\n password: this.formData.password,\n };\n const res = await login(formData);\n if (res.code == 200) {\n window.localStorage.setItem(\"token\", res.data); // 使用 dispatch 方法触发 action\n this.$store.dispatch(\"initUser\");\n await this.$router.replace({ path: \"/\" }).catch((e) => e);\n this.$message.success(`${timeFix()},欢迎回来`);\n } else {\n this.$message.error(error);\n }\n } catch (e) {\n this.$message.error(\"登录失败请检查账号或密码\" || e);\n if (!e) return; // 表单校验\n } finally {\n this.loading = false;\n }\n },\n },\n};\n\nfunction timeFix() {\n const time = new Date();\n const hour = time.getHours();\n return hour < 9\n ? \"早上好\"\n : hour <= 11\n ? \"上午好\"\n : hour <= 13\n ? \"中午好\"\n : hour < 20\n ? \"下午好\"\n : \"晚上好\";\n}\n</script>\n\n<style scoped lang=\"stylus\">\n.login-form\n width 300px\n padding 20px\n text-align left\n border-radius 5px\n background-color white\n box-shadow 0 0 5px lightgrey\n\n.title\n display flex\n justify-content center\n align-items center\n margin-bottom 24px\n font-size 24px\n *:last-child\n margin-left 10px\n\n.identity\n display flex\n flex-flow row nowrap\n justify-content space-between\n\n.login-form-bottom\n margin-bottom 0\n .login-button\n margin-bottom 20px\n\n.code-input\n display flex\n align-items center\n height 32px\n .code >>>\n cursor pointer\n min-width 100px\n</style>\n"]}]} |