diff --git a/CHANGELOG.md b/CHANGELOG.md index 72f76e238afad76aafc75b830853158df179788f..cfc0dbcfb14a49ff953be6fa49214419f19ed2a5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,7 @@ ### Added - 添加dingtalk-jsapi依赖 +- 更新分页导航视图引擎适配计算工具栏按钮权限逻辑 ## [0.0.31] - 2024-10-27 diff --git a/src/view-engine/mob-tab-exp-view.engine.ts b/src/view-engine/mob-tab-exp-view.engine.ts index 8f59467d9b56ac392dafd0bfa14c9a1599316850..a21a4362cd687bc39471b2ab2a43be61251e8117 100644 --- a/src/view-engine/mob-tab-exp-view.engine.ts +++ b/src/view-engine/mob-tab-exp-view.engine.ts @@ -5,6 +5,7 @@ import { ITabExpViewState, ViewEngineBase, calcDeCodeNameById, + IToolbarController, } from '@ibiz-template/runtime'; import { IAppDETabExplorerView } from '@ibiz/model-core'; @@ -40,6 +41,45 @@ export class MobTabExpViewEngine extends ViewEngineBase { return this.view.getController('tabexppanel') as ITabExpPanelController; } + /** + * 左工具栏 + * + * @author ljx + * @date 2024-10-28 15:36:45 + * @readonly + * @protected + * @type {(IToolbarController | undefined)} + */ + protected get leftToolbar(): IToolbarController | undefined { + return this.view.getController('lefttoolbar') as IToolbarController; + } + + /** + * 右工具栏 + * + * @author ljx + * @date 2024-10-28 15:36:45 + * @readonly + * @protected + * @type {(IToolbarController | undefined)} + */ + protected get rightToolbar(): IToolbarController | undefined { + return this.view.getController('righttoolbar') as IToolbarController; + } + + /** + * 页脚工具栏 + * + * @author ljx + * @date 2024-10-28 15:36:45 + * @readonly + * @protected + * @type {(IToolbarController | undefined)} + */ + protected get footerToolbar(): IToolbarController | undefined { + return this.view.getController('footertoolbar') as IToolbarController; + } + /** * 视图created生命周期执行逻辑 * @@ -60,6 +100,18 @@ export class MobTabExpViewEngine extends ViewEngineBase { async onMounted(): Promise { await super.onMounted(); + + const { evt } = this.view; + evt.on( + 'onDataChange', + ({ actionType, data }: { actionType: string; data: IData[] }) => { + if (actionType !== 'LOAD') { + return; + } + const viewDeId = this.view.model.appDataEntityId; + this.updateToolbarState(data[0], viewDeId); + }, + ); await this.loadEntityData(); } @@ -71,4 +123,41 @@ export class MobTabExpViewEngine extends ViewEngineBase { } return super.loadEntityData(); } + + /** + * 获取所有的工具栏控制器 + * + * @author ljx + * @date 2024-10-28 15:36:45 + * @protected + * @return {*} {IToolbarController[]} + */ + protected getAllToolbars(): IToolbarController[] { + const toolbars: IToolbarController[] = []; + if (this.leftToolbar) { + toolbars.push(this.leftToolbar); + } + if (this.rightToolbar) { + toolbars.push(this.rightToolbar); + } + if (this.footerToolbar) { + toolbars.push(this.footerToolbar); + } + return toolbars; + } + + /** + * 更新工具栏状态 + * + * @author ljx + * @date 2024-10-28 15:36:45 + * @protected + * @param {IData} data + * @param {string} appDeId + */ + protected updateToolbarState(data: IData, appDeId?: string): void { + this.getAllToolbars().forEach(toolbar => { + toolbar?.calcButtonState(data, appDeId); + }); + } }