From 6b988bd582bfcd17fee48c476a5a6e5cc172b0d5 Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期三, 12 三月 2025 10:08:33 +0800
Subject: [PATCH] dev-2

---
 src/views/workflow/processDefinition/components/processPreview.vue |   45 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 45 insertions(+), 0 deletions(-)

diff --git a/src/views/workflow/processDefinition/components/processPreview.vue b/src/views/workflow/processDefinition/components/processPreview.vue
new file mode 100644
index 0000000..19a95df
--- /dev/null
+++ b/src/views/workflow/processDefinition/components/processPreview.vue
@@ -0,0 +1,45 @@
+<template>
+  <el-dialog v-model="data.visible" title="棰勮" width="70%" append-to-body destroy-on-close>
+    <div v-if="data.type === 'bpmn' && data.xmlStr">
+      <BpmnViewer ref="bpmnViewerRef"></BpmnViewer>
+    </div>
+    <div v-if="data.type === 'xml' && data.xmlStr">
+      <highlightjs language="xml" :code="data.xmlStr" />
+    </div>
+    <template #footer>
+      <span v-if="data.type === 'xml'" class="dialog-footer"> </span>
+    </template>
+  </el-dialog>
+</template>
+
+<script setup lang="ts">
+import BpmnViewer from '@/components/BpmnView/index.vue';
+
+const data = reactive({
+  visible: false,
+  type: '',
+  xmlStr: ''
+});
+
+const bpmnViewerRef = ref<InstanceType<typeof BpmnViewer>>();
+type PreviewType = 'xml' | 'bpmn';
+//鎵撳紑
+const openDialog = (xmlStr: string, type: PreviewType) => {
+  data.visible = true;
+  data.xmlStr = xmlStr;
+  data.type = type;
+  /** 娴佺▼鍥� */
+  if (type === 'bpmn') {
+    /** 蹇呴』鏀惧湪nextTick 鍚﹀垯绗竴娆℃墦寮�涓虹┖ */
+    nextTick(() => {
+      bpmnViewerRef.value?.initXml(data.xmlStr);
+    });
+  }
+};
+/**
+ * 瀵瑰鏆撮湶瀛愮粍浠舵柟娉�
+ */
+defineExpose({
+  openDialog
+});
+</script>

--
Gitblit v1.9.3