Kaynağa Gözat

Fix 修复隐藏的导航菜单目录还显示

YueYunyun 1 yıl önce
ebeveyn
işleme
cf43c0b08d

+ 1 - 0
UI/VAP_V3.VUE/src/core/types/Menu.ts

@@ -36,6 +36,7 @@ export interface MenuRouteMap {
 export interface MenuItem {
 	parentName?: string
 	heading?: string
+	hidden?: boolean
 	sectionTitle?: string
 	route?: string
 	pages?: MenuItem[]

+ 6 - 6
UI/VAP_V3.VUE/src/layouts/main/sidebar/_SidebarMenu.vue

@@ -35,7 +35,7 @@ onMounted(() => {
 				class="menu menu-column menu-rounded menu-sub-indention px-3"
 				data-vb-menu="true">
 				<template v-for="(item, i) in sidebarMenus" :key="i">
-					<div v-if="item.heading" class="menu-item pt-5">
+					<div v-if="item.heading && !item.hidden" class="menu-item pt-5">
 						<div class="menu-content">
 							<span class="menu-heading fw-bold text-uppercase fs-7">
 								{{ item.heading }}
@@ -43,7 +43,7 @@ onMounted(() => {
 						</div>
 					</div>
 					<template v-for="(menuItem, j) in item.pages" :key="j">
-						<template v-if="menuItem.heading">
+						<template v-if="menuItem.heading && !menuItem.hidden">
 							<div class="menu-item">
 								<router-link
 									v-if="menuItem.route"
@@ -65,7 +65,7 @@ onMounted(() => {
 							</div>
 						</template>
 						<div
-							v-if="menuItem.sectionTitle && menuItem.route"
+							v-if="menuItem.sectionTitle && menuItem.route && !menuItem.hidden"
 							:class="{ show: hasActiveChildren(menuItem.route) }"
 							class="menu-item menu-accordion"
 							data-vb-menu-sub="accordion"
@@ -88,7 +88,7 @@ onMounted(() => {
 								:class="{ show: hasActiveChildren(menuItem.route) }"
 								class="menu-sub menu-sub-accordion">
 								<template v-for="(item2, k) in menuItem.sub" :key="k">
-									<div v-if="item2.heading" class="menu-item">
+									<div v-if="item2.heading && !item2.hidden" class="menu-item">
 										<router-link
 											v-if="item2.route"
 											class="menu-link"
@@ -112,7 +112,7 @@ onMounted(() => {
 										</router-link>
 									</div>
 									<div
-										v-if="item2.sectionTitle && item2.route"
+										v-if="item2.sectionTitle && item2.route && !item2.hidden"
 										:class="{ show: hasActiveChildren(item2.route) }"
 										class="menu-item menu-accordion"
 										data-vb-menu-sub="accordion"
@@ -141,7 +141,7 @@ onMounted(() => {
 											:class="{ show: hasActiveChildren(item2.route) }"
 											class="menu-sub menu-sub-accordion">
 											<template v-for="(item3, k) in item2.sub" :key="k">
-												<div v-if="item3.heading" class="menu-item">
+												<div v-if="item3.heading && !item3.hidden" class="menu-item">
 													<router-link
 														v-if="item3.route"
 														class="menu-link"

+ 1 - 0
UI/VAP_V3.VUE/src/stores/_menu.ts

@@ -131,6 +131,7 @@ export const useMenuStore = defineStore("menu", () => {
 		const item: MenuItem = {
 			// sectionTitle: fun.displayName,
 			parentName: menu.parentName,
+			hidden: menu.hidden,
 			bootstrapIcon: checkBootstrapIcon(menu.icon ?? "")
 				? `bi bi-${menu.icon}`
 				: menuMap?.bootstrapIcon ?? "bi bi-front",