¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |