From 3de71aa99bb7d08bb95751627c4b662ce1ad4f9d Mon Sep 17 00:00:00 2001 From: chenxing Date: Fri, 9 Oct 2026 20:15:34 +0800 Subject: [PATCH] =?UTF-8?q?feat(notice):=20=E5=8A=9E=E4=BB=B6=E8=A7=86?= =?UTF-8?q?=E8=A7=92=E5=8A=A0=E6=93=8D=E4=BD=9C=E5=88=97=E3=80=8C=E5=AE=A1?= =?UTF-8?q?=E6=89=B9=E8=AE=B0=E5=BD=95=E3=80=8D=E2=80=94=E2=80=94Drawer=20?= =?UTF-8?q?iframe=20=E5=B5=8C=20flow-center=20=E8=BF=9B=E5=BA=A6=E9=A1=B5?= =?UTF-8?q?=EF=BC=88token=20=E6=AF=8F=E6=AC=A1=E7=8E=B0=E5=8F=96=E4=B8=8D?= =?UTF-8?q?=E7=BC=93=E5=AD=98=EF=BC=89=EF=BC=8C=E4=B8=9A=E5=8A=A1=E9=94=99?= =?UTF-8?q?=E5=8E=9F=E6=96=87=E6=8F=90=E7=A4=BA=E4=B8=8D=E6=89=93=E6=96=AD?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/notice/NoticeApproval.vue | 41 +++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/src/views/notice/NoticeApproval.vue b/src/views/notice/NoticeApproval.vue index c72c8b8..83587e1 100644 --- a/src/views/notice/NoticeApproval.vue +++ b/src/views/notice/NoticeApproval.vue @@ -43,6 +43,9 @@ +
@@ -66,6 +69,13 @@

+ + + +
+ +
+
@@ -77,6 +87,7 @@ import approvalApi, { type ApprovalInstance, type ApprovalTodoTask, } from "@/api/module/approval"; +import { noticeApi } from "@/api/module/notice"; /** * 我的待审核(应用内审批,第三步):待办列表 + 办件视角,通过/驳回走本应用后端代理 @@ -119,8 +130,28 @@ const instCols = [ { title: "提交人", key: "submitterName", width: 100 }, { title: "提交时间", key: "submitTime", width: 170, render: fmtTime }, { title: "办结时间", key: "finishTime", width: 170, render: fmtTime }, + { title: "操作", slot: "instAction", width: 100 }, ]; +/* 审批记录 Drawer(嵌入页 iframe):pageUrl 含 10 分钟短时 token,每次打开现取, + * 不缓存、不落 storage(既有安全纪律);业务错(尚未进入流程/无权限 403)原文提示,不打断列表 */ +const embedVisible = ref(false); +const embedPageUrl = ref(""); + +async function openEmbed(row: ApprovalInstance) { + try { + const res = await noticeApi.flowEmbed(Number(row.bizId)).send(); + embedPageUrl.value = res?.pageUrl || ""; + if (!embedPageUrl.value) { + Message.error("审批记录地址获取失败"); + return; + } + embedVisible.value = true; + } catch (e: any) { + Message.error(e?.message || "审批记录打开失败"); + } +} + function fmtTime(h: any, p: any) { return h( "span", @@ -229,4 +260,14 @@ onMounted(load); .filter-bar { margin-bottom: 12px; } +/* 审批记录 Drawer:iframe 撑满,嵌入页内部自己滚动 */ +.embed-frame-wrap { + height: 100%; +} +.embed-frame-wrap iframe { + display: block; + width: 100%; + height: 100%; + border: 0; +}