diff --git a/src/designer/model2DEditor/Model2DEditor.vue b/src/designer/model2DEditor/Model2DEditor.vue index 44dfac4..8c6354c 100644 --- a/src/designer/model2DEditor/Model2DEditor.vue +++ b/src/designer/model2DEditor/Model2DEditor.vue @@ -12,34 +12,34 @@
-
+
@@ -54,13 +54,13 @@ 00011
- {{ toFixed(state.camera.position.x) }}, - {{ toFixed(state.camera.position.y) }}, - {{ toFixed(state.camera.position.z) }} + {{ toFixed(state?.camera.position.x) }}, + {{ toFixed(state?.camera.position.y) }}, + {{ toFixed(state?.camera.position.z) }}
- {{ toFixed(state.mouse.x) }},{{ toFixed(state.mouse.z) }} + {{ toFixed(state?.mouse.x) }},{{ toFixed(state?.mouse.z) }}
diff --git a/src/designer/model2DEditor/Model2DEditorJs.js b/src/designer/model2DEditor/Model2DEditorJs.js index 6beec88..60f27a2 100644 --- a/src/designer/model2DEditor/Model2DEditorJs.js +++ b/src/designer/model2DEditor/Model2DEditorJs.js @@ -6,23 +6,20 @@ import Constract from '@/designer/Constract.js' export default defineComponent({ name: 'Model2DEditor', + emits: ['viewportChanged'], data() { - const viewport = new Viewport(worldModel) - return { Constract, isReady: false, - viewport: viewport, + viewport: null, currentFloor: '', searchKeyword: '' } }, mounted() { - window['viewport'] = this }, beforeMount() { this.initByFloor('') - delete window['viewport'] }, methods: { renderIcon, @@ -69,6 +66,7 @@ export default defineComponent({ window['controls'] = viewport.controls viewerDom.focus() + this.$emit('viewportChanged', viewport) this.isReady = true } }, @@ -88,7 +86,7 @@ export default defineComponent({ * @returns {ViewportState|{}} */ state() { - return this.viewport.state + return this.viewport?.state }, allLevels() { return worldModel.state.allLevels diff --git a/src/designer/model3DView/Model3DView.vue b/src/designer/model3DView/Model3DView.vue index e5b7ecf..4cd7960 100644 --- a/src/designer/model3DView/Model3DView.vue +++ b/src/designer/model3DView/Model3DView.vue @@ -88,7 +88,7 @@ import { renderIcon } from '@/utils/webutils.js' import textureUrl from '@/assets/images/conveyor/shapes/RibSideSkirtThumbnail.jpg' import moveUrl from '@/assets/images/conveyor/shapes/move.svg' import arrowRightUrl from '@/assets/images/conveyor/shapes/arrow-right.svg' -import rackUrl from '@/assets/images/conveyor/shapes/Rack.png' +// import rackUrl from '@/assets/images/conveyor/shapes/Rack.png' // DOM refs const canvasContainer = ref(null) diff --git a/src/designer/viewWidgets/IWidgets.ts b/src/designer/viewWidgets/IWidgets.ts index 59486c8..015f77a 100644 --- a/src/designer/viewWidgets/IWidgets.ts +++ b/src/designer/viewWidgets/IWidgets.ts @@ -1,5 +1,6 @@ import { defineComponent } from 'vue' import { renderIcon } from '@/utils/webutils.js' +import Viewport, { type ViewportState } from '@/designer/Viewport.ts' export type IWidgetData = { /** @@ -16,6 +17,14 @@ export default defineComponent({ deactivated() { this.isActivated = false }, + props: { + viewport: Viewport + }, + computed: { + state(): ViewportState { + return this.viewport?.state + } + }, emits: ['close'], data() { return { diff --git a/src/designer/viewWidgets/property/PropertyView.vue b/src/designer/viewWidgets/property/PropertyView.vue index 2791ace..0f08fe5 100644 --- a/src/designer/viewWidgets/property/PropertyView.vue +++ b/src/designer/viewWidgets/property/PropertyView.vue @@ -61,9 +61,17 @@ export default { name: 'PropertyView', mixins: [IWidgets], data() { + return { searchKeyword: '' } + }, + watch: { + 'state.selectedObject': { + handler(newVal) { + debugger + } + } } } \ No newline at end of file diff --git a/src/model/WorldModel.ts b/src/model/WorldModel.ts index 81f8f62..5ae2ab3 100644 --- a/src/model/WorldModel.ts +++ b/src/model/WorldModel.ts @@ -24,7 +24,7 @@ export default class WorldModel { */ state = reactive({ openFileName: '', - allLevels: null + allLevels: null, }) sceneMap = new Map() diff --git a/src/views/ModelMain.vue b/src/views/ModelMain.vue index 0bfeb06..ec338ba 100644 --- a/src/views/ModelMain.vue +++ b/src/views/ModelMain.vue @@ -45,14 +45,15 @@
+ @close="closeMe('hideLeft')" :key="calcLeftPanel?.name" + :viewport="currentViewport" />
- + @@ -69,7 +70,8 @@
+ @close="()=>closeMe('hideRight')" :key="calcRightPanel.name" + :viewport="currentViewport" />
@@ -79,7 +81,9 @@
+ @close="()=>closeMe('hideBottom')" :key="calcBottomPanel.name" + :viewport="currentViewport" + />
@@ -110,6 +114,7 @@ import { getWidgetByName, getWidgetBySide, getAllWidget } from '@/runtime/Define import Model2DEditor from '@/designer/model2DEditor/Model2DEditor.vue' import ModelView from '@/designer/ModelView.vue' import { normalizeShortKey } from '@/utils/webutils.ts' +import { markRaw } from 'vue' export default { @@ -155,6 +160,7 @@ export default { data() { return { Logo, + currentViewport: null, calcRootMenu: getRootMenu(), bottomSize: 30, hideBottom: true, @@ -217,6 +223,9 @@ export default { methods: { renderIcon, getWidgetBySide, + setCurrentViewport(viewport) { + this.currentViewport = viewport + }, handleCenterTabClick(tab) { if (tab?.name) { this.centerActiveName = tab.name