diff --git a/CHANGELOG.md b/CHANGELOG.md index 70a9258b56744f098f619361b93d290b47d92437..4fb304032333f41982b4420ef5ff205b93ab4635 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ - 新增应用主题配置 - 第三方登录组件支持通过自定义补充参数指定需要展示的第三方登录方式 +- 新增应用挂载时添加水印逻辑,适配应用全局参数 watermark(应用水印配置参数),可在应用自定义参数中配置,配置示例包括启用水印(globalConfig.watermark.enable=true)、设置显示文本(globalConfig.watermark.text=测试内容) ## [0.0.54] - 2025-02-28 diff --git a/src/mob-app/App.tsx b/src/mob-app/App.tsx index d1cc7b32a473e39d8de8aa5a9b7361c3e138c762..a9896b179f739bf20af98ff2bd5c89a7a2ef7372 100644 --- a/src/mob-app/App.tsx +++ b/src/mob-app/App.tsx @@ -1,6 +1,12 @@ import { AppHooks, routerCallback } from '@ibiz-template/vue3-util'; import { Modal, ViewMode } from '@ibiz-template/runtime'; -import { defineComponent, onUnmounted, ref } from 'vue'; +import { + defineComponent, + onBeforeUnmount, + onMounted, + onUnmounted, + ref, +} from 'vue'; import { useViewStack } from '../util'; import './App.scss'; @@ -43,6 +49,24 @@ export default defineComponent({ return viewModals.get(key); }; + // 水印销毁方法 + let watermarkDestroy: void | null | (() => void); + onMounted(() => { + AppHooks.initedApp.tapPromise(async ({ context }) => { + watermarkDestroy?.(); + // 挂载应用水印,默认将水印挂载到body下 + watermarkDestroy = ibiz.util.watermark.mount( + ibiz.config.watermark, + undefined, + { ...context, ...ibiz.appData?.context } as IContext, + ); + }); + }); + + onBeforeUnmount(() => { + watermarkDestroy?.(); + }); + return { viewStack, getViewModal,