使用element-ui二次封裝一個可復用樹形菜單組件


源碼鏈接:樹形菜單組件

<template>
    <div>
        <div v-for="item in menus" :key="item.id" :index="item.menuUrl">
            <!-- 有子菜單 -->
            <el-submenu :index="item.menuUrl" v-if="item.children">
                <template slot="title" >
                    <i :class="item.menuIcon" style="width:30px;"></i>
                    <span slot="title"  style="margin-left:10px;" >{{ item.menuName }}</span>
                </template>
                <tree-menu :menus="item.children" ></tree-menu>
            </el-submenu>
            <!-- 無子菜單 -->
            <el-menu-item :index="item.menuUrl" v-else >
                <i :class="item.menuIcon" style="width:30px;"></i>
                <span slot="title" style="margin-left:10px;">{{ item.menuName }}</span>
            </el-menu-item>
        </div>
    </div>
</template>
<script>
    export default {
        props: ['menus'],
        name: 'tree-menu',
    }
    
</script>

使用時:

<template>
  <el-row class="main-wrap">
    <el-col :span="3" class="left-nav">
      <el-menu
        class="left-nav-list"
        :router='true'
        background-color="#070916"
        text-color="#fff"
        :default-active="$route.path"
      >
        <tree-menu :menus="leftmenus"></tree-menu>
      </el-menu>
    </el-col>
    <el-col :span="21" class="right-content">
      <transition name="fade" mode="out-in">
        <router-view/>
      </transition>
    </el-col>
  </el-row>
</template>

<script>
import treeMenu from '@/components/common/TreeMenu/treeMenu'
export default {
  name: 'Base',
  data(){
    return {
      leftmenus:[
        {menuName:'用戶管理',menuUrl:'/Base/user'}
      ]
    }
  },
  components:{treeMenu}
}
</script>
<style scoped lang="stylus">
</style>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM