element NavMenu多级导航菜单渲染

第一步:新建一个组件navMenu.vue

html

<label v-for="(item, index) in navlist" :key="index">
	<el-submenu
        v-show="item.adminMenu.menuType == 'list'"
        :index="item.adminMenu.index.toString()"
        @mouseenter.native="collapseOpen(index)"
        @mouseleave.native="collapseClose(index)"
        @click="menuClick(item.adminMenu.index)">
      <template slot="title">
        <i
          :class="[
            item.adminMenu.icon,
            { legend: isHover && select === index },
          ]"
        ></i>
        <span :class="{legend: isHover && select === index}">{
   
   { item.adminMenu.d_department }}</span>
      </template>
      <NavMenu :navlist="item.children"></NavMenu>
    </el-submenu>
    <el-menu-item
      v-show="item.adminMenu.menuType == 'page'"
      :index="item.adminMenu.index.toString()"
      @mouseenter.native="collapseOpen(index)"
      @mouseleave.native="collapseClose(index)"
      @click="menuClick(item.adminMenu.index)"
    >
      <template slot="title">
        <!-- <i class="el-icon-s-cooperation"></i> -->
        <i
          :class="[
            item.adminMenu.icon,
            { legend: isHover && select === index },
          ]"
        ></i>
        <span :class="{legend: isHover && select === index}">{
   
   { item.adminMenu.d_department }}</span>
      </template>
    </el-menu-item>
    <el-menu-item
      v-show="item.adminMenu.menuType == 'menu'"
      :index="item.adminMenu.index.toString()"
      @mouseenter.native="collapseOpen(index)"
      @mouseleave.native="collapseClose(index)"
      @click="menuClick(item.adminMenu.index)">
      <i
          :class="[
            item.adminMenu.icon,
            { legend: isHover && select === index },
          ]"
        ></i>
      <span slot="title" :class="{legend: isHover && select === index}">{
   
   { item.adminMenu.d_department }}</span>
    </el-menu-item>      
</label>

javaScript

props: ["navlist"]
第二步:页面引用组件

html

<el-menu
	:default-active="$route.path"
    class="el-menu-vertical-demo"
    :collapse-transition="false"
    :unique-opened="true"
    @select="activationBtn"
    :collapse="$store.state.isCollapse"
>
    <NavMenu :navlist="list"></NavMenu>
</el-menu>

javaScript

// 假数据
list: [
        {
    
    
          adminMenu: {
    
    
            d_id: "",
            d_pid: "0",
            d_department: "系统首页",
            menuType: "list",
            index: "1",
            icon: 'iconfont icon-shouye-'
          },
          children: [
            {
    
    
              adminMenu: {
    
    
                d_id: "",
                d_pid: "",
                d_department: "工作台",
                menuType: "page",
                index: "1-1",
              },
            },
            {
    
    
              adminMenu: {
    
    
                d_id: "daf54c5d-a5d1-c045-677e-d0cffcaf4d9a",
                d_pid: "18340fd9-84bf-f470-b20b-428c70edbbc5",
                d_department: "数据统计",
                menuType: "page",
                index: "1-2",
              },
            },
          ],
        },
        {
    
    
          adminMenu: {
    
    
            d_id: "",
            d_pid: "0",
            d_department: "栏目管理",
            menuType: "menu",
            index: "/programManagement",
            icon: 'iconfont icon-liebiao-copy1'
          },
        },
        {
    
    
          adminMenu: {
    
    
            d_id: "",
            d_pid: "0",
            d_department: "文章管理",
            menuType: "list",
            index: "3",
            icon: 'iconfont icon-wenzhang2'
          },
          children: [
            {
    
    
              adminMenu: {
    
    
                d_id: "",
                d_pid: "",
                d_department: "文章列表",
                menuType: "page",
                index: "/essay"
              },
            },
            {
    
    
              adminMenu: {
    
    
                d_id: "",
                d_pid: "",
                d_department: "文章分类",
                menuType: "page",
                index: "/essaycategory"
              },
            },
            {
    
    
              adminMenu: {
    
    
                d_id: "",
                d_pid: "",
                d_department: "文章标签",
                menuType: "page",
                index: "/essay/tags"
              },
            },
          ],
        },
        {
    
    
          adminMenu: {
    
    
            d_id: "",
            d_pid: "0",
            d_department: "产品管理",
            menuType: "list",
            index: "4",
            icon: 'iconfont icon-chanpin'
          },
          children: [
            {
    
    
              adminMenu: {
    
    
                d_id: "",
                d_pid: "",
                d_department: "产品列表",
                menuType: "page",
                index: "/product"
              },
            },
            {
    
    
              adminMenu: {
    
    
                d_id: "",
                d_pid: "",
                d_department: "产品分类",
                menuType: "page",
                index: "/productCategory"
              },
            },
            {
    
    
              adminMenu: {
    
    
                d_id: "",
                d_pid: "",
                d_department: "产品标签",
                menuType: "page",
                index: "/productTags"
              },
            },
          ],
        },
        {
    
    
          adminMenu: {
    
    
            d_id: "",
            d_pid: "0",
            d_department: "图片管理",
            menuType: "list",
            index: "5",
            icon: 'iconfont icon-tupian'
          },
          children: [
            {
    
    
              adminMenu: {
    
    
                d_id: "",
                d_pid: "",
                d_department: "图片列表",
                menuType: "page",
                index: "5-1",
              },
            },
            {
    
    
              adminMenu: {
    
    
                d_id: "",
                d_pid: "",
                d_department: "设置水印",
                menuType: "page",
                index: "5-2",
              },
            },
            {
    
    
              adminMenu: {
    
    
                d_id: "",
                d_pid: "",
                d_department: "图片分类",
                menuType: "page",
                index: "/pictureCategory",
              },
            },
            {
    
    
              adminMenu: {
    
    
                d_id: "",
                d_pid: "",
                d_department: "图片标签",
                menuType: "page",
                index: "/pictureTags",
              },
            },
          ],
        },
        {
    
    
          adminMenu: {
    
    
            d_id: "",
            d_pid: "0",
            d_department: "视频管理",
            menuType: "list",
            index: "6",
            icon: 'iconfont icon-video-fill'
          },
          children: [
            {
    
    
              adminMenu: {
    
    
                d_id: "",
                d_pid: "",
                d_department: "视频列表",
                menuType: "page",
                index: "6-1",
              },
            },
            {
    
    
              adminMenu: {
    
    
                d_id: "",
                d_pid: "",
                d_department: "设置水印",
                menuType: "page",
                index: "6-2",
              },
            },
            {
    
    
              adminMenu: {
    
    
                d_id: "",
                d_pid: "",
                d_department: "视频分类",
                menuType: "page",
                index: "6-3",
              },
            },
          ],
        },
        {
    
    
          adminMenu: {
    
    
            d_id: "",
            d_pid: "0",
            d_department: "文件管理",
            menuType: "list",
            index: "7",
            icon: 'iconfont icon-wenjian'
          },
          children: [
            {
    
    
              adminMenu: {
    
    
                d_id: "",
                d_pid: "",
                d_department: "文件列表",
                menuType: "page",
                index: "/fileList",
              },
            },
            {
    
    
              adminMenu: {
    
    
                d_id: "",
                d_pid: "",
                d_department: "文件分类",
                menuType: "page",
                index: "/fileCategory",
              },
            },
            {
    
    
              adminMenu: {
    
    
                d_id: "",
                d_pid: "",
                d_department: "文件标签",
                menuType: "page",
                index: "/fileTags",
              },
            },
          ],
        },
        {
    
    
          adminMenu: {
    
    
            d_id: "",
            d_pid: "0",
            d_department: "留言管理",
            menuType: "menu",
            index: "8",
            icon: 'iconfont icon-liuyanfill'
          },
        },
        {
    
    
          adminMenu: {
    
    
            d_id: "",
            d_pid: "0",
            d_department: "拓展项管理",
            menuType: "list",
            index: "9",
            icon: 'iconfont icon-icon_huabanfuben'
          },
          children: [
            {
    
    
              adminMenu: {
    
    
                d_id: "",
                d_pid: "",
                d_department: "友情链接",
                menuType: "page",
                index: "9-1",
              },
            },
            {
    
    
              adminMenu: {
    
    
                d_id: "",
                d_pid: "",
                d_department: "网站联系信息",
                menuType: "page",
                index: "9-2",
              },
            },
            {
    
    
              adminMenu: {
    
    
                d_id: "",
                d_pid: "",
                d_department: "自媒体账号",
                menuType: "page",
                index: "9-3",
              },
            },
            {
    
    
              adminMenu: {
    
    
                d_id: "",
                d_pid: "",
                d_department: "隐私条款&版权信息",
                menuType: "page",
                index: "9-4",
              },
            },
          ],
        },
        {
    
    
          adminMenu: {
    
    
            d_id: "",
            d_pid: "0",
            d_department: "系统设置",
            menuType: "list",
            index: "10",
            icon: 'iconfont icon-weibiaoti103'
          },
          children: [
            {
    
    
              adminMenu: {
    
    
                d_id: "",
                d_pid: "",
                d_department: "网站设置",
                menuType: "page",
                index: "10-1",
              },
            },
            {
    
    
              adminMenu: {
    
    
                d_id: "",
                d_pid: "",
                d_department: "用户管理",
                menuType: "page",
                index: "10-2",
              },
            },
            {
    
    
              adminMenu: {
    
    
                d_id: "",
                d_pid: "",
                d_department: "敏感词设置",
                menuType: "page",
                index: "10-3",
              },
            },
            {
    
    
              adminMenu: {
    
    
                d_id: "",
                d_pid: "",
                d_department: "配置管理",
                menuType: "page",
                index: "10-4",
              },
            },
            {
    
    
              adminMenu: {
    
    
                d_id: "",
                d_pid: "",
                d_department: "操作日志",
                menuType: "page",
                index: "10-5",
              },
            },
          ],
        },
      ]

猜你喜欢

转载自blog.csdn.net/FJ101113/article/details/120654365