fix: remove activateMenus

This commit is contained in:
Fine 2023-07-11 22:19:00 +08:00
parent 11666922a9
commit f3f0a8e395
3 changed files with 37 additions and 48 deletions

View File

@ -29,39 +29,37 @@ limitations under the License. -->
:style="{ border: 'none' }" :style="{ border: 'none' }"
> >
<template v-for="(menu, index) in routes" :key="index"> <template v-for="(menu, index) in routes" :key="index">
<span v-if="menu.meta.activate"> <el-sub-menu :index="String(menu.name)" v-if="menu.meta.hasGroup" popper-class="sub-list">
<el-sub-menu :index="String(menu.name)" v-if="menu.meta.hasGroup" popper-class="sub-list"> <template #title>
<template #title> <router-link class="items" :to="menu.path">
<router-link class="items" :to="menu.path"> <el-icon class="menu-icons" :style="{ marginRight: '12px' }" @mouseover="setCollapse">
<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>
</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" /> <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>
</router-link> </router-link>
</el-icon> </el-menu-item>
<template #title> </el-menu-item-group>
<router-link class="items menu-title" :to="menu.children[0].path"> </el-sub-menu>
<span class="title">{{ menu.meta.title }}</span> <el-menu-item :index="String(menu.name)" @click="changePage(menu)" v-else>
</router-link> <el-icon class="menu-icons" :style="{ marginRight: '12px' }" @mouseover="setCollapse">
</template> <router-link class="items menu-title" :to="menu.children[0].path">
</el-menu-item> <Icon size="lg" :iconName="menu.meta.icon" />
</span> </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> </template>
</el-menu> </el-menu>
</div> </div>
@ -77,9 +75,12 @@ limitations under the License. -->
/*global Recordable*/ /*global Recordable*/
const appStore = useAppStoreWithOut(); const appStore = useAppStoreWithOut();
const name = ref<string>(String(useRouter().currentRoute.value.name)); const router = useRouter();
const name = ref<string>(String(router.currentRoute.value.name));
const theme = ["VirtualMachine", "Kubernetes"].includes(name.value || "") ? ref("light") : ref("black"); const theme = ["VirtualMachine", "Kubernetes"].includes(name.value || "") ? ref("light") : ref("black");
const routes = ref<RouteRecordRaw[] | any>(useRouter().options.routes); const routes = ref<RouteRecordRaw[] | any>(
(router.options.routes || []).filter((d: any) => d.meta && d.meta.activate),
);
const route = useRoute(); const route = useRoute();
const isCollapse = ref(true); const isCollapse = ref(true);
const showMenu = ref(true); const showMenu = ref(true);

View File

@ -36,7 +36,6 @@ interface AppState {
version: string; version: string;
isMobile: boolean; isMobile: boolean;
reloadTimer: Nullable<IntervalHandle>; reloadTimer: Nullable<IntervalHandle>;
activateMenus: MenuOptions[];
allMenus: MenuOptions[]; allMenus: MenuOptions[];
} }
@ -58,7 +57,6 @@ export const appStore = defineStore({
version: "", version: "",
isMobile: false, isMobile: false,
reloadTimer: null, reloadTimer: null,
activateMenus: [],
allMenus: [], allMenus: [],
}), }),
getters: { getters: {
@ -165,8 +163,8 @@ export const appStore = defineStore({
}, },
async getActivateMenus() { async getActivateMenus() {
const resp = (await this.queryMenuItems()) || {}; const resp = (await this.queryMenuItems()) || {};
this.allMenus = resp.getMenuItems || [];
const menus = this.allMenus.map((d: MenuOptions, index: number) => { this.allMenus = (resp.getMenuItems || []).map((d: MenuOptions, index: number) => {
const t = `${d.title.replace(/\s+/g, "-")}`; const t = `${d.title.replace(/\s+/g, "-")}`;
d.name = `${t}-${index}`; d.name = `${t}-${index}`;
d.path = `/${t}`; d.path = `/${t}`;
@ -182,16 +180,6 @@ export const appStore = defineStore({
return d; return d;
}); });
this.activateMenus = menus.filter((d: MenuOptions) => {
if (d.activate) {
d.subItems = d.subItems.filter((item: SubItem) => {
if (item.activate) {
return item;
}
});
return d;
}
});
}, },
async queryOAPTimeInfo() { async queryOAPTimeInfo() {
const res: AxiosResponse = await graphql.query("queryOAPTimeInfo").params({}); const res: AxiosResponse = await graphql.query("queryOAPTimeInfo").params({});

View File

@ -56,7 +56,7 @@ limitations under the License. -->
const { t } = useI18n(); const { t } = useI18n();
const appStore = useAppStoreWithOut(); const appStore = useAppStoreWithOut();
const currentItems = ref<MenuOptions>(appStore.activateMenus[0] || {}); const currentItems = ref<MenuOptions>(appStore.allMenus[0] || {});
function handleItems(item: MenuOptions) { function handleItems(item: MenuOptions) {
currentItems.value = item; currentItems.value = item;