From 0db23723fbd4c1a4467c7be9d426765c290a4885 Mon Sep 17 00:00:00 2001 From: JEECG <445654970@qq.com> Date: Mon, 18 Mar 2024 11:05:07 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8F=9C=E5=8D=95=E5=9B=BD=E9=99=85=E5=8C=96?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/system/menu/MenuDrawer.vue | 27 ++++++++++++++++++++++++++- src/views/system/menu/index.vue | 7 +++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/views/system/menu/MenuDrawer.vue b/src/views/system/menu/MenuDrawer.vue index d60f577..6abce6d 100644 --- a/src/views/system/menu/MenuDrawer.vue +++ b/src/views/system/menu/MenuDrawer.vue @@ -10,6 +10,7 @@ import { BasicDrawer, useDrawerInner } from '/@/components/Drawer'; import { list, saveOrUpdateMenu } from './menu.api'; import { useDrawerAdaptiveWidth } from '/@/hooks/jeecg/useAdaptiveWidth'; + import { useI18n } from "/@/hooks/web/useI18n"; // 声明Emits const emit = defineEmits(['success', 'register']); const { adaptiveWidth } = useDrawerAdaptiveWidth(); @@ -41,7 +42,9 @@ updateSchema([ { field: 'parentId', - componentProps: { treeData }, + // update-begin--author:liaozhiyang---date:20240306---for:【QQYUN-8379】菜单管理页菜单国际化 + componentProps: { treeData: translateMenu(treeData, 'name') }, + // update-end--author:liaozhiyang---date:20240306---for:【QQYUN-8379】菜单管理页菜单国际化 }, { field: 'name', @@ -113,4 +116,26 @@ } //update-end---author:wangshuai ---date:20230204 for:[QQYUN-4058]菜单添加智能化处理------------ } + + /** + * 2024-03-06 + * liaozhiyang + * 翻译菜单名称 + */ + function translateMenu(data, key) { + if (data?.length) { + const { t } = useI18n(); + data.forEach((item) => { + if (item[key]) { + if (item[key].includes("t('") && t) { + item[key] = new Function('t', `return ${item[key]}`)(t); + } + } + if (item.children?.length) { + translateMenu(item.children, key); + } + }); + } + return data; + } diff --git a/src/views/system/menu/index.vue b/src/views/system/menu/index.vue index 649799a..7def606 100644 --- a/src/views/system/menu/index.vue +++ b/src/views/system/menu/index.vue @@ -39,11 +39,13 @@ import { columns,searchFormSchema } from './menu.data'; import { list, deleteMenu, batchDeleteMenu } from './menu.api'; import { useDefIndexStore } from "@/store/modules/defIndex"; + import { useI18n } from "/@/hooks/web/useI18n"; const checkedKeys = ref>([]); const showFooter = ref(true); const [registerDrawer, { openDrawer }] = useDrawer(); const [registerDrawer1, { openDrawer: openDataRule }] = useDrawer(); + const { t } = useI18n(); // 自定义菜单名称列渲染 columns[0].customRender = function ({text, record}) { @@ -51,6 +53,11 @@ if (isDefIndex) { text += '(默认首页)' } + // update-begin--author:liaozhiyang---date:20240306---for:【QQYUN-8379】菜单管理页菜单国际化 + if (text.includes("t('") && t) { + return new Function('t', `return ${text}`)(t); + } + // update-end--author:liaozhiyang---date:20240306---for:【QQYUN-8379】菜单管理页菜单国际化 return text }