From c5fe5bf3cb9bd1bf3383a1a431ac37f640485783 Mon Sep 17 00:00:00 2001 From: RuoYi <yzz_ivy@163.com> Date: 星期四, 31 八月 2023 11:47:54 +0800 Subject: [PATCH] 修改未登录访问需要登录的资源,在登录后重定向丢失请求参数问题 --- src/views/login.vue | 26 +++++++++++++++++++------- 1 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/views/login.vue b/src/views/login.vue index d60e73f..8d3119a 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -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-2023 ruoyi.vip All Rights Reserved.</span> </div> </div> </template> @@ -71,6 +71,7 @@ import useUserStore from '@/store/modules/user' const userStore = useUserStore() +const route = useRoute(); const router = useRouter(); const { proxy } = getCurrentInstance(); @@ -91,10 +92,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 +118,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 +139,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; } -- Gitblit v1.9.3