Преглед на файлове

fix: extra menu title follow locale change (#5006)

Netfan преди 9 месеца
родител
ревизия
9b73792dc9
променени са 1 файла, в които са добавени 14 реда и са изтрити 5 реда
  1. 14 5
      packages/effects/layouts/src/basic/layout.vue

+ 14 - 5
packages/effects/layouts/src/basic/layout.vue

@@ -110,10 +110,19 @@ const {
   sidebarVisible,
 } = useMixedMenu();
 
-function wrapperMenus(menus: MenuRecordRaw[]) {
-  return mapTree(menus, (item) => {
-    return { ...cloneDeep(item), name: $t(item.name) };
-  });
+/**
+ * 包装菜单,翻译菜单名称
+ * @param menus 原始菜单数据
+ * @param deep 是否深度包装。对于双列布局,只需要包装第一层,因为更深层的数据会在扩展菜单中重新包装
+ */
+function wrapperMenus(menus: MenuRecordRaw[], deep: boolean = true) {
+  return deep
+    ? mapTree(menus, (item) => {
+        return { ...cloneDeep(item), name: $t(item.name) };
+      })
+    : menus.map((item) => {
+        return { ...cloneDeep(item), name: $t(item.name) };
+      });
 }
 
 function toggleSidebar() {
@@ -257,7 +266,7 @@ const headerSlots = computed(() => {
     <template #mixed-menu>
       <LayoutMixedMenu
         :active-path="extraActiveMenu"
-        :menus="wrapperMenus(headerMenus)"
+        :menus="wrapperMenus(headerMenus, false)"
         :rounded="isMenuRounded"
         :theme="sidebarTheme"
         @default-select="handleDefaultSelect"