1
lzhe
2024-04-21 fd9151c94a8fa297119e7618a132cd04f6ca580f
src/layout/components/NavMenu.vue
@@ -5,7 +5,12 @@
   <template v-for="navMenu in navMenus" v-bind:key="navMenu">
      <el-menu-item v-if="!hasChildren(navMenu)" :index="navMenu.path">
         <a v-if="navMenu.meta&&navMenu.meta.type=='link'" :href="navMenu.path" target="_blank" @click.stop='()=>{}'></a>
         <el-icon v-if="navMenu.meta&&navMenu.meta.icon"><component :is="navMenu.meta.icon || 'el-icon-menu'"/></el-icon>
         <!-- <el-icon><Warning /></el-icon> -->
         <el-icon>
             <component v-if="icons.includes(navMenu.source)" :is="navMenu.source"/>
             <component v-if="!icons.includes(navMenu.source)" :is="'TakeawayBox'"/>
            <!-- <el-icon v-if="navMenu.meta&&navMenu.meta.icon"><component :is="navMenu.meta.icon || 'el-icon-menu'"/></el-icon> -->
         </el-icon>
         <template #title>
            <span>{{navMenu.meta.title}}</span>
            <span v-if="navMenu.meta.tag" class="menu-tag">{{navMenu.meta.tag}}</span>
@@ -13,7 +18,11 @@
      </el-menu-item>
      <el-sub-menu v-else :index="navMenu.path">
         <template #title>
            <!-- <el-icon v-if="navMenu.meta&&navMenu.meta.icon"><component :is="navMenu.meta.icon || 'el-icon-menu'"/></el-icon> -->
            <el-icon v-if="navMenu.parentId!='0' &&navMenu.meta&&navMenu.meta.icon">
               <component v-if="icons.includes(navMenu.source)" :is="navMenu.source"/>
               <component v-if="!icons.includes(navMenu.source)" :is="'TakeawayBox'"/>
               <!-- <component :is="navMenu.meta.icon || 'el-icon-menu'"/> -->
            </el-icon>
            <span>{{navMenu.meta.title}}</span>
            <span v-if="navMenu.meta.tag" class="menu-tag">{{navMenu.meta.tag}}</span>
         </template>
@@ -23,19 +32,29 @@
</template>
<script>
   import * as ElementPlusIconsVue from '@element-plus/icons-vue'
   let icons = []
   for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
       icons.push(key)
   }
   export default {
      name: 'NavMenu',
      props: ['navMenus'],
      data() {
         return {}
         return {
            icons
         }
      },
      components: {
           ...ElementPlusIconsVue
       },
      methods: {
         hasChildren(item) {
            return item.children && !item.children.every(item => item.meta.hidden)
            //return item.parentId == '0';
         }
      },
      mounted(){
      }
   }
</script>