SubMenu.vue 1.31 KB
Newer Older
1 2
<template>
  <div>
3
    <template v-for="(item) in subMenuList">
4 5
      <el-submenu
        v-if="item.children && item.children.length > 0"
6 7
        :key="item.index"
        :index="item.index"
8 9
      >
        <template slot="title">
10 11 12 13 14
          <i
            class="el-icon-caret-bottom"
            v-if="getOpenFlag(item.index)"
          ></i>
          <i class="el-icon-caret-right" v-else></i>
liushikai committed
15
          <!-- <img :src="item.icon" alt=""> -->
16 17
          <span>{{ item.name }}</span>
        </template>
18
        <SubMenu :subMenuList="item.children" :openFlgArr="openFlgArr" />
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
      </el-submenu>
      <el-menu-item v-else :key="item.path" :index="item.path">
        <template slot="title">
          <i :class="item.icon"></i>
          <span>{{ item.name }}</span>
        </template>
      </el-menu-item>
    </template>
  </div>
</template>

<script>
import SubMenu from "./SubMenu.vue";

export default {
34
  name: "SubMenu",
35
  components: { SubMenu },
36 37 38 39 40 41
  props: ["subMenuList", "openFlgArr"],
  methods: {
    getOpenFlag(index) {
      return this.openFlgArr.includes(index);
    },
  },
42 43 44 45
};
</script>

<style>
46 47 48 49 50 51 52
.el-menu--collapse > div > .el-menu-item span,
.el-menu--collapse > div > .el-submenu > .el-submenu__title span {
  height: 0;
  width: 0;
  overflow: hidden;
  visibility: hidden;
  display: inline-block;
53 54
}
</style>