CodeMaster/node_modules/.cache/vue-loader/a00561229ff48077cb0f6ce6f72d6485.json
2025-04-06 20:20:57 +08:00

1 line
5.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=style&index=0&id=7b6953ac&scoped=true&lang=stylus","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/components/common/UserLogin.vue","mtime":1743265761132},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/css-loader/dist/cjs.js","mtime":1743264596127},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/loaders/stylePostLoader.js","mtime":1743264597030},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/postcss-loader/src/index.js","mtime":1743264596321},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/stylus-loader/index.js","mtime":1743264596421},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/style-resources-loader/lib/index.js","mtime":1743264596701},{"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:Ci5sb2dpbi1mb3JtCiAgd2lkdGggMzAwcHgKICBwYWRkaW5nIDIwcHgKICB0ZXh0LWFsaWduIGxlZnQKICBib3JkZXItcmFkaXVzIDVweAogIGJhY2tncm91bmQtY29sb3Igd2hpdGUKICBib3gtc2hhZG93IDAgMCA1cHggbGlnaHRncmV5CgoudGl0bGUKICBkaXNwbGF5IGZsZXgKICBqdXN0aWZ5LWNvbnRlbnQgY2VudGVyCiAgYWxpZ24taXRlbXMgY2VudGVyCiAgbWFyZ2luLWJvdHRvbSAyNHB4CiAgZm9udC1zaXplIDI0cHgKICAqOmxhc3QtY2hpbGQKICAgIG1hcmdpbi1sZWZ0IDEwcHgKCi5pZGVudGl0eQogIGRpc3BsYXkgZmxleAogIGZsZXgtZmxvdyByb3cgbm93cmFwCiAganVzdGlmeS1jb250ZW50IHNwYWNlLWJldHdlZW4KCi5sb2dpbi1mb3JtLWJvdHRvbQogIG1hcmdpbi1ib3R0b20gMAogIC5sb2dpbi1idXR0b24KICAgIG1hcmdpbi1ib3R0b20gMjBweAoKLmNvZGUtaW5wdXQKICBkaXNwbGF5IGZsZXgKICBhbGlnbi1pdGVtcyBjZW50ZXIKICBoZWlnaHQgMzJweAogIC5jb2RlID4+PgogICAgY3Vyc29yIHBvaW50ZXIKICAgIG1pbi13aWR0aCAxMDBweAo="},{"version":3,"sources":["UserLogin.vue"],"names":[],"mappings":";AA6GA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;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"]}]}