Преглед изворни кода

fix(breadcrumb): ensure the breadcrumbs display the icon correctly, fix #433

Vben пре 4 година
родитељ
комит
0b66360cc9
2 измењених фајлова са 10 додато и 2 уклоњено
  1. 4 0
      CHANGELOG.zh_CN.md
  2. 6 2
      src/layouts/default/header/components/Breadcrumb.vue

+ 4 - 0
CHANGELOG.zh_CN.md

@@ -8,6 +8,10 @@
 
 - 移除 useFullScreen 函数
 
+### 🐛 Bug Fixes
+
+- 确保面包屑正确的显示图标
+
 ## 2.1.1 (2021-03-26)
 
 ### ✨ Features

+ 6 - 2
src/layouts/default/header/components/Breadcrumb.vue

@@ -2,7 +2,7 @@
   <div :class="[prefixCls, `${prefixCls}--${theme}`]">
     <a-breadcrumb :routes="routes">
       <template #itemRender="{ route, routes, paths }">
-        <Icon :icon="route.meta.icon" v-if="getShowBreadCrumbIcon && route.meta.icon" />
+        <Icon :icon="getIcon(route)" v-if="getShowBreadCrumbIcon && getIcon(route)" />
         <span v-if="!hasRedirect(routes, route)">
           {{ t(route.name || route.meta.title) }}
         </span>
@@ -146,7 +146,11 @@
         return true;
       }
 
-      return { routes, t, prefixCls, getShowBreadCrumbIcon, handleClick, hasRedirect };
+      function getIcon(route) {
+        return route.icon || route.meta?.icon;
+      }
+
+      return { routes, t, prefixCls, getIcon, getShowBreadCrumbIcon, handleClick, hasRedirect };
     },
   });
 </script>