From 06d52deb60040d968c3f69d625f9cd52ecbdac4c Mon Sep 17 00:00:00 2001 From: RuoYi <yzz_ivy@163.com> Date: 星期二, 22 四月 2025 11:48:56 +0800 Subject: [PATCH] 优化代码 --- src/views/login.vue | 32 +++++++++++++++++++++++--------- 1 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/views/login.vue b/src/views/login.vue index d60e73f..e6856a0 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -1,7 +1,7 @@ <template> <div class="login"> <el-form ref="loginRef" :model="loginForm" :rules="loginRules" class="login-form"> - <h3 class="title">鑻ヤ緷鍚庡彴绠$悊绯荤粺</h3> + <h3 class="title">{{ title }}</h3> <el-form-item prop="username"> <el-input v-model="loginForm.username" @@ -25,7 +25,7 @@ <template #prefix><svg-icon icon-class="password" class="el-input__icon input-icon" /></template> </el-input> </el-form-item> - <el-form-item prop="code" v-if="captchaOnOff"> + <el-form-item prop="code" v-if="captchaEnabled"> <el-input v-model="loginForm.code" size="large" @@ -59,7 +59,7 @@ </el-form> <!-- 搴曢儴 --> <div class="el-login-footer"> - <span>Copyright 漏 2018-2022 ruoyi.vip All Rights Reserved.</span> + <span>Copyright 漏 2018-2025 ruoyi.vip All Rights Reserved.</span> </div> </div> </template> @@ -70,7 +70,9 @@ import { encrypt, decrypt } from "@/utils/jsencrypt"; import useUserStore from '@/store/modules/user' -const userStore = useUserStore() +const title = import.meta.env.VITE_APP_TITLE; +const userStore = useUserStore(); +const route = useRoute(); const router = useRouter(); const { proxy } = getCurrentInstance(); @@ -91,10 +93,14 @@ const codeUrl = ref(""); const loading = ref(false); // 楠岃瘉鐮佸紑鍏� -const captchaOnOff = ref(true); +const captchaEnabled = ref(true); // 娉ㄥ唽寮�鍏� const register = ref(false); const redirect = ref(undefined); + +watch(route, (newRoute) => { + redirect.value = newRoute.query && newRoute.query.redirect; +}, { immediate: true }); function handleLogin() { proxy.$refs.loginRef.validate(valid => { @@ -113,11 +119,18 @@ } // 璋冪敤action鐨勭櫥褰曟柟娉� userStore.login(loginForm.value).then(() => { - router.push({ path: redirect.value || "/" }); + const query = route.query; + const otherQueryParams = Object.keys(query).reduce((acc, cur) => { + if (cur !== "redirect") { + acc[cur] = query[cur]; + } + return acc; + }, {}); + router.push({ path: redirect.value || "/", query: otherQueryParams }); }).catch(() => { loading.value = false; // 閲嶆柊鑾峰彇楠岃瘉鐮� - if (captchaOnOff.value) { + if (captchaEnabled.value) { getCode(); } }); @@ -127,8 +140,8 @@ function getCode() { getCodeImg().then(res => { - captchaOnOff.value = res.captchaOnOff === undefined ? true : res.captchaOnOff; - if (captchaOnOff.value) { + captchaEnabled.value = res.captchaEnabled === undefined ? true : res.captchaEnabled; + if (captchaEnabled.value) { codeUrl.value = "data:image/gif;base64," + res.img; loginForm.value.uuid = res.uuid; } @@ -170,6 +183,7 @@ background: #ffffff; width: 400px; padding: 25px 25px 5px 25px; + z-index: 1; .el-input { height: 40px; input { -- Gitblit v1.9.3