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 6cf164945bf36be83e5e9db5867df8d2df6bd20c..2973490fc2de341854079377d4cc4fdef6d449c3 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 7d0d1ca8fd5097380441e21d56d9a548907df529..d3fef4e79051f6556a5e39dbc97fb83b6940c1b7 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 1c39d78ecee7c49037c7170848522e543224e333..c7510dfd3cd6f1433756723a894aeeb6b7f9c40c 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 14b7bf72953dcab89029af6807e758eb9414100a..1ca7673f8bc57f4de6e95826f3d4a9cd6544b698 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 d41cb5375ed8695eeb952e5a117a0a95bab88ba1..e592f69d822bdacfac7580c2c57fd0a9f9504279 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 {