From 9192677461aac62c6a1b1972d63745315f8ab057 Mon Sep 17 00:00:00 2001 From: lijianxiong <1518062161@qq.com> Date: Mon, 28 Oct 2024 20:38:26 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E6=9B=B4=E6=96=B0=E5=88=86?= =?UTF-8?q?=E9=A1=B5=E5=AF=BC=E8=88=AA=E8=A7=86=E5=9B=BE=E5=BC=95=E6=93=8E?= =?UTF-8?q?=E9=80=82=E9=85=8D=E8=AE=A1=E7=AE=97=E5=B7=A5=E5=85=B7=E6=A0=8F?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E6=9D=83=E9=99=90=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + src/view-engine/mob-tab-exp-view.engine.ts | 89 ++++++++++++++++++++++ 2 files changed, 90 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 72f76e238a..cfc0dbcfb1 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 8f59467d9b..a21a4362cd 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); + }); + } } -- Gitee