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 @@
-
+
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 @@
closeMe('hideRight')" :key="calcRightPanel.name" />
+ @close="()=>closeMe('hideRight')" :key="calcRightPanel.name"
+ :viewport="currentViewport" />
@@ -79,7 +81,9 @@
closeMe('hideBottom')" :key="calcBottomPanel.name" />
+ @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