zhangxiao
2024-08-20 e47b788ff5f5c699c682999c95da17eb284ca21d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<template>
    <template v-if="layoutMode === 'mix'">
        <a-layout-sider v-if="routeList.length > 0">
            <Menu :route-list="routeList"></Menu>
        </a-layout-sider>
    </template>
    <template v-else>
        <Menu :route-list="routeList"></Menu>
    </template>
</template>
<script lang="ts" setup>
import { getRouteParent } from "@/packages/vue-router";
import Menu from "../menu/index.vue";
import global from "@/config/pinia/global";
import routes from "@/config/pinia/routes";
const layoutMode = computed(() => {
    return global().app.layout;
});
 
const routeList = computed(() => {
    if (layoutMode.value === "left") {
        return routes().routes;
    } else if (layoutMode.value === "mix") {
        const matched = getRouteParent();
        const matchedChildren = matched[0]?.children || [];
        if (matchedChildren[0]?.meta?.hidden) {
            return [];
        }
        return matched[0]?.children || [];
    } else {
        return [];
    }
});
</script>
<style lang="scss" scoped></style>