前端和json优化
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="change-home" v-if="isAdmin">
|
||||
<div class="change-home">
|
||||
<div class="change-home-item" @click="changeHome">
|
||||
<span v-if="home">前往用户页</span>
|
||||
<span v-else>前往管理页</span>
|
||||
@@ -10,14 +10,8 @@
|
||||
import { ref, onMounted } from 'vue';
|
||||
import { useRouter } from 'vue-router';
|
||||
|
||||
const isAdmin = ref<boolean>(false);
|
||||
const home = ref<boolean>(false);
|
||||
const router = useRouter();
|
||||
const routes = router.getRoutes();
|
||||
|
||||
function hasAdmin(){
|
||||
return routes.some((route: any) => route.path.startsWith('/admin'));
|
||||
}
|
||||
|
||||
function changeHome(){
|
||||
if(home.value){
|
||||
@@ -27,10 +21,7 @@ function changeHome(){
|
||||
}
|
||||
home.value = !home.value;
|
||||
}
|
||||
onMounted(() => {
|
||||
isAdmin.value = hasAdmin();
|
||||
home.value = router.currentRoute.value.path.startsWith('/admin');
|
||||
});
|
||||
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
</style>
|
||||
@@ -65,9 +65,8 @@
|
||||
</div>
|
||||
<div class="dropdown-divider" v-if="userMenus.length > 0"></div>
|
||||
<div class="dropdown-footer">
|
||||
<div class="dropdown-item info">
|
||||
<div class="dropdown-item info" v-if="isAdmin">
|
||||
<img class="item-icon icon-logout" src="@/assets/imgs/admin-home.svg" alt="切换页面">
|
||||
|
||||
<ChangeHome />
|
||||
</div>
|
||||
<div class="dropdown-item danger" @click="handleLogout">
|
||||
@@ -82,7 +81,7 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, computed } from 'vue';
|
||||
import { ref, computed, onMounted } from 'vue';
|
||||
import { useRouter } from 'vue-router';
|
||||
import { useStore } from 'vuex';
|
||||
import type { UserVO, SysMenu } from '@/types';
|
||||
@@ -90,6 +89,10 @@ import { ChangeHome } from '@/components/base';
|
||||
import userIcon from '@/assets/imgs/user.svg';
|
||||
import settingsIcon from '@/assets/imgs/settings.svg';
|
||||
import { FILE_DOWNLOAD_URL } from '@/config';
|
||||
const router = useRouter();
|
||||
|
||||
const routes = router.getRoutes();
|
||||
|
||||
// Props
|
||||
interface Props {
|
||||
user?: UserVO | null;
|
||||
@@ -110,9 +113,8 @@ const dropdownPosition = ref({ top: 0, left: 0 });
|
||||
const closeTimer = ref<number | null>(null);
|
||||
|
||||
// Composition API
|
||||
const router = useRouter();
|
||||
const store = useStore();
|
||||
|
||||
const isAdmin = ref<boolean>(false);
|
||||
// 计算属性
|
||||
const isLoggedIn = computed(() => {
|
||||
return store.getters['auth/isAuthenticated'];
|
||||
@@ -131,6 +133,12 @@ const primaryRole = computed(() => {
|
||||
// 这里可以从store中获取用户角色信息
|
||||
return store.getters['auth/userRoles'][0].roleName || '';
|
||||
});
|
||||
function hasAdmin(){
|
||||
return routes.some((route: any) => route.path.startsWith('/admin'));
|
||||
}
|
||||
onMounted(() => {
|
||||
isAdmin.value = hasAdmin();
|
||||
});
|
||||
|
||||
// 获取用户下拉菜单(个人中心和账号中心)
|
||||
const userMenus = computed(() => {
|
||||
|
||||
Reference in New Issue
Block a user