From f0e47e41dba38f8b8771b1b71af028d875381664 Mon Sep 17 00:00:00 2001 From: ShineKOT <1917095344@qq.com> Date: Fri, 27 Mar 2026 12:01:14 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E5=A4=9A=E8=AF=AD?= =?UTF-8?q?=E8=A8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../control/app-menu/app-menu.controller.ts | 27 +++++++------- .../form-mdctrl-repeater.controller.ts | 22 ++++++++++++ .../control/grid/grid/grid.controller.ts | 36 ++++++++----------- .../control/toolbar/toolbar.controller.ts | 27 ++++++-------- .../tree-grid-ex/tree-grid-ex.controller.ts | 26 ++++++-------- 5 files changed, 72 insertions(+), 66 deletions(-) diff --git a/packages/runtime/src/controller/control/app-menu/app-menu.controller.ts b/packages/runtime/src/controller/control/app-menu/app-menu.controller.ts index 6cf164945..2973490fc 100644 --- a/packages/runtime/src/controller/control/app-menu/app-menu.controller.ts +++ b/packages/runtime/src/controller/control/app-menu/app-menu.controller.ts @@ -1,21 +1,22 @@ import { - findRecursiveChild, RuntimeError, + recursiveIterate, RuntimeModelError, + findRecursiveChild, } from '@ibiz-template/core'; import { IAppMenu, IAppMenuItem } from '@ibiz/model-core'; import { AppFuncCommand } from '../../../command'; import { + IAppService, IAppMenuState, IAppMenuEvent, IAppMenuController, - IAppService, IAppMenuItemProvider, } from '../../../interface'; +import { CTX } from '../../ctx'; import { AppCounter } from '../../../service'; import { ControlController } from '../../common'; import { getAppMenuItemProvider } from '../../../register'; -import { CTX } from '../../ctx'; import { CustomAppMenuController } from './custom-app-menu.controller'; /** @@ -557,14 +558,14 @@ export class AppMenuController } /** - * 转换各类多语言 - * - * @date 2023-05-18 02:57:00 + * @description 转换各类多语言 * @protected + * @memberof AppMenuController */ protected convertMultipleLanguages(): void { - const convertItemLang = (menuItems: IAppMenuItem[]): void => { - menuItems.forEach((item: IAppMenuItem) => { + recursiveIterate( + this.model, + (item: IAppMenuItem) => { if (item.capLanguageRes?.lanResTag) item.caption = ibiz.i18n.t( item.capLanguageRes.lanResTag, @@ -575,11 +576,11 @@ export class AppMenuController item.tooltipLanguageRes.lanResTag, item.tooltip, ); - if (item.appMenuItems?.length) convertItemLang(item.appMenuItems); - }); - }; - if (this.model.appMenuItems?.length) - convertItemLang(this.model.appMenuItems); + }, + { + childrenFields: ['appMenuItems'], + }, + ); } /** diff --git a/packages/runtime/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater.controller.ts b/packages/runtime/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater.controller.ts index 7d0d1ca8f..d3fef4e79 100644 --- a/packages/runtime/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater.controller.ts +++ b/packages/runtime/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater.controller.ts @@ -159,6 +159,28 @@ export class FormMDCtrlRepeaterController }); this.repeatedForm = clone(tempForm); + this.convertMultipleLanguages(); + } + + /** + * @description 转化多语言 + * @protected + * @memberof FormMDCtrlRepeaterController + */ + protected convertMultipleLanguages(): void { + recursiveIterate( + this.repeatedForm, + (item: IDEFormDetail) => { + if (item.capLanguageRes?.lanResTag) + item.caption = ibiz.i18n.t( + item.capLanguageRes.lanResTag, + item.caption, + ); + }, + { + childrenFields: ['deformPages', 'deformTabPages', 'deformDetails'], + }, + ); } /** diff --git a/packages/runtime/src/controller/control/grid/grid/grid.controller.ts b/packages/runtime/src/controller/control/grid/grid/grid.controller.ts index 1c39d78ec..c7510dfd3 100644 --- a/packages/runtime/src/controller/control/grid/grid/grid.controller.ts +++ b/packages/runtime/src/controller/control/grid/grid/grid.controller.ts @@ -18,11 +18,11 @@ import { IDEGridColumn, IDEDataExport, IControlLogic, - IDEGridGroupColumn, - IDEGridFieldColumn, - IAppDEDataExport, IDEGridUAColumn, + IAppDEDataExport, IDEUIActionGroup, + IDEGridGroupColumn, + IDEGridFieldColumn, } from '@ibiz/model-core'; import { clone } from 'ramda'; import dayjs from 'dayjs'; @@ -1934,25 +1934,19 @@ export class GridController< * @protected */ protected convertMultipleLanguages(): void { - const convertColumnCaption = (columns: IDEGridColumn[]): void => { - columns.forEach((column: IDEGridColumn) => { - if (column.capLanguageRes?.lanResTag) { - column.caption = ibiz.i18n.t( - column.capLanguageRes.lanResTag, - column.caption, + recursiveIterate( + this.model, + (item: IDEGridColumn) => { + if (item.capLanguageRes?.lanResTag) + item.caption = ibiz.i18n.t( + item.capLanguageRes.lanResTag, + item.caption, ); - } - if ( - column.columnType === 'GROUPGRIDCOLUMN' && - (column as IDEGridGroupColumn).degridColumns - ) { - convertColumnCaption((column as IDEGridGroupColumn).degridColumns!); - } - }); - }; - if (this.model.degridColumns && this.model.degridColumns.length > 0) { - convertColumnCaption(this.model.degridColumns); - } + }, + { + childrenFields: ['degridColumns'], + }, + ); } /** diff --git a/packages/runtime/src/controller/control/toolbar/toolbar.controller.ts b/packages/runtime/src/controller/control/toolbar/toolbar.controller.ts index 14b7bf729..1ca7673f8 100644 --- a/packages/runtime/src/controller/control/toolbar/toolbar.controller.ts +++ b/packages/runtime/src/controller/control/toolbar/toolbar.controller.ts @@ -18,9 +18,9 @@ import { IToolbarItemProvider, } from '../../../interface'; import { + getUIActionById, calcUIActionGroup, getAllUIActionItems, - getUIActionById, } from '../../../model'; import { AppCounter, ControlVO } from '../../../service'; import { UIActionUtil } from '../../../ui-action'; @@ -556,14 +556,14 @@ export class ToolbarController< } /** - * 转换各类多语言 - * - * @date 2023-05-18 02:57:00 + * @description 转换各类多语言 * @protected + * @memberof ToolbarController */ protected convertMultipleLanguages(): void { - const convertItemLang = (items: IDEToolbarItem[]): void => { - items.forEach(item => { + recursiveIterate( + this.model, + (item: IDEToolbarItem) => { if (item.capLanguageRes?.lanResTag) item.caption = ibiz.i18n.t( item.capLanguageRes.lanResTag, @@ -574,15 +574,10 @@ export class ToolbarController< item.tooltipLanguageRes.lanResTag, item.tooltip, ); - if ( - item.itemType === 'ITEMS' && - (item as IDETBGroupItem).detoolbarItems - ) { - convertItemLang((item as IDETBGroupItem).detoolbarItems!); - } - }); - }; - if (this.model.detoolbarItems?.length) - convertItemLang(this.model.detoolbarItems); + }, + { + childrenFields: ['detoolbarItems'], + }, + ); } } diff --git a/packages/runtime/src/controller/control/tree-grid-ex/tree-grid-ex.controller.ts b/packages/runtime/src/controller/control/tree-grid-ex/tree-grid-ex.controller.ts index d41cb5375..e592f69d8 100644 --- a/packages/runtime/src/controller/control/tree-grid-ex/tree-grid-ex.controller.ts +++ b/packages/runtime/src/controller/control/tree-grid-ex/tree-grid-ex.controller.ts @@ -1,10 +1,10 @@ import { IDETreeColumn, IDETreeGridEx, - IDETreeDataSetNode, IDEUIActionGroup, - IDETreeNodeFieldColumn, + IDETreeDataSetNode, IDETreeNodeUAColumn, + IDETreeNodeFieldColumn, } from '@ibiz/model-core'; import { RuntimeError, @@ -402,20 +402,14 @@ export class TreeGridExController< * @protected */ protected convertMultipleLanguages(): void { - // *转换列标题的多语言 - const convertColumnCaption = (columns: IDETreeColumn[]): void => { - columns.forEach((column: IDETreeColumn) => { - if (column.capLanguageRes?.lanResTag) { - column.caption = ibiz.i18n.t( - column.capLanguageRes.lanResTag, - column.caption, - ); - } - }); - }; - if (this.model.detreeColumns && this.model.detreeColumns.length > 0) { - convertColumnCaption(this.model.detreeColumns); - } + const { detreeColumns } = this.model; + detreeColumns?.forEach(column => { + if (column.capLanguageRes?.lanResTag) + column.caption = ibiz.i18n.t( + column.capLanguageRes.lanResTag, + column.caption, + ); + }); } async save(nodeData: ITreeNodeData): Promise { -- Gitee