diff --git a/src/views/notice/NewNotice.vue b/src/views/notice/NewNotice.vue index d31b349..80855ba 100644 --- a/src/views/notice/NewNotice.vue +++ b/src/views/notice/NewNotice.vue @@ -85,11 +85,20 @@ onMounted(async () => { } }); -/** 流程图:flow-center 示意图深链(Notice 指定到人场景用人员视图) */ +/** 流程图 Drawer(后端 DiagramDef 中转 PNG:同源免 token;与设置页同款,修复旧深链 404) */ +const flowDiagramVisible = ref(false); +const flowDiagramSrc = computed(() => + flowDiagramVisible.value && auditFlowGuid.value + ? `${config.serviceHost}/api/notice/flow/DiagramDef?flowGuid=${encodeURIComponent(auditFlowGuid.value)}` + : "", +); function openFlowDiagram() { - if (auditFlowGuid.value) { - window.open(`${config.flowHost}/#/diagram?flowGuid=${auditFlowGuid.value}&mode=user`, "_blank"); - } + if (!auditFlowGuid.value) return; + flowDiagramVisible.value = true; +} +function onFlowDiagramError() { + flowDiagramVisible.value = false; + Message.error("流程图加载失败(流程可能未发布或绑定已解除)"); } /* ============ 富文本编辑器(wangeditor v5 for vue3) ============ */ @@ -408,6 +417,14 @@ async function saveEditAndLeave(data: NoticeRequest) { + + + +
+ 流程示意图 +
+
@@ -439,4 +456,17 @@ async function saveEditAndLeave(data: NoticeRequest) { .bottom-btn { margin-top: 6px; } +/* 流程图 Drawer:浅底色 + 纵向滚动(竖版长图),图片撑满可读宽度 */ +.flow-diagram-frame { + height: 100%; + overflow: auto; + background: #f5f7fa; + padding: 12px; + box-sizing: border-box; +} +.flow-diagram-frame img { + display: block; + margin: 0 auto; + max-width: 100%; +} diff --git a/src/views/notice/NoticeSetting.vue b/src/views/notice/NoticeSetting.vue index febf34f..e9085b3 100644 --- a/src/views/notice/NoticeSetting.vue +++ b/src/views/notice/NoticeSetting.vue @@ -80,9 +80,21 @@ function unbindFlow() { }); } -/** 流程图(flow-center 示意图深链,与发通知页同一入口) */ -function openFlowDiagram(guid: string) { - if (guid) window.open(`${config.flowHost}/#/diagram?flowGuid=${guid}`, "_blank"); +/** 流程图 Drawer(后端 DiagramDef 中转 PNG:同源免 token 免跨域。修复旧深链 404—— + * 生产前端静态挂 /flow-center/front*,Caddy 无 /flow-center/ 根路由,window.open 深链必 404) */ +const flowDiagramVisible = ref(false); +const flowDiagramSrc = computed(() => + flowDiagramVisible.value && boundFlowGuid.value + ? `${config.serviceHost}/api/notice/flow/DiagramDef?flowGuid=${encodeURIComponent(boundFlowGuid.value)}` + : "", +); +function openFlowDiagram() { + if (!boundFlowGuid.value) return; + flowDiagramVisible.value = true; +} +function onFlowDiagramError() { + flowDiagramVisible.value = false; + Message.error("流程图加载失败(流程可能未发布或绑定已解除)"); } /** 当前绑定流程的节点摘要(下拉里回显) */ @@ -517,7 +529,7 @@ const groupH = useElementHeight(groupRegionRef); 已绑定 {{ boundFlowName || boundFlowGuid }} {{ boundFlowSummary }} - +