@opentiny/tiny-toolkit-pro
Version:
TinyPro Vue:开箱即用、前后端分离的 Vue 后台管理模板
23 lines (21 loc) • 621 B
text/typescript
import type { ITreeNodeData } from '@/router/guard/menu';
import { useDeepClone } from './useDeepClone';
export const useI18nMenu = (
data: ITreeNodeData[],
t: (key: string) => string,
) => {
const menus: ITreeNodeData[] = useDeepClone(data);
const dfs = (menu: ITreeNodeData) => {
menu.oldLabel = menu.label;
menu.label = t(menu.locale).toString();
for (let i = 0; i < menu.children.length; i += 1) {
const item = menu.children[i];
dfs(item);
}
};
for (let i = 0; i < menus.length; i += 1) {
const menu = menus[i];
dfs(menu);
}
return menus;
};