|
|
@@ -6,6 +6,7 @@
|
|
|
示例:https://github.com/le5le-com/meta2d.js/tree/main/examples/diagram-editor-vue3
|
|
|
Github: https://github.com/le5le-com/meta2d.js
|
|
|
Gitee:https://gitee.com/le5le/meta2d.js
|
|
|
+ 事件监听:https://doc.le5le.com/document/119626293?id=119626293
|
|
|
-->
|
|
|
<template>
|
|
|
<div class="relative">
|
|
|
@@ -15,8 +16,8 @@
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts" setup>
|
|
|
- import { onMounted, onUnmounted, ref, watch, nextTick } from 'vue'
|
|
|
- import { Meta2d, Pen } from '@meta2d/core'
|
|
|
+ import { onMounted, onUnmounted, ref, nextTick } from 'vue'
|
|
|
+ import { Meta2d, Pen, Point } from '@meta2d/core'
|
|
|
// import { Meta2d, Pen, register, registerAnchors, registerCanvasDraw } from '@meta2d/core'
|
|
|
// import { flowPens, flowAnchors } from '@meta2d/flow-diagram'
|
|
|
// import { activityDiagram, activityDiagramByCtx } from '@meta2d/activity-diagram'
|
|
|
@@ -33,7 +34,7 @@
|
|
|
preview: false
|
|
|
})
|
|
|
|
|
|
- const metaDta = ref<any>({})
|
|
|
+ const metaDta = ref<any>()
|
|
|
|
|
|
// 组件内部引用
|
|
|
const container = ref<HTMLDivElement | null>(null)
|
|
|
@@ -63,9 +64,26 @@
|
|
|
// registerCanvasDraw(ftaPensbyCtx())
|
|
|
// registerAnchors(ftaAnchors())
|
|
|
|
|
|
+ // meta2d.on<(Pen & { x: number; y: number })[]>('active', (event) => {
|
|
|
+ // if (!event || event?.length === 0) return
|
|
|
+ // const item = event.find((item: any) => item?.id)
|
|
|
+ // if (!item) return
|
|
|
+ // const tags: string[] = []
|
|
|
+ // if (item?.id) tags.push(item?.id)
|
|
|
+ // if (item?.parentId) tags.push(item?.parentId)
|
|
|
+ // if (item?.tags && item.tags.length > 0) tags.push(...item.tags)
|
|
|
+ // console.log('active', item)
|
|
|
+ // showDeviceMenu('click', item.x, item.y, tags)
|
|
|
+ // })
|
|
|
+
|
|
|
+ meta2d.on<Point & Pen>('click', (event) => {
|
|
|
+ console.log('event', event)
|
|
|
+ })
|
|
|
+
|
|
|
// click 事件 - 鼠标单击时触发
|
|
|
- meta2d.on<{ x: number; y: number; pen?: Pen }>('click', (event) => {
|
|
|
+ meta2d.on<Point & { pen: Pen }>('click', (event) => {
|
|
|
if (!event?.pen) return
|
|
|
+ console.log('click', event)
|
|
|
const tags: string[] = []
|
|
|
if (event.pen?.id) tags.push(event.pen?.id)
|
|
|
if (event.pen?.parentId) tags.push(event.pen?.parentId)
|
|
|
@@ -77,6 +95,7 @@
|
|
|
// contextmenu 事件 - 鼠标右击时触发
|
|
|
meta2d.on<{ pen?: Pen; e: { x: number; y: number } }>('contextmenu', (event) => {
|
|
|
if (!event?.pen) return
|
|
|
+ console.log('contextmenu', event)
|
|
|
const tags: string[] = []
|
|
|
if (event.pen?.id) tags.push(event.pen?.id)
|
|
|
if (event.pen?.parentId) tags.push(event.pen?.parentId)
|
|
|
@@ -97,7 +116,7 @@
|
|
|
}
|
|
|
|
|
|
const openData = () => {
|
|
|
- const rawData = unref(metaDta) || {}
|
|
|
+ const rawData = unref(metaDta) || props.data
|
|
|
const data = JSON.parse(JSON.stringify(rawData))
|
|
|
if (data && data.pens && data.pens.length > 0) {
|
|
|
if (props.preview) data.locked = 1
|
|
|
@@ -113,16 +132,16 @@
|
|
|
}
|
|
|
|
|
|
// 支持外部更新数据
|
|
|
- watch(
|
|
|
- () => props.data,
|
|
|
- (val) => {
|
|
|
- if (val) {
|
|
|
- metaDta.value = val
|
|
|
- openData()
|
|
|
- }
|
|
|
- },
|
|
|
- { deep: true }
|
|
|
- )
|
|
|
+ // watch(
|
|
|
+ // () => props.data,
|
|
|
+ // (val) => {
|
|
|
+ // if (val) {
|
|
|
+ // metaDta.value = val
|
|
|
+ // openData()
|
|
|
+ // }
|
|
|
+ // },
|
|
|
+ // { deep: true }
|
|
|
+ // )
|
|
|
|
|
|
onMounted(() =>
|
|
|
nextTick(() => {
|