mirror of
https://github.com/apache/skywalking-booster-ui.git
synced 2025-05-12 15:52:57 +00:00
feat: add activate
This commit is contained in:
parent
d27a1833cd
commit
a3b040d495
@ -29,37 +29,39 @@ limitations under the License. -->
|
||||
:style="{ border: 'none' }"
|
||||
>
|
||||
<template v-for="(menu, index) in routes" :key="index">
|
||||
<el-sub-menu :index="String(menu.name)" v-if="menu.meta.hasGroup" popper-class="sub-list">
|
||||
<template #title>
|
||||
<router-link class="items" :to="menu.path">
|
||||
<el-icon class="menu-icons" :style="{ marginRight: '12px' }" @mouseover="setCollapse">
|
||||
<Icon size="lg" :iconName="menu.meta.icon" />
|
||||
</el-icon>
|
||||
<span class="title" :class="isCollapse ? 'collapse' : ''">
|
||||
{{ menu.meta.title }}
|
||||
</span>
|
||||
</router-link>
|
||||
</template>
|
||||
<el-menu-item-group>
|
||||
<el-menu-item v-for="(m, idx) in filterMenus(menu.children)" :index="m.name" :key="idx">
|
||||
<router-link class="items" :to="m.path">
|
||||
<span class="title">{{ m.meta && m.meta.title }}</span>
|
||||
<span v-if="menu.meta.activate">
|
||||
<el-sub-menu :index="String(menu.name)" v-if="menu.meta.hasGroup" popper-class="sub-list">
|
||||
<template #title>
|
||||
<router-link class="items" :to="menu.path">
|
||||
<el-icon class="menu-icons" :style="{ marginRight: '12px' }" @mouseover="setCollapse">
|
||||
<Icon size="lg" :iconName="menu.meta.icon" />
|
||||
</el-icon>
|
||||
<span class="title" :class="isCollapse ? 'collapse' : ''">
|
||||
{{ menu.meta.title }}
|
||||
</span>
|
||||
</router-link>
|
||||
</el-menu-item>
|
||||
</el-menu-item-group>
|
||||
</el-sub-menu>
|
||||
<el-menu-item :index="String(menu.name)" @click="changePage(menu)" v-else>
|
||||
<el-icon class="menu-icons" :style="{ marginRight: '12px' }" @mouseover="setCollapse">
|
||||
<router-link class="items menu-title" :to="menu.children[0].path">
|
||||
<Icon size="lg" :iconName="menu.meta.icon" />
|
||||
</router-link>
|
||||
</el-icon>
|
||||
<template #title>
|
||||
<router-link class="items menu-title" :to="menu.children[0].path">
|
||||
<span class="title">{{ menu.meta.title }}</span>
|
||||
</router-link>
|
||||
</template>
|
||||
</el-menu-item>
|
||||
</template>
|
||||
<el-menu-item-group>
|
||||
<el-menu-item v-for="(m, idx) in filterMenus(menu.children)" :index="m.name" :key="idx">
|
||||
<router-link class="items" :to="m.path">
|
||||
<span class="title">{{ m.meta && m.meta.title }}</span>
|
||||
</router-link>
|
||||
</el-menu-item>
|
||||
</el-menu-item-group>
|
||||
</el-sub-menu>
|
||||
<el-menu-item :index="String(menu.name)" @click="changePage(menu)" v-else>
|
||||
<el-icon class="menu-icons" :style="{ marginRight: '12px' }" @mouseover="setCollapse">
|
||||
<router-link class="items menu-title" :to="menu.children[0].path">
|
||||
<Icon size="lg" :iconName="menu.meta.icon" />
|
||||
</router-link>
|
||||
</el-icon>
|
||||
<template #title>
|
||||
<router-link class="items menu-title" :to="menu.children[0].path">
|
||||
<span class="title">{{ menu.meta.title }}</span>
|
||||
</router-link>
|
||||
</template>
|
||||
</el-menu-item>
|
||||
</span>
|
||||
</template>
|
||||
</el-menu>
|
||||
</div>
|
||||
@ -95,7 +97,7 @@ limitations under the License. -->
|
||||
theme.value = ["VirtualMachine", "Kubernetes"].includes(String(menu.name)) ? "light" : "black";
|
||||
};
|
||||
const filterMenus = (menus: Recordable[]) => {
|
||||
return menus.filter((d) => d.meta && !d.meta.notShow);
|
||||
return menus.filter((d) => d.meta && !d.meta.notShow && d.meta.activate);
|
||||
};
|
||||
function setCollapse() {
|
||||
open.value = true;
|
||||
|
@ -25,6 +25,7 @@ export const routesAlarm: Array<RouteRecordRaw> = [
|
||||
title: "Alerting",
|
||||
icon: "spam",
|
||||
hasGroup: false,
|
||||
activate: true,
|
||||
},
|
||||
component: Layout,
|
||||
children: [
|
||||
|
@ -26,6 +26,7 @@ export const routesDashboard: Array<RouteRecordRaw> = [
|
||||
title: "Dashboards",
|
||||
icon: "dashboard_customize",
|
||||
hasGroup: true,
|
||||
activate: true,
|
||||
},
|
||||
children: [
|
||||
{
|
||||
@ -34,6 +35,7 @@ export const routesDashboard: Array<RouteRecordRaw> = [
|
||||
name: "List",
|
||||
meta: {
|
||||
title: "Dashboard List",
|
||||
activate: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -42,6 +44,7 @@ export const routesDashboard: Array<RouteRecordRaw> = [
|
||||
name: "New",
|
||||
meta: {
|
||||
title: "New Dashboard",
|
||||
activate: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
|
@ -21,7 +21,7 @@ import type { MenuOptions } from "@/types/app";
|
||||
async function layerDashboards() {
|
||||
const appStore = useAppStoreWithOut();
|
||||
await appStore.getActivateMenus();
|
||||
const routes = appStore.activateMenus.map((item: MenuOptions) => {
|
||||
const routes = appStore.allMenus.map((item: MenuOptions) => {
|
||||
const route: any = {
|
||||
path: "",
|
||||
name: item.name,
|
||||
@ -30,6 +30,7 @@ async function layerDashboards() {
|
||||
icon: item.icon || "cloud_queue",
|
||||
title: item.title,
|
||||
hasGroup: item.hasGroup,
|
||||
activate: item.activate,
|
||||
},
|
||||
children: item.subItems && item.subItems.length ? [] : undefined,
|
||||
};
|
||||
@ -41,6 +42,7 @@ async function layerDashboards() {
|
||||
title: child.title,
|
||||
layer: child.layer,
|
||||
icon: child.icon || "cloud_queue",
|
||||
activate: child.activate,
|
||||
},
|
||||
component: () => import("@/views/Layer.vue"),
|
||||
};
|
||||
@ -65,6 +67,7 @@ async function layerDashboards() {
|
||||
title: item.title,
|
||||
layer: item.layer,
|
||||
icon: item.icon,
|
||||
activate: item.activate,
|
||||
},
|
||||
component: () => import("@/views/Layer.vue"),
|
||||
},
|
||||
|
@ -25,6 +25,7 @@ export const routesMarketplace: Array<RouteRecordRaw> = [
|
||||
title: "Marketplace",
|
||||
icon: "marketplace",
|
||||
hasGroup: true,
|
||||
activate: true,
|
||||
},
|
||||
component: Layout,
|
||||
children: [
|
||||
@ -33,6 +34,7 @@ export const routesMarketplace: Array<RouteRecordRaw> = [
|
||||
name: "MenusManagement",
|
||||
meta: {
|
||||
title: "Categories",
|
||||
activate: true,
|
||||
},
|
||||
component: () => import("@/views/marketplace/Menus.vue"),
|
||||
},
|
||||
@ -41,6 +43,7 @@ export const routesMarketplace: Array<RouteRecordRaw> = [
|
||||
name: "Settings",
|
||||
meta: {
|
||||
title: "Settings",
|
||||
activate: true,
|
||||
},
|
||||
component: () => import("@/views/marketplace/Settings.vue"),
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user