diff --git a/CHANGELOG.md b/CHANGELOG.md index db2515143c76a50f5c0bc46769593fad63bd22e5..a210bce4f32742d89e29a2ffb78ea96121c4bc4d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,11 @@ ### Fixed - 修复表格排序属性标识大小写不同导致的排序异常 +- 调整向导面板样式格式,防止打包后权重异常 + +### Added + +- 新增向导视图脏检查模式 ## [0.7.38-alpha.70] - 2025-03-20 diff --git a/src/control/wizard-panel/wizard-panel.scss b/src/control/wizard-panel/wizard-panel.scss index e65a3ffbf32d5d9e129f73a07fb764147a99227c..6e452d51ddda60c83d6551d022baca157491b94c 100644 --- a/src/control/wizard-panel/wizard-panel.scss +++ b/src/control/wizard-panel/wizard-panel.scss @@ -11,7 +11,8 @@ $control-wizard-panel: ( height: 100%; - @include e(form) { + // 防止权重不够 + .#{bem(control-wizardpanel, form)} { height: calc(100% - getCssVar('control-wizard-panel', 'footer-height')); overflow: auto; } diff --git a/src/locale/en/index.ts b/src/locale/en/index.ts index aaef3b9648cbe2c8e546101e7338bc19ca150f12..0991000a54cc55b4d9328dec6ea90e68e9d52a31 100644 --- a/src/locale/en/index.ts +++ b/src/locale/en/index.ts @@ -89,6 +89,8 @@ export default { missingToolbarModel: 'Missing toolbar component model', noCollapseTag: 'The fold identifier is not configured', noExpandTag: 'The expansion identifier is not configured', + confirmWizardPrompt: + 'The wizard operation is not complete. Are you sure to close the screen?', }, webApp: { authGuard: { diff --git a/src/locale/zh-CN/index.ts b/src/locale/zh-CN/index.ts index e717d90b5e28aa02c02f1cbed7c024080f2e16ad..63862c829541e731cabe3ed0fa99ac25d661c3a8 100644 --- a/src/locale/zh-CN/index.ts +++ b/src/locale/zh-CN/index.ts @@ -83,6 +83,7 @@ export default { missingToolbarModel: '缺少工具栏部件模型', noCollapseTag: '未配置折叠标识', noExpandTag: '未配置展开标识', + confirmWizardPrompt: '向导操作未完成,确认关闭界面?', }, webApp: { authGuard: { diff --git a/src/view-engine/wizard-view-engine.ts b/src/view-engine/wizard-view-engine.ts index 39bcf7a5d1fd57a9e3f1d86b7d7c5f38c676c479..96f873b0f0aba9ffb98f7fe62dda96b2d4df110a 100644 --- a/src/view-engine/wizard-view-engine.ts +++ b/src/view-engine/wizard-view-engine.ts @@ -31,10 +31,35 @@ export class WizardViewEngine extends ViewEngineBase { return this.view.getController('wizardpanel') as IWizardPanelController; } + /** + * 模态事件钩子 + * + * @param {{ allowClose?: boolean }} context + * @return {*} {Promise} + * @memberof WizardViewEngine + */ + async modalEventHook(context: { allowClose?: boolean }): Promise { + // 启用脏检查弹出提示 todo + const enableCheck = false; + if (enableCheck && context.allowClose == null) { + const isAllow = await ibiz.confirm.error({ + title: ibiz.i18n.t('viewEngine.closeRemind'), + desc: ibiz.i18n.t('viewEngine.confirmWizardPrompt'), + }); + if (!isAllow) { + context.allowClose = false; + } else { + context.allowClose = true; + } + } + } + async onCreated(): Promise { await super.onCreated(); - const { childNames } = this.view; + this.modalEventHook = this.modalEventHook.bind(this); + const { childNames, modal } = this.view; childNames.push('wizardpanel'); + modal.hooks.shouldDismiss.tapPromise(this.modalEventHook); } /** @@ -54,4 +79,16 @@ export class WizardViewEngine extends ViewEngineBase { this.view.closeView({ ok: true, data: event.data }); }); } + + /** + * 视图destroyed生命周期执行逻辑 + * + * @return {*} {Promise} + * @memberof WizardViewEngine + */ + async onDestroyed(): Promise { + super.onDestroyed(); + const { modal } = this.view; + modal.hooks.shouldDismiss.removeTapPromise(this.modalEventHook); + } }