|
|
@@ -86,7 +86,7 @@
|
|
|
|
|
|
<script lang="ts" setup >
|
|
|
import { DeviceContriller, ModelController } from '@/controller'
|
|
|
-import { reactive, onMounted, watch, ref } from 'vue'
|
|
|
+import { reactive, onMounted, watch, ref, onUnmounted, onBeforeUnmount } from 'vue'
|
|
|
import VueTree from '@ssthouse/vue3-tree-chart'
|
|
|
import '@ssthouse/vue3-tree-chart/dist/vue3-tree-chart.css'
|
|
|
import { AppstoreOutlined, ZoomInOutlined, ZoomOutOutlined } from '@ant-design/icons-vue'
|
|
|
@@ -128,25 +128,41 @@ const treeData = reactive({
|
|
|
|
|
|
const zoomIn = () => {
|
|
|
zoomCount.value += 10
|
|
|
- vueTreeRef.value.zoomIn()
|
|
|
+
|
|
|
+ try {
|
|
|
+ vueTreeRef.value.zoomIn()
|
|
|
+ } catch (error) {
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
const zoomOut = () => {
|
|
|
zoomCount.value -= 10
|
|
|
- vueTreeRef.value.zoomOut()
|
|
|
+ try {
|
|
|
+ vueTreeRef.value.zoomOut()
|
|
|
+ } catch (error) {
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
const resetZoom = () => {
|
|
|
zoomCount.value = 100
|
|
|
}
|
|
|
|
|
|
-window.addEventListener('wheel', function (event) {
|
|
|
- console.log(event.deltaY)
|
|
|
+const scaleHandle = (event) => {
|
|
|
if (event.deltaY > 0) {
|
|
|
zoomOut()
|
|
|
} else {
|
|
|
zoomIn()
|
|
|
}
|
|
|
+}
|
|
|
+
|
|
|
+window.addEventListener('wheel', scaleHandle)
|
|
|
+
|
|
|
+onUnmounted(() => {
|
|
|
+ console.log('removeEventListener:', 'wheel')
|
|
|
+
|
|
|
+ window.removeEventListener('wheel', scaleHandle)
|
|
|
})
|
|
|
|
|
|
watch(
|