From 34d091adfa91619fa2912b4b2e320f1612c1682a Mon Sep 17 00:00:00 2001 From: dap <15891557205@163.com> Date: Tue, 17 Dec 2024 09:23:54 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20iframe=E9=80=9A=E4=BF=A1=20=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD=E5=AE=8C=E6=AF=95=E5=90=8E=E6=89=8D=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=20=E8=A7=A3=E5=86=B3=E5=8D=A1=E9=A1=BF?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../workflow/components/approval-panel.vue | 14 +++ .../src/views/workflow/leave/leave-form.vue | 8 ++ .../src/views/workflow/leave/leave-modal.vue | 87 ------------------- 3 files changed, 22 insertions(+), 87 deletions(-) delete mode 100644 apps/web-antd/src/views/workflow/leave/leave-modal.vue 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 b57d2227..a1e75251 100644 --- a/apps/web-antd/src/views/workflow/components/approval-panel.vue +++ b/apps/web-antd/src/views/workflow/components/approval-panel.vue @@ -7,11 +7,13 @@ import { computed, onUnmounted, ref, watch } from 'vue'; import { Fallback, useVbenModal, VbenAvatar } from '@vben/common-ui'; import { DictEnum } from '@vben/constants'; +import { useEventListener } from '@vueuse/core'; import { Card, Divider, Modal, Popconfirm, + Skeleton, Space, TabPane, Tabs, @@ -56,11 +58,21 @@ const currentFlowInfo = ref(); * card的loading状态 */ const loading = ref(false); +const iframeLoaded = ref(false); +useEventListener('message', (event) => { + /** + * iframe通信 加载完毕后才显示表单 解决卡顿问题 + */ + if (event.data === 'mounted') { + iframeLoaded.value = true; + } +}); async function handleLoadInfo(task: TaskInfo | undefined) { try { if (!task) return null; loading.value = true; + iframeLoaded.value = false; const resp = await flowInfo(task.businessId); currentFlowInfo.value = resp; } catch (error) { @@ -153,9 +165,11 @@ function handleTermination() {
+
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 f3855077..ec186d94 100644 --- a/apps/web-antd/src/views/workflow/leave/leave-form.vue +++ b/apps/web-antd/src/views/workflow/leave/leave-form.vue @@ -52,6 +52,14 @@ onMounted(async () => { await formApi.setValues(resp); const dateRange = [dayjs(resp.startDate), dayjs(resp.endDate)]; await formApi.setFieldValue('dateRange', dateRange); + + /** + * window.parent(最近的上一级父页面) + * 主要解决内嵌iframe卡顿的问题 + */ + if (readonly) { + window.parent.postMessage('mounted', '*'); + } } }); diff --git a/apps/web-antd/src/views/workflow/leave/leave-modal.vue b/apps/web-antd/src/views/workflow/leave/leave-modal.vue deleted file mode 100644 index 98928a6f..00000000 --- a/apps/web-antd/src/views/workflow/leave/leave-modal.vue +++ /dev/null @@ -1,87 +0,0 @@ - - -