From b076db692e14cfdca9d8173a7c5c3f806fd4231a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=87=E7=BA=AF?= Date: Mon, 15 Mar 2021 20:02:46 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=20=E4=BC=98=E5=8C=96plugin-layout?= =?UTF-8?q?=E5=92=8Cplugin-locale?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/runtime/helpers/pluginAccess.js | 2 +- .../src/runtime/helpers/pluginLocale.js | 33 ++++++++++++++++++ .../src/runtime/views/Menu.vue | 34 +++++++------------ packages/fes-plugin-locale/src/index.js | 2 +- 4 files changed, 48 insertions(+), 23 deletions(-) create mode 100644 packages/fes-plugin-layout/src/runtime/helpers/pluginLocale.js diff --git a/packages/fes-plugin-layout/src/runtime/helpers/pluginAccess.js b/packages/fes-plugin-layout/src/runtime/helpers/pluginAccess.js index f1221540..f293fc75 100644 --- a/packages/fes-plugin-layout/src/runtime/helpers/pluginAccess.js +++ b/packages/fes-plugin-layout/src/runtime/helpers/pluginAccess.js @@ -28,7 +28,7 @@ const _addAccessTag = (arr) => { } }; -export const addAccessTag = (menus) => { +export const transform = (menus) => { const originData = unref(menus); _addAccessTag(originData); return originData; diff --git a/packages/fes-plugin-layout/src/runtime/helpers/pluginLocale.js b/packages/fes-plugin-layout/src/runtime/helpers/pluginLocale.js new file mode 100644 index 00000000..279ea2d4 --- /dev/null +++ b/packages/fes-plugin-layout/src/runtime/helpers/pluginLocale.js @@ -0,0 +1,33 @@ +import { unref, computed } from 'vue'; +import { plugin } from '@@/core/coreExports'; + + +const transTitle = (name) => { + const sharedLocale = plugin.getShared('locale'); + if (sharedLocale) { + const { t } = sharedLocale.useI18n(); + return t(name); + } + return name; +}; + + +const _transform = (arr) => { + if (Array.isArray(arr)) { + arr.forEach((item) => { + if (item.title) { + item._title = item.title; + item.title = computed(() => transTitle(item._title)); + } + if (item.children && item.children.length > 0) { + _transform(item.children); + } + }); + } +}; + +export const transform = (menus) => { + const originData = unref(menus); + _transform(originData); + return originData; +}; diff --git a/packages/fes-plugin-layout/src/runtime/views/Menu.vue b/packages/fes-plugin-layout/src/runtime/views/Menu.vue index ce330873..b5fcf0b8 100644 --- a/packages/fes-plugin-layout/src/runtime/views/Menu.vue +++ b/packages/fes-plugin-layout/src/runtime/views/Menu.vue @@ -7,7 +7,7 @@ > @@ -47,11 +47,12 @@