2023-02-16 16:33:20 +08:00
|
|
|
<template>
|
2023-02-22 18:21:39 +08:00
|
|
|
<div class="meta2d-box list-page" v-my-loading="meta2dLoading" ref="meta2dBox">
|
2023-02-23 16:43:15 +08:00
|
|
|
<meta2dHeader
|
|
|
|
|
ref="header"
|
|
|
|
|
:meta2dId="meta2dId"
|
|
|
|
|
:isChart="isChart"
|
|
|
|
|
:project="project"
|
|
|
|
|
:editFlag="editFlag"
|
|
|
|
|
@edit="beforeEdit"
|
|
|
|
|
@exitEdit="exitEdit"
|
|
|
|
|
@reload="reload"
|
|
|
|
|
/>
|
|
|
|
|
<div class="meta2d-main" :class="isChart ? 'meta2d-chart': 'meta2d-project'" @contextmenu="onContextMenu($event)">
|
2023-02-16 16:33:20 +08:00
|
|
|
<div :id="meta2dId" style="height: 100%;width: 100%"></div>
|
|
|
|
|
</div>
|
2023-02-20 14:25:09 +08:00
|
|
|
<meta2dProps
|
|
|
|
|
v-if="editFlag"
|
|
|
|
|
ref="meta2dProps"
|
|
|
|
|
:selectPens.sync="selectPens"
|
|
|
|
|
:querysArray="querysArray"
|
2023-02-21 19:05:49 +08:00
|
|
|
:params="params"
|
2023-02-20 14:25:09 +08:00
|
|
|
:meta2dId="meta2dId"
|
|
|
|
|
@updatePens="updatePens"
|
|
|
|
|
/>
|
2023-02-23 16:43:15 +08:00
|
|
|
<div class="context-menu" v-if="contextmenu.left && editFlag && !isPreview" :style="this.contextmenu">
|
|
|
|
|
<CanvasContextMenu :meta2dId="meta2dId" :selectPens.sync="selectPens"></CanvasContextMenu>
|
|
|
|
|
</div>
|
2023-02-22 18:21:39 +08:00
|
|
|
<div
|
|
|
|
|
v-show="position.show && !editFlag"
|
|
|
|
|
@mouseleave="tooltipOut"
|
|
|
|
|
@mouseenter="tooltipOver"
|
2023-02-22 15:29:17 +08:00
|
|
|
style="position: absolute"
|
|
|
|
|
:style="{
|
|
|
|
|
top: position.top + 'px',
|
2023-02-22 18:21:39 +08:00
|
|
|
left: position.left + 'px',
|
2023-02-22 15:29:17 +08:00
|
|
|
}"
|
2023-02-22 18:21:39 +08:00
|
|
|
>
|
|
|
|
|
<meta2dTooltip
|
|
|
|
|
:params="chartParams"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
2023-02-16 16:33:20 +08:00
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
import meta2dHeader from '@/components/common/project/meta2d/meta2dHeader'
|
|
|
|
|
import meta2dProps from '@/components/common/project/meta2d/meta2dProps'
|
|
|
|
|
import meta2dMain from '@/components/common/project/meta2d/js/meta2dMain'
|
2023-02-22 15:29:17 +08:00
|
|
|
import meta2dTooltip from '@/components/common/project/meta2d/meta2dTooltip'
|
2023-02-23 16:43:15 +08:00
|
|
|
import CanvasContextMenu from '@/components/common/project/meta2d/CanvasContextMenu'
|
2023-02-16 18:13:14 +08:00
|
|
|
import { getTopology, setTopology } from '@/components/common/js/common'
|
2023-02-20 14:25:09 +08:00
|
|
|
import topoUtil from '@/components/common/project/meta2d/js/topoUtil'
|
2023-02-20 19:11:10 +08:00
|
|
|
import bus from '@/libs/bus'
|
2023-02-16 16:33:20 +08:00
|
|
|
export default {
|
|
|
|
|
name: 'meta2dMain',
|
2023-02-20 14:25:09 +08:00
|
|
|
mixins: [meta2dMain, topoUtil],
|
2023-02-16 16:33:20 +08:00
|
|
|
props: {
|
|
|
|
|
meta2dId: {}, // 唯一id 不可重复
|
|
|
|
|
topoData: {}, // topo图数据
|
|
|
|
|
isChart: {
|
|
|
|
|
type: Boolean,
|
|
|
|
|
default: false
|
|
|
|
|
},
|
|
|
|
|
querysArray: {},
|
2023-02-21 19:05:49 +08:00
|
|
|
params: {},
|
2023-02-20 14:25:09 +08:00
|
|
|
project: {}
|
2023-02-16 16:33:20 +08:00
|
|
|
},
|
2023-02-23 16:43:15 +08:00
|
|
|
computed: {
|
|
|
|
|
isPreview () {
|
|
|
|
|
return this.$refs.header && this.$refs.header.isPreview
|
|
|
|
|
}
|
|
|
|
|
},
|
2023-02-16 16:33:20 +08:00
|
|
|
components: {
|
|
|
|
|
meta2dHeader,
|
2023-02-22 15:29:17 +08:00
|
|
|
meta2dProps,
|
2023-02-23 16:43:15 +08:00
|
|
|
meta2dTooltip,
|
|
|
|
|
CanvasContextMenu
|
2023-02-16 16:33:20 +08:00
|
|
|
},
|
|
|
|
|
watch: {
|
|
|
|
|
topoData: {
|
|
|
|
|
immediate: true,
|
|
|
|
|
handler () {
|
2023-02-20 14:25:09 +08:00
|
|
|
this.reload()
|
2023-02-16 16:33:20 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
mounted () {
|
|
|
|
|
this.init()
|
2023-02-20 19:11:10 +08:00
|
|
|
bus.$on('changeSelectPens', this.pensActive)
|
2023-02-22 18:21:39 +08:00
|
|
|
this.$refs.meta2dBox.addEventListener('mousemove', this.mousemove)
|
2023-02-23 16:43:15 +08:00
|
|
|
// this.$refs.meta2dBox.addEventListener('mousedown', this.mousedown)
|
|
|
|
|
this.$refs.meta2dBox.addEventListener('mouseup', this.mouseup)
|
|
|
|
|
window.addEventListener('click', this.contextmenuNone)
|
2023-02-16 16:33:20 +08:00
|
|
|
},
|
|
|
|
|
methods: {
|
2023-02-22 18:21:39 +08:00
|
|
|
mousemove (e) {
|
|
|
|
|
window.ePosition = e
|
2023-02-23 16:43:15 +08:00
|
|
|
},
|
|
|
|
|
mouseup () {
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
this.setContextmenu = true
|
|
|
|
|
}, 100)
|
2023-02-22 18:21:39 +08:00
|
|
|
}
|
2023-02-16 18:13:14 +08:00
|
|
|
},
|
|
|
|
|
beforeDestroy () {
|
|
|
|
|
getTopology(this.meta2dId).destroy()
|
|
|
|
|
setTopology(this.meta2dId, null)
|
2023-02-20 19:11:10 +08:00
|
|
|
bus.$off('changeSelectPens', this.pensActive)
|
2023-02-22 18:21:39 +08:00
|
|
|
this.$refs.meta2dBox.removeEventListener('mousemove', this.mousemove)
|
2023-02-23 16:43:15 +08:00
|
|
|
this.$refs.meta2dBox.removeEventListener('mouseup', this.mouseup)
|
2023-02-16 16:33:20 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
|
|
|
|
|
|
|
</style>
|