From f56ba6ba33c25f852ad74803581735f01dafa8ab Mon Sep 17 00:00:00 2001 From: dap <15891557205@163.com> Date: Wed, 18 Dec 2024 10:08:02 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E6=9B=B4=E6=94=B9postMessage=E5=8F=82?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/workflow/components/approval-panel.vue | 9 ++++++--- apps/web-antd/src/views/workflow/leave/leave-form.vue | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/apps/web-antd/src/views/workflow/components/approval-panel.vue b/apps/web-antd/src/views/workflow/components/approval-panel.vue index 46f7e315..e3e36f9a 100644 --- a/apps/web-antd/src/views/workflow/components/approval-panel.vue +++ b/apps/web-antd/src/views/workflow/components/approval-panel.vue @@ -23,6 +23,7 @@ import { TabPane, Tabs, } from 'ant-design-vue'; +import { isObject } from 'lodash-es'; import { cancelProcessApply, @@ -95,17 +96,19 @@ const loading = ref(false); const iframeLoaded = ref(false); const iframeHeight = ref(300); useEventListener('message', (event) => { + const data = event.data as { [key: string]: any; type: string }; + if (!isObject(data)) return; /** * iframe通信 加载完毕后才显示表单 解决卡顿问题 */ - if (event.data === 'mounted') { + if (data.type === 'mounted') { iframeLoaded.value = true; } /** * 高度与表单高度保持一致 */ - if (event.data.includes('height')) { - const height = event.data.split('height:')[1]; + if (data.type === 'height') { + const height = data.height; iframeHeight.value = height; } }); diff --git a/apps/web-antd/src/views/workflow/leave/leave-form.vue b/apps/web-antd/src/views/workflow/leave/leave-form.vue index a78039ed..4a73cc10 100644 --- a/apps/web-antd/src/views/workflow/leave/leave-form.vue +++ b/apps/web-antd/src/views/workflow/leave/leave-form.vue @@ -60,14 +60,14 @@ onMounted(async () => { */ if (readonly) { // 渲染完毕才显示表单 - window.parent.postMessage('mounted', '*'); + window.parent.postMessage({ type: 'mounted' }, '*'); // 获取表单高度 内嵌时保持一致 setTimeout(() => { const el = cardRef.value?.$el as HTMLDivElement; // 获取高度 const height = el?.offsetHeight ?? 0; if (height) { - window.parent.postMessage(`height:${height}`, '*'); + window.parent.postMessage({ type: 'height', height }, '*'); } }); }