diff --git a/src/views/Editor/Toolbar/MultiPositionPanel.vue b/src/views/Editor/Toolbar/MultiPositionPanel.vue index d7b5566c..83e65ba0 100644 --- a/src/views/Editor/Toolbar/MultiPositionPanel.vue +++ b/src/views/Editor/Toolbar/MultiPositionPanel.vue @@ -2,24 +2,24 @@
- + - + - + - + - + - + @@ -40,8 +40,10 @@ import { computed, defineComponent } from 'vue' import { useStore } from '@/store' import { PPTElement } from '@/types/slides' +import { ElementAlignCommand } from '@/types/edit' import useCombineElement from '@/hooks/useCombineElement' import useAlignActiveElement from '@/hooks/useAlignActiveElement' +import useAlignElementToCanvas from '@/hooks/useAlignElementToCanvas' import useUniformDisplayElement from '@/hooks/useUniformDisplayElement' export default defineComponent({ @@ -52,6 +54,7 @@ export default defineComponent({ const { combineElements, uncombineElements } = useCombineElement() const { alignActiveElement } = useAlignActiveElement() + const { alignElementToCanvas } = useAlignElementToCanvas() const { uniformHorizontalDisplay, uniformVerticalDisplay } = useUniformDisplayElement() // 判断当前多选的几个元素是否可以组合 @@ -63,14 +66,22 @@ export default defineComponent({ return !inSameGroup }) + // 多选元素对齐,需要先判断当前所选中的元素状态: + // 如果所选元素为一组组合元素,则将它对齐到画布; + // 如果所选元素不是组合元素或不止一组元素(即当前为可组合状态),则将这多个(多组)元素相互对齐。 + const alignElement = (command: ElementAlignCommand) => { + if (canCombine.value) alignActiveElement(command) + else alignElementToCanvas(command) + } + return { activeElementList, canCombine, combineElements, uncombineElements, - alignActiveElement, uniformHorizontalDisplay, uniformVerticalDisplay, + alignElement, } }, })