vue后台路由都是以admin开头的,这样无限级菜单从admin开始,大家也是这么搞的吗?

我的意思就是渲染无限极菜单的时候要跳过admin层

        <MenuTree :data="routers[0].children"></MenuTree>
<template>
  <div>
    <label v-for="menu in data" :key="menu.name">
      <el-sub-menu :index="menu.name" v-if="menu.children">
        <template #title>
          <el-icon>
            <location/>
          </el-icon>
          <span>{{menu.meta.title}}</span>
        </template>
        <MenuTree :data="menu.children"></MenuTree>
      </el-sub-menu>
      <el-menu-item v-else :index="menu.name">
        <span slot="title">{{menu.name}}</span>
      </el-menu-item>
    </label>
  </div>
</template>
<script>
export default {
  name: "MenuTree",
  data() {
    return {
    };
  },
  components: {
    // MenuTree: MenuTree
  },
  props: ["data"],
};
</script>
const permissionRouters = [
    {
        path: '/admin',
        name: 'admin',
        meta: {
            title: '管理员页', 'icon': '',active: 0,
        },
        component: () => import('./pages/Layout.vue'),
        children: [
            {
                path: 'crawler',
                name: 'crawler',
                meta: {
                    title: '爬虫', 'icon': '',active: 0,
                },
                children: [
                    {
                        name: 'list',
                        path: 'list',
                        meta: {
                            title: '爬虫列表', 'icon': '',active: 0,
                        },
                        component: () => import('./pages/Crawler.vue')
                    },
                    {
                        path: 'edit',
                        name: 'edit',
                        meta: {
                            title: '爬虫编辑', 'icon': '',active: 0,
                        },
                        component: () => import('./components/HelloWorld.vue')
                    }
                ]
            },
            {
                path: 'crawler',
                name: 'crawler1',
                meta: {
                    title: '爬虫', 'icon': '',active: 0,
                },
                children: [
                    {
                        name: 'list1',
                        path: 'list',
                        meta: {
                            title: '爬虫列表', 'icon': '',active: 0,
                        },
                        component: () => import('./pages/Crawler.vue')
                    },
                    {
                        path: 'edit1',
                        name: 'edit',
                        meta: {
                            title: '爬虫编辑', 'icon': '',active: 0,
                        },
                        component: () => import('./components/HelloWorld.vue')
                    }
                ]
            }
        ]
    }
]
阅读 1.7k
2 个回答

?????
所以你的管理后台和前台的展示页面放在一个项目里面的?

还是说因为部署在了二级目录,所以你增加了一个 /admin 菜单?


放在一起的话,可以直接取下标 1 开始。如果还有其他的菜单也会有隐藏的这种的,可以在 meta 中配置 hidden 属性,循环的时候判断一下就好了。

可以在meta中新增一个标识表示显隐的,然后在遍历时去根据这个标识判断要不要显示这层菜单

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题