From d8b570430066fae42d6884671cef541fc820de1c Mon Sep 17 00:00:00 2001 From: 马宇豪 <978517621@qq.com> Date: 星期五, 15 十一月 2024 14:42:44 +0800 Subject: [PATCH] 动态路由 --- src/views/components/loginForm.vue | 90 +++++++++++++------------------------------- 1 files changed, 27 insertions(+), 63 deletions(-) diff --git a/src/views/components/loginForm.vue b/src/views/components/loginForm.vue index e6d1833..7d4fd1b 100644 --- a/src/views/components/loginForm.vue +++ b/src/views/components/loginForm.vue @@ -46,10 +46,6 @@ <img :src="codeUrl" @click="getCode" class="login-code-img"/> </div> </el-form-item> - <!-- <el-radio-group v-model="loginForm.role" class="mb5">--> - <!-- <el-radio :label="0" size="large">监管部门</el-radio>--> - <!-- <el-radio :label="1" size="large">机构管理员</el-radio>--> - <!-- </el-radio-group>--> <div style="display: flex;justify-content: space-between;align-items: center;margin-bottom: 25px"> <div class="btn-cont"> <button class="login-btn" @click.prevent="handleLogin"> @@ -74,16 +70,17 @@ </template> <script setup> -import {onMounted, ref, watch, defineAsyncComponent, nextTick} from "vue" +import {onMounted, ref, watch, defineAsyncComponent, nextTick, computed} from "vue" import { getCodeImg } from "@/api/login"; import Cookies from "js-cookie"; import { encrypt, decrypt } from "@/utils/jsencrypt"; import useUserStore from '@/store/modules/user' import { Register } from "@/layout/components"; import { Base64 } from 'js-base64' -import menu from "@/layout/components/Sidebar/menu"; import ExpertForm from "../safetyReview/expertManage/applyRecords/components/expertForm"; - +import usePermissionStore from '@/store/modules/permission' +const permissionStore = usePermissionStore() +const sidebarRouters = computed(() => permissionStore.sidebarRouters); const userStore = useUserStore() const route = useRoute(); const router = useRouter(); @@ -93,8 +90,7 @@ username: "", password: "", code: "", - uuid: "", - role: 0 + uuid: "" }); const loginRules = { @@ -113,7 +109,7 @@ const redirect = ref(undefined); onMounted(()=>{ - Cookies.remove("userState"); + }) const openRegist = ()=>{ @@ -123,10 +119,6 @@ watch(route, (newRoute) => { redirect.value = newRoute.query && newRoute.query.redirect; }, { immediate: true }); - - -const sidebarRouters = ref([]) - const expertFormRef = ref() @@ -154,7 +146,8 @@ // 勾选了需要记住密码设置在 cookie 中设置记住用户名和密码 // if (loginForm.value.rememberMe) { Cookies.set("username", loginForm.value.username, { expires: 30 }); - Cookies.set("password", encrypt(loginForm.value.password), { expires: 30 }); + Cookies.set("password", loginForm.value.password, { expires: 30 }); + // Cookies.set("password", encrypt(loginForm.value.password), { expires: 30 }); // Cookies.set("rememberMe", loginForm.value.rememberMe, { expires: 30 }); // } else { // 否则移除 @@ -166,48 +159,19 @@ // loginForm.value.password = Base64.encode(loginForm.value.password) const param = { username: loginForm.value.username, - password: Base64.encode(loginForm.value.password), + password: loginForm.value.password, code: loginForm.value.code, uuid: loginForm.value.uuid, - identity: loginForm.value.role } userStore.login(param).then(() => { - // const query = route.query; - // const otherQueryParams = Object.keys(query).reduce((acc, cur) => { - // if (cur !== "redirect") { - // acc[cur] = query[cur]; - // } - // return acc; - // }, {}); - const userInfo = JSON.parse(Cookies.get('userInfo')) - if(userInfo.identity === 0 ) { - //监管用户 - sidebarRouters.value = menu.adminMenu - Cookies.set('routers',JSON.stringify(sidebarRouters.value)) - }else if(userInfo.identity === 1) { - const userState = JSON.parse(Cookies.get('userState')) - console.log("userState",userState) - //机构用户 - //未审核状态不显示菜单 - if(userState !==2 ){ - sidebarRouters.value = menu.noMenu - Cookies.set('routers',JSON.stringify(sidebarRouters.value)) - }else { - sidebarRouters.value = menu.agencyMenu - Cookies.set('routers',JSON.stringify(sidebarRouters.value)) - } + const query = route.query; + const otherQueryParams = Object.keys(query).reduce((acc, cur) => { + if (cur !== "redirect") { + acc[cur] = query[cur]; } - let path = "" - if(sidebarRouters.value[0].children && sidebarRouters.value[0].children.length > 0){ - path = sidebarRouters.value[0].path + '/'+ sidebarRouters.value[0].children[0].path - }else { - path = sidebarRouters.value[0].path - } - - router.push({ - path: path - }) - // router.push({ path: redirect.value || "/", query: otherQueryParams }); + return acc; + }, {}); + router.push({ path: redirect.value || "/", query: otherQueryParams }); }).catch(() => { loading.value = false; // 重新获取验证码 @@ -221,22 +185,22 @@ function getCode() { getCodeImg().then(res => { - captchaEnabled.value = res.data.captchaEnabled === undefined ? true : res.captchaEnabled + captchaEnabled.value = res.captchaEnabled === undefined ? true : res.captchaEnabled if (captchaEnabled.value) { - codeUrl.value = "data:image/gif;base64," + res.data.image - loginForm.value.uuid = res.data.uuid + codeUrl.value = "data:image/gif;base64," + res.img + loginForm.value.uuid = res.uuid } }); } -// function getCookie() { -// const username = Cookies.get("username") -// const password = Cookies.get("password") -// loginForm.value = { -// username: username === undefined ? loginForm.value.username : username, -// password: password === undefined ? loginForm.value.password : decrypt(password), -// }; -// } +function getCookie() { + const username = Cookies.get("username") + const password = Cookies.get("password") + loginForm.value = { + username: username === undefined ? loginForm.value.username : username, + password: password === undefined ? loginForm.value.password : decrypt(password), + }; +} getCode(); // getCookie(); -- Gitblit v1.9.2