diff --git a/src/components/player/CanvasPlayer.vue b/src/components/player/CanvasPlayer.vue index da8f6f4..3dfeed1 100644 --- a/src/components/player/CanvasPlayer.vue +++ b/src/components/player/CanvasPlayer.vue @@ -47,6 +47,7 @@ emitter.on(BusEvent.ElementDelete, onDelete) emitter.on(BusEvent.ElementAdd, onAdd) emitter.on(BusEvent.ElementAlign, setElementAlign) emitter.on(BusEvent.ElementLayer, setElementLayer) +emitter.on(BusEvent.ElementSelect, selectElement) emitter.on(BusEvent.ElementSelectAll, selectAll) emitter.on(BusEvent.CanvasFullScreen, toggleCanvasFullScreen) emitter.on(BusEvent.CanvasExportCurrentFrame, onExportCurrentFrame) @@ -572,6 +573,16 @@ function canvasOnMouseDown(e: fabric.IEvent) { } } +// 选中元素 +function selectElement(obj: ElementItem) { + const targetElement: ElementItem = canvas + .getObjects() + .find((item: ElementItem) => item.elementId === obj.elementId)! + if (!targetElement) return + canvas.setActiveObject(targetElement) + canvas.requestRenderAll() +} + // 全选 function selectAll() { canvas.discardActiveObject() @@ -584,7 +595,7 @@ function selectAll() { // 元素选中时 function onElementSelected(e: fabric.IEvent) { - setFocusElements(e.selected, undefined) + setFocusElements(e.selected, e.deselected) } // 元素取消选中时 diff --git a/src/components/right-panel/RightPanel.vue b/src/components/right-panel/RightPanel.vue index 96a20d3..552c554 100644 --- a/src/components/right-panel/RightPanel.vue +++ b/src/components/right-panel/RightPanel.vue @@ -83,10 +83,11 @@ function setLayer(align: 'up' | 'down' | 'top' | 'bottom') { v-if="elementList.length > 0" >

{{ item.elementType }} - {{ index + 1 }}