From fc15f2e904fade9e1505bad70b29829d7d99c124 Mon Sep 17 00:00:00 2001 From: lzhe <lzhe@example.com> Date: 星期三, 05 六月 2024 12:04:59 +0800 Subject: [PATCH] 1 --- src/layout/components/NavMenu.vue | 35 +++++++++++++++++++++++++++++++---- 1 files changed, 31 insertions(+), 4 deletions(-) diff --git a/src/layout/components/NavMenu.vue b/src/layout/components/NavMenu.vue index c1b09ed..1786087 100644 --- a/src/layout/components/NavMenu.vue +++ b/src/layout/components/NavMenu.vue @@ -1,3 +1,11 @@ +<!-- + * @Author: lzhe lzhe@example.com + * @Date: 2024-04-22 16:38:17 + * @LastEditors: lzhe lzhe@example.com + * @LastEditTime: 2024-05-11 17:30:06 + * @FilePath: /smart-web/src/layout/components/NavMenu.vue + * @Description: 杩欐槸榛樿璁剧疆,璇疯缃甡customMade`, 鎵撳紑koroFileHeader鏌ョ湅閰嶇疆 杩涜璁剧疆: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE +--> <template> <div v-if="navMenus.length<=0" style="padding:20px;"> <el-alert title="鏃犲瓙闆嗚彍鍗�" center type="info" :closable="false"></el-alert> @@ -5,7 +13,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 +26,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 +40,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> -- Gitblit v1.9.3