| | |
| | | <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> |
| | |
| | | </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> |
| | |
| | | </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> |