diff --git a/CHANGELOG.md b/CHANGELOG.md index f79f7891230146083b738af30f5c6d20dcfd1319..46735cc64c3426064bb27cb90b217579e5c79bba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ ### Added - 第三方登录组件支持通过自定义补充参数指定需要展示的第三方登录方式 +- 新增应用挂载时添加水印逻辑,适配应用全局参数 watermark(应用水印配置参数),可在应用自定义参数中配置,配置示例包括启用水印(globalConfig.watermark.enable=true)、设置显示文本(globalConfig.watermark.text=测试内容) ## Fixed diff --git a/src/web-app/App.tsx b/src/web-app/App.tsx index 2f0b0387c9042a926bf313498cbb18376bcd2c26..bf47f812f16faa942b5d2bd4be363730e7bac434 100644 --- a/src/web-app/App.tsx +++ b/src/web-app/App.tsx @@ -1,4 +1,4 @@ -import { defineComponent, onUnmounted } from 'vue'; +import { defineComponent, onUnmounted, onMounted, onBeforeUnmount } from 'vue'; import { Modal, ViewMode } from '@ibiz-template/runtime'; import { AppHooks } from '@ibiz-template/vue3-util'; import './App.scss'; @@ -21,6 +21,24 @@ export default defineComponent({ // 页面关闭 window.addEventListener('unload', destroyAppHub); + // 水印销毁方法 + 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?.(); + }); + // 页面卸载 onUnmounted(() => { destroyAppHub();