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,
}
},
})