mirror of
https://github.com/pipipi-pikachu/PPTist.git
synced 2025-04-15 02:20:00 +08:00
refactor: 删除多余的类型定义
This commit is contained in:
parent
14c6965153
commit
de95be8430
@ -1,7 +1,7 @@
|
|||||||
import { storeToRefs } from 'pinia'
|
import { storeToRefs } from 'pinia'
|
||||||
import { useMainStore, useSlidesStore } from '@/store'
|
import { useMainStore, useSlidesStore } from '@/store'
|
||||||
import { PPTElement } from '@/types/slides'
|
import { PPTElement } from '@/types/slides'
|
||||||
import { ElementAlignCommand, ElementAlignCommands } from '@/types/edit'
|
import { ElementAlignCommands } from '@/types/edit'
|
||||||
import { getElementListRange, getRectRotatedOffset } from '@/utils/element'
|
import { getElementListRange, getRectRotatedOffset } from '@/utils/element'
|
||||||
import useHistorySnapshot from './useHistorySnapshot'
|
import useHistorySnapshot from './useHistorySnapshot'
|
||||||
|
|
||||||
@ -16,7 +16,7 @@ export default () => {
|
|||||||
* 对齐选中的元素
|
* 对齐选中的元素
|
||||||
* @param command 对齐方向
|
* @param command 对齐方向
|
||||||
*/
|
*/
|
||||||
const alignActiveElement = (command: ElementAlignCommand) => {
|
const alignActiveElement = (command: ElementAlignCommands) => {
|
||||||
const { minX, maxX, minY, maxY } = getElementListRange(activeElementList.value)
|
const { minX, maxX, minY, maxY } = getElementListRange(activeElementList.value)
|
||||||
const elementList: PPTElement[] = JSON.parse(JSON.stringify(currentSlide.value.elements))
|
const elementList: PPTElement[] = JSON.parse(JSON.stringify(currentSlide.value.elements))
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { storeToRefs } from 'pinia'
|
import { storeToRefs } from 'pinia'
|
||||||
import { useMainStore, useSlidesStore } from '@/store'
|
import { useMainStore, useSlidesStore } from '@/store'
|
||||||
import { PPTElement } from '@/types/slides'
|
import { PPTElement } from '@/types/slides'
|
||||||
import { ElementAlignCommand, ElementAlignCommands } from '@/types/edit'
|
import { ElementAlignCommands } from '@/types/edit'
|
||||||
import { getElementListRange } from '@/utils/element'
|
import { getElementListRange } from '@/utils/element'
|
||||||
import { VIEWPORT_SIZE } from '@/configs/canvas'
|
import { VIEWPORT_SIZE } from '@/configs/canvas'
|
||||||
import useHistorySnapshot from './useHistorySnapshot'
|
import useHistorySnapshot from './useHistorySnapshot'
|
||||||
@ -17,7 +17,7 @@ export default () => {
|
|||||||
* 将所有选中的元素对齐到画布
|
* 将所有选中的元素对齐到画布
|
||||||
* @param command 对齐方向
|
* @param command 对齐方向
|
||||||
*/
|
*/
|
||||||
const alignElementToCanvas = (command: ElementAlignCommand) => {
|
const alignElementToCanvas = (command: ElementAlignCommands) => {
|
||||||
const viewportWidth = VIEWPORT_SIZE
|
const viewportWidth = VIEWPORT_SIZE
|
||||||
const viewportHeight = VIEWPORT_SIZE * viewportRatio.value
|
const viewportHeight = VIEWPORT_SIZE * viewportRatio.value
|
||||||
const { minX, maxX, minY, maxY } = getElementListRange(activeElementList.value)
|
const { minX, maxX, minY, maxY } = getElementListRange(activeElementList.value)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { onMounted, onUnmounted } from 'vue'
|
import { onMounted, onUnmounted } from 'vue'
|
||||||
import { storeToRefs } from 'pinia'
|
import { storeToRefs } from 'pinia'
|
||||||
import { useMainStore, useSlidesStore, useKeyboardStore } from '@/store'
|
import { useMainStore, useSlidesStore, useKeyboardStore } from '@/store'
|
||||||
import { ElementOrderCommand, ElementOrderCommands } from '@/types/edit'
|
import { ElementOrderCommands } from '@/types/edit'
|
||||||
import { KEYS } from '@/configs/hotkey'
|
import { KEYS } from '@/configs/hotkey'
|
||||||
|
|
||||||
import useSlideHandler from './useSlideHandler'
|
import useSlideHandler from './useSlideHandler'
|
||||||
@ -95,7 +95,7 @@ export default () => {
|
|||||||
else if (key === KEYS.UP || key === KEYS.DOWN) updateSlideIndex(key)
|
else if (key === KEYS.UP || key === KEYS.DOWN) updateSlideIndex(key)
|
||||||
}
|
}
|
||||||
|
|
||||||
const order = (command: ElementOrderCommand) => {
|
const order = (command: ElementOrderCommands) => {
|
||||||
if (!handleElement.value) return
|
if (!handleElement.value) return
|
||||||
orderElement(handleElement.value, command)
|
orderElement(handleElement.value, command)
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { storeToRefs } from 'pinia'
|
import { storeToRefs } from 'pinia'
|
||||||
import { useSlidesStore } from '@/store'
|
import { useSlidesStore } from '@/store'
|
||||||
import { PPTElement } from '@/types/slides'
|
import { PPTElement } from '@/types/slides'
|
||||||
import { ElementOrderCommand, ElementOrderCommands } from '@/types/edit'
|
import { ElementOrderCommands } from '@/types/edit'
|
||||||
import useHistorySnapshot from '@/hooks/useHistorySnapshot'
|
import useHistorySnapshot from '@/hooks/useHistorySnapshot'
|
||||||
|
|
||||||
export default () => {
|
export default () => {
|
||||||
@ -192,7 +192,7 @@ export default () => {
|
|||||||
* @param element 需要调整层级的元素
|
* @param element 需要调整层级的元素
|
||||||
* @param command 调整命令:上移、下移、置顶、置底
|
* @param command 调整命令:上移、下移、置顶、置底
|
||||||
*/
|
*/
|
||||||
const orderElement = (element: PPTElement, command: ElementOrderCommand) => {
|
const orderElement = (element: PPTElement, command: ElementOrderCommands) => {
|
||||||
let newElementList
|
let newElementList
|
||||||
|
|
||||||
if (command === ElementOrderCommands.UP) newElementList = moveUpElement(currentSlide.value.elements, element)
|
if (command === ElementOrderCommands.UP) newElementList = moveUpElement(currentSlide.value.elements, element)
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { defineStore } from 'pinia'
|
import { defineStore } from 'pinia'
|
||||||
import { CreatingElement } from '@/types/edit'
|
import { CreatingElement } from '@/types/edit'
|
||||||
import { ToolbarState } from '@/types/toolbar'
|
import { ToolbarStates } from '@/types/toolbar'
|
||||||
import { SYS_FONTS } from '@/configs/font'
|
import { SYS_FONTS } from '@/configs/font'
|
||||||
import { TextAttrs, defaultRichTextAttrs } from '@/utils/prosemirror/utils'
|
import { TextAttrs, defaultRichTextAttrs } from '@/utils/prosemirror/utils'
|
||||||
import { isSupportFont } from '@/utils/font'
|
import { isSupportFont } from '@/utils/font'
|
||||||
@ -19,7 +19,7 @@ export interface MainState {
|
|||||||
showGridLines: boolean;
|
showGridLines: boolean;
|
||||||
creatingElement: CreatingElement | null;
|
creatingElement: CreatingElement | null;
|
||||||
availableFonts: typeof SYS_FONTS;
|
availableFonts: typeof SYS_FONTS;
|
||||||
toolbarState: ToolbarState;
|
toolbarState: ToolbarStates;
|
||||||
clipingImageElementId: string;
|
clipingImageElementId: string;
|
||||||
isScaling: boolean;
|
isScaling: boolean;
|
||||||
richTextAttrs: TextAttrs;
|
richTextAttrs: TextAttrs;
|
||||||
@ -41,7 +41,7 @@ export const useMainStore = defineStore('main', {
|
|||||||
showGridLines: false, // 显示网格线
|
showGridLines: false, // 显示网格线
|
||||||
creatingElement: null, // 正在插入的元素信息,需要通过绘制插入的元素(文字、形状、线条)
|
creatingElement: null, // 正在插入的元素信息,需要通过绘制插入的元素(文字、形状、线条)
|
||||||
availableFonts: [], // 当前环境可用字体
|
availableFonts: [], // 当前环境可用字体
|
||||||
toolbarState: 'slideDesign', // 右侧工具栏状态
|
toolbarState: ToolbarStates.SLIDE_DESIGN, // 右侧工具栏状态
|
||||||
clipingImageElementId: '', // 当前正在裁剪的图片ID
|
clipingImageElementId: '', // 当前正在裁剪的图片ID
|
||||||
richTextAttrs: defaultRichTextAttrs, // 富文本状态
|
richTextAttrs: defaultRichTextAttrs, // 富文本状态
|
||||||
selectedTableCells: [], // 选中的表格单元格
|
selectedTableCells: [], // 选中的表格单元格
|
||||||
@ -114,7 +114,7 @@ export const useMainStore = defineStore('main', {
|
|||||||
this.availableFonts = SYS_FONTS.filter(font => isSupportFont(font.value))
|
this.availableFonts = SYS_FONTS.filter(font => isSupportFont(font.value))
|
||||||
},
|
},
|
||||||
|
|
||||||
setToolbarState(toolbarState: ToolbarState) {
|
setToolbarState(toolbarState: ToolbarStates) {
|
||||||
this.toolbarState = toolbarState
|
this.toolbarState = toolbarState
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
import { ShapePoolItem } from '@/configs/shapes'
|
import { ShapePoolItem } from '@/configs/shapes'
|
||||||
import { LinePoolItem } from '@/configs/lines'
|
import { LinePoolItem } from '@/configs/lines'
|
||||||
|
|
||||||
export type ElementOrderCommand = 'up' | 'down' | 'top' | 'bottom'
|
|
||||||
|
|
||||||
export const enum ElementOrderCommands {
|
export const enum ElementOrderCommands {
|
||||||
UP = 'up',
|
UP = 'up',
|
||||||
DOWN = 'down',
|
DOWN = 'down',
|
||||||
@ -10,8 +8,6 @@ export const enum ElementOrderCommands {
|
|||||||
BOTTOM = 'bottom',
|
BOTTOM = 'bottom',
|
||||||
}
|
}
|
||||||
|
|
||||||
export type ElementAlignCommand = 'top'| 'bottom' | 'left' | 'right' | 'vertical' | 'horizontal' | 'center'
|
|
||||||
|
|
||||||
export const enum ElementAlignCommands {
|
export const enum ElementAlignCommands {
|
||||||
TOP = 'top',
|
TOP = 'top',
|
||||||
BOTTOM = 'bottom',
|
BOTTOM = 'bottom',
|
||||||
@ -22,8 +18,6 @@ export const enum ElementAlignCommands {
|
|||||||
CENTER = 'center',
|
CENTER = 'center',
|
||||||
}
|
}
|
||||||
|
|
||||||
export type OperateBorderLine = 'top' | 'bottom' | 'left' | 'right'
|
|
||||||
|
|
||||||
export const enum OperateBorderLines {
|
export const enum OperateBorderLines {
|
||||||
T = 'top',
|
T = 'top',
|
||||||
B = 'bottom',
|
B = 'bottom',
|
||||||
@ -31,8 +25,6 @@ export const enum OperateBorderLines {
|
|||||||
R = 'right',
|
R = 'right',
|
||||||
}
|
}
|
||||||
|
|
||||||
export type OperateResizeHandler = '' | 'left-top' | 'top' | 'right-top' | 'left' | 'right' | 'left-bottom' | 'bottom' | 'right-bottom'
|
|
||||||
|
|
||||||
export const enum OperateResizeHandlers {
|
export const enum OperateResizeHandlers {
|
||||||
LEFT_TOP = 'left-top',
|
LEFT_TOP = 'left-top',
|
||||||
TOP = 'top',
|
TOP = 'top',
|
||||||
@ -44,8 +36,6 @@ export const enum OperateResizeHandlers {
|
|||||||
RIGHT_BOTTOM = 'right-bottom',
|
RIGHT_BOTTOM = 'right-bottom',
|
||||||
}
|
}
|
||||||
|
|
||||||
export type OperateLineHandler = 'start' | 'end' | 'ctrl' | 'ctrl1' | 'ctrl2'
|
|
||||||
|
|
||||||
export const enum OperateLineHandlers {
|
export const enum OperateLineHandlers {
|
||||||
START = 'start',
|
START = 'start',
|
||||||
END = 'end',
|
END = 'end',
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
export type ToolbarState = 'symbol' | 'elAnimation' | 'elStyle' | 'elPosition' | 'slideDesign' | 'slideAnimation' | 'multiPosition'
|
|
||||||
|
|
||||||
export const enum ToolbarStates {
|
export const enum ToolbarStates {
|
||||||
SYMBOL = 'symbol',
|
SYMBOL = 'symbol',
|
||||||
EL_ANIMATION = 'elAnimation',
|
EL_ANIMATION = 'elAnimation',
|
||||||
|
@ -4,13 +4,13 @@
|
|||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { defineComponent, PropType } from 'vue'
|
import { defineComponent, PropType } from 'vue'
|
||||||
import { OperateBorderLine } from '@/types/edit'
|
import { OperateBorderLines } from '@/types/edit'
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'border-line',
|
name: 'border-line',
|
||||||
props: {
|
props: {
|
||||||
type: {
|
type: {
|
||||||
type: String as PropType<OperateBorderLine>,
|
type: String as PropType<OperateBorderLines>,
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
isWide: {
|
isWide: {
|
||||||
|
@ -32,7 +32,7 @@ import { computed, defineComponent, PropType } from 'vue'
|
|||||||
import { storeToRefs } from 'pinia'
|
import { storeToRefs } from 'pinia'
|
||||||
import { useMainStore } from '@/store'
|
import { useMainStore } from '@/store'
|
||||||
import { PPTShapeElement, PPTVideoElement, PPTLatexElement, PPTAudioElement } from '@/types/slides'
|
import { PPTShapeElement, PPTVideoElement, PPTLatexElement, PPTAudioElement } from '@/types/slides'
|
||||||
import { OperateResizeHandler } from '@/types/edit'
|
import { OperateResizeHandlers } from '@/types/edit'
|
||||||
import useCommonOperate from '../hooks/useCommonOperate'
|
import useCommonOperate from '../hooks/useCommonOperate'
|
||||||
|
|
||||||
import RotateHandler from './RotateHandler.vue'
|
import RotateHandler from './RotateHandler.vue'
|
||||||
@ -63,7 +63,7 @@ export default defineComponent({
|
|||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
scaleElement: {
|
scaleElement: {
|
||||||
type: Function as PropType<(e: MouseEvent, element: PPTElement, command: OperateResizeHandler) => void>,
|
type: Function as PropType<(e: MouseEvent, element: PPTElement, command: OperateResizeHandlers) => void>,
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -31,7 +31,7 @@ import { computed, defineComponent, PropType } from 'vue'
|
|||||||
import { storeToRefs } from 'pinia'
|
import { storeToRefs } from 'pinia'
|
||||||
import { useMainStore } from '@/store'
|
import { useMainStore } from '@/store'
|
||||||
import { PPTImageElement } from '@/types/slides'
|
import { PPTImageElement } from '@/types/slides'
|
||||||
import { OperateResizeHandler } from '@/types/edit'
|
import { OperateResizeHandlers } from '@/types/edit'
|
||||||
import useCommonOperate from '../hooks/useCommonOperate'
|
import useCommonOperate from '../hooks/useCommonOperate'
|
||||||
|
|
||||||
import RotateHandler from './RotateHandler.vue'
|
import RotateHandler from './RotateHandler.vue'
|
||||||
@ -60,7 +60,7 @@ export default defineComponent({
|
|||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
scaleElement: {
|
scaleElement: {
|
||||||
type: Function as PropType<(e: MouseEvent, element: PPTImageElement, command: OperateResizeHandler) => void>,
|
type: Function as PropType<(e: MouseEvent, element: PPTImageElement, command: OperateResizeHandlers) => void>,
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -17,7 +17,7 @@ import { computed, defineComponent, PropType } from 'vue'
|
|||||||
import { storeToRefs } from 'pinia'
|
import { storeToRefs } from 'pinia'
|
||||||
import { useMainStore } from '@/store'
|
import { useMainStore } from '@/store'
|
||||||
import { PPTLineElement } from '@/types/slides'
|
import { PPTLineElement } from '@/types/slides'
|
||||||
import { OperateLineHandler, OperateLineHandlers } from '@/types/edit'
|
import { OperateLineHandlers } from '@/types/edit'
|
||||||
|
|
||||||
import ResizeHandler from './ResizeHandler.vue'
|
import ResizeHandler from './ResizeHandler.vue'
|
||||||
|
|
||||||
@ -37,7 +37,7 @@ export default defineComponent({
|
|||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
dragLineElement: {
|
dragLineElement: {
|
||||||
type: Function as PropType<(e: MouseEvent, element: PPTLineElement, command: OperateLineHandler) => void>,
|
type: Function as PropType<(e: MouseEvent, element: PPTLineElement, command: OperateLineHandlers) => void>,
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -26,7 +26,7 @@ import { storeToRefs } from 'pinia'
|
|||||||
import { useMainStore } from '@/store'
|
import { useMainStore } from '@/store'
|
||||||
import { PPTElement } from '@/types/slides'
|
import { PPTElement } from '@/types/slides'
|
||||||
import { getElementListRange } from '@/utils/element'
|
import { getElementListRange } from '@/utils/element'
|
||||||
import { OperateResizeHandler, MultiSelectRange } from '@/types/edit'
|
import { OperateResizeHandlers, MultiSelectRange } from '@/types/edit'
|
||||||
import useCommonOperate from '../hooks/useCommonOperate'
|
import useCommonOperate from '../hooks/useCommonOperate'
|
||||||
|
|
||||||
import ResizeHandler from './ResizeHandler.vue'
|
import ResizeHandler from './ResizeHandler.vue'
|
||||||
@ -44,7 +44,7 @@ export default defineComponent({
|
|||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
scaleMultiElement: {
|
scaleMultiElement: {
|
||||||
type: Function as PropType<(e: MouseEvent, range: MultiSelectRange, command: OperateResizeHandler) => void>,
|
type: Function as PropType<(e: MouseEvent, range: MultiSelectRange, command: OperateResizeHandlers) => void>,
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -4,13 +4,13 @@
|
|||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { computed, defineComponent, PropType } from 'vue'
|
import { computed, defineComponent, PropType } from 'vue'
|
||||||
import { OperateResizeHandler } from '@/types/edit'
|
import { OperateResizeHandlers } from '@/types/edit'
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'resize-handler',
|
name: 'resize-handler',
|
||||||
props: {
|
props: {
|
||||||
type: {
|
type: {
|
||||||
type: String as PropType<OperateResizeHandler>,
|
type: String as PropType<OperateResizeHandlers>,
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
rotate: {
|
rotate: {
|
||||||
|
@ -31,7 +31,7 @@ import { computed, defineComponent, PropType } from 'vue'
|
|||||||
import { storeToRefs } from 'pinia'
|
import { storeToRefs } from 'pinia'
|
||||||
import { useMainStore } from '@/store'
|
import { useMainStore } from '@/store'
|
||||||
import { PPTShapeElement } from '@/types/slides'
|
import { PPTShapeElement } from '@/types/slides'
|
||||||
import { OperateResizeHandler } from '@/types/edit'
|
import { OperateResizeHandlers } from '@/types/edit'
|
||||||
import useCommonOperate from '../hooks/useCommonOperate'
|
import useCommonOperate from '../hooks/useCommonOperate'
|
||||||
|
|
||||||
import RotateHandler from './RotateHandler.vue'
|
import RotateHandler from './RotateHandler.vue'
|
||||||
@ -60,7 +60,7 @@ export default defineComponent({
|
|||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
scaleElement: {
|
scaleElement: {
|
||||||
type: Function as PropType<(e: MouseEvent, element: PPTShapeElement, command: OperateResizeHandler) => void>,
|
type: Function as PropType<(e: MouseEvent, element: PPTShapeElement, command: OperateResizeHandlers) => void>,
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -31,7 +31,7 @@ import { computed, defineComponent, PropType } from 'vue'
|
|||||||
import { storeToRefs } from 'pinia'
|
import { storeToRefs } from 'pinia'
|
||||||
import { useMainStore } from '@/store'
|
import { useMainStore } from '@/store'
|
||||||
import { PPTTableElement } from '@/types/slides'
|
import { PPTTableElement } from '@/types/slides'
|
||||||
import { OperateResizeHandler } from '@/types/edit'
|
import { OperateResizeHandlers } from '@/types/edit'
|
||||||
import useCommonOperate from '../hooks/useCommonOperate'
|
import useCommonOperate from '../hooks/useCommonOperate'
|
||||||
|
|
||||||
import RotateHandler from './RotateHandler.vue'
|
import RotateHandler from './RotateHandler.vue'
|
||||||
@ -60,7 +60,7 @@ export default defineComponent({
|
|||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
scaleElement: {
|
scaleElement: {
|
||||||
type: Function as PropType<(e: MouseEvent, element: PPTTableElement, command: OperateResizeHandler) => void>,
|
type: Function as PropType<(e: MouseEvent, element: PPTTableElement, command: OperateResizeHandlers) => void>,
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -31,7 +31,7 @@ import { computed, defineComponent, PropType } from 'vue'
|
|||||||
import { storeToRefs } from 'pinia'
|
import { storeToRefs } from 'pinia'
|
||||||
import { useMainStore } from '@/store'
|
import { useMainStore } from '@/store'
|
||||||
import { PPTTextElement } from '@/types/slides'
|
import { PPTTextElement } from '@/types/slides'
|
||||||
import { OperateResizeHandler } from '@/types/edit'
|
import { OperateResizeHandlers } from '@/types/edit'
|
||||||
import useCommonOperate from '../hooks/useCommonOperate'
|
import useCommonOperate from '../hooks/useCommonOperate'
|
||||||
|
|
||||||
import RotateHandler from './RotateHandler.vue'
|
import RotateHandler from './RotateHandler.vue'
|
||||||
@ -60,7 +60,7 @@ export default defineComponent({
|
|||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
scaleElement: {
|
scaleElement: {
|
||||||
type: Function as PropType<(e: MouseEvent, element: PPTTextElement, command: OperateResizeHandler) => void>,
|
type: Function as PropType<(e: MouseEvent, element: PPTTextElement, command: OperateResizeHandlers) => void>,
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -41,7 +41,7 @@ import { defineComponent, PropType, computed } from 'vue'
|
|||||||
import { storeToRefs } from 'pinia'
|
import { storeToRefs } from 'pinia'
|
||||||
import { useMainStore, useSlidesStore } from '@/store'
|
import { useMainStore, useSlidesStore } from '@/store'
|
||||||
import { ElementTypes, PPTElement, PPTLineElement, PPTVideoElement, PPTAudioElement } from '@/types/slides'
|
import { ElementTypes, PPTElement, PPTLineElement, PPTVideoElement, PPTAudioElement } from '@/types/slides'
|
||||||
import { OperateLineHandler, OperateResizeHandler } from '@/types/edit'
|
import { OperateLineHandlers, OperateResizeHandlers } from '@/types/edit'
|
||||||
|
|
||||||
import ImageElementOperate from './ImageElementOperate.vue'
|
import ImageElementOperate from './ImageElementOperate.vue'
|
||||||
import TextElementOperate from './TextElementOperate.vue'
|
import TextElementOperate from './TextElementOperate.vue'
|
||||||
@ -82,11 +82,11 @@ export default defineComponent({
|
|||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
scaleElement: {
|
scaleElement: {
|
||||||
type: Function as PropType<(e: MouseEvent, element: Exclude<PPTElement, PPTLineElement>, command: OperateResizeHandler) => void>,
|
type: Function as PropType<(e: MouseEvent, element: Exclude<PPTElement, PPTLineElement>, command: OperateResizeHandlers) => void>,
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
dragLineElement: {
|
dragLineElement: {
|
||||||
type: Function as PropType<(e: MouseEvent, element: PPTLineElement, command: OperateLineHandler) => void>,
|
type: Function as PropType<(e: MouseEvent, element: PPTLineElement, command: OperateLineHandlers) => void>,
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
openLinkDialog: {
|
openLinkDialog: {
|
||||||
|
@ -2,7 +2,7 @@ import { Ref } from 'vue'
|
|||||||
import { storeToRefs } from 'pinia'
|
import { storeToRefs } from 'pinia'
|
||||||
import { useMainStore, useSlidesStore } from '@/store'
|
import { useMainStore, useSlidesStore } from '@/store'
|
||||||
import { PPTElement, PPTLineElement } from '@/types/slides'
|
import { PPTElement, PPTLineElement } from '@/types/slides'
|
||||||
import { OperateLineHandler, OperateLineHandlers } from '@/types/edit'
|
import { OperateLineHandlers } from '@/types/edit'
|
||||||
import useHistorySnapshot from '@/hooks/useHistorySnapshot'
|
import useHistorySnapshot from '@/hooks/useHistorySnapshot'
|
||||||
|
|
||||||
interface AdsorptionPoint {
|
interface AdsorptionPoint {
|
||||||
@ -17,7 +17,7 @@ export default (elementList: Ref<PPTElement[]>) => {
|
|||||||
const { addHistorySnapshot } = useHistorySnapshot()
|
const { addHistorySnapshot } = useHistorySnapshot()
|
||||||
|
|
||||||
// 拖拽线条端点
|
// 拖拽线条端点
|
||||||
const dragLineElement = (e: MouseEvent, element: PPTLineElement, command: OperateLineHandler) => {
|
const dragLineElement = (e: MouseEvent, element: PPTLineElement, command: OperateLineHandlers) => {
|
||||||
let isMouseDown = true
|
let isMouseDown = true
|
||||||
|
|
||||||
const sorptionRange = 8
|
const sorptionRange = 8
|
||||||
|
@ -2,7 +2,7 @@ import { Ref } from 'vue'
|
|||||||
import { storeToRefs } from 'pinia'
|
import { storeToRefs } from 'pinia'
|
||||||
import { useMainStore, useSlidesStore, useKeyboardStore } from '@/store'
|
import { useMainStore, useSlidesStore, useKeyboardStore } from '@/store'
|
||||||
import { PPTElement, PPTImageElement, PPTLineElement, PPTShapeElement } from '@/types/slides'
|
import { PPTElement, PPTImageElement, PPTLineElement, PPTShapeElement } from '@/types/slides'
|
||||||
import { OperateResizeHandlers, OperateResizeHandler, AlignmentLineProps, MultiSelectRange } from '@/types/edit'
|
import { OperateResizeHandlers, AlignmentLineProps, MultiSelectRange } from '@/types/edit'
|
||||||
import { VIEWPORT_SIZE } from '@/configs/canvas'
|
import { VIEWPORT_SIZE } from '@/configs/canvas'
|
||||||
import { MIN_SIZE } from '@/configs/element'
|
import { MIN_SIZE } from '@/configs/element'
|
||||||
import { SHAPE_PATH_FORMULAS } from '@/configs/shapes'
|
import { SHAPE_PATH_FORMULAS } from '@/configs/shapes'
|
||||||
@ -106,7 +106,7 @@ export default (
|
|||||||
const { addHistorySnapshot } = useHistorySnapshot()
|
const { addHistorySnapshot } = useHistorySnapshot()
|
||||||
|
|
||||||
// 缩放元素
|
// 缩放元素
|
||||||
const scaleElement = (e: MouseEvent, element: Exclude<PPTElement, PPTLineElement>, command: OperateResizeHandler) => {
|
const scaleElement = (e: MouseEvent, element: Exclude<PPTElement, PPTLineElement>, command: OperateResizeHandlers) => {
|
||||||
let isMouseDown = true
|
let isMouseDown = true
|
||||||
mainStore.setScalingState(true)
|
mainStore.setScalingState(true)
|
||||||
|
|
||||||
@ -423,7 +423,7 @@ export default (
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 多选元素缩放
|
// 多选元素缩放
|
||||||
const scaleMultiElement = (e: MouseEvent, range: MultiSelectRange, command: OperateResizeHandler) => {
|
const scaleMultiElement = (e: MouseEvent, range: MultiSelectRange, command: OperateResizeHandlers) => {
|
||||||
let isMouseDown = true
|
let isMouseDown = true
|
||||||
|
|
||||||
const { minX, maxX, minY, maxY } = range
|
const { minX, maxX, minY, maxY } = range
|
||||||
|
@ -38,7 +38,7 @@
|
|||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { defineComponent } from 'vue'
|
import { defineComponent } from 'vue'
|
||||||
import { ElementAlignCommand } from '@/types/edit'
|
import { ElementAlignCommands } from '@/types/edit'
|
||||||
import useCombineElement from '@/hooks/useCombineElement'
|
import useCombineElement from '@/hooks/useCombineElement'
|
||||||
import useAlignActiveElement from '@/hooks/useAlignActiveElement'
|
import useAlignActiveElement from '@/hooks/useAlignActiveElement'
|
||||||
import useAlignElementToCanvas from '@/hooks/useAlignElementToCanvas'
|
import useAlignElementToCanvas from '@/hooks/useAlignElementToCanvas'
|
||||||
@ -55,7 +55,7 @@ export default defineComponent({
|
|||||||
// 多选元素对齐,需要先判断当前所选中的元素状态:
|
// 多选元素对齐,需要先判断当前所选中的元素状态:
|
||||||
// 如果所选元素为一组组合元素,则将它对齐到画布;
|
// 如果所选元素为一组组合元素,则将它对齐到画布;
|
||||||
// 如果所选元素不是组合元素或不止一组元素(即当前为可组合状态),则将这多个(多组)元素相互对齐。
|
// 如果所选元素不是组合元素或不止一组元素(即当前为可组合状态),则将这多个(多组)元素相互对齐。
|
||||||
const alignElement = (command: ElementAlignCommand) => {
|
const alignElement = (command: ElementAlignCommands) => {
|
||||||
if (canCombine.value) alignActiveElement(command)
|
if (canCombine.value) alignActiveElement(command)
|
||||||
else alignElementToCanvas(command)
|
else alignElementToCanvas(command)
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
import { computed, defineComponent, watch } from 'vue'
|
import { computed, defineComponent, watch } from 'vue'
|
||||||
import { storeToRefs } from 'pinia'
|
import { storeToRefs } from 'pinia'
|
||||||
import { useMainStore } from '@/store'
|
import { useMainStore } from '@/store'
|
||||||
import { ToolbarState, ToolbarStates } from '@/types/toolbar'
|
import { ToolbarStates } from '@/types/toolbar'
|
||||||
|
|
||||||
import ElementStylePanel from './ElementStylePanel/index.vue'
|
import ElementStylePanel from './ElementStylePanel/index.vue'
|
||||||
import ElementPositionPanel from './ElementPositionPanel.vue'
|
import ElementPositionPanel from './ElementPositionPanel.vue'
|
||||||
@ -31,7 +31,7 @@ import SymbolPanel from './SymbolPanel.vue'
|
|||||||
|
|
||||||
interface ElementTabs {
|
interface ElementTabs {
|
||||||
label: string;
|
label: string;
|
||||||
value: ToolbarState;
|
value: ToolbarStates;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
@ -65,7 +65,7 @@ export default defineComponent({
|
|||||||
{ label: '样式', value: ToolbarStates.EL_STYLE },
|
{ label: '样式', value: ToolbarStates.EL_STYLE },
|
||||||
]
|
]
|
||||||
|
|
||||||
const setToolbarState = (value: ToolbarState) => {
|
const setToolbarState = (value: ToolbarStates) => {
|
||||||
mainStore.setToolbarState(value)
|
mainStore.setToolbarState(value)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -76,7 +76,7 @@ export default defineComponent({
|
|||||||
})
|
})
|
||||||
|
|
||||||
watch(currentTabs, () => {
|
watch(currentTabs, () => {
|
||||||
const currentTabsValue: ToolbarState[] = currentTabs.value.map(tab => tab.value)
|
const currentTabsValue: ToolbarStates[] = currentTabs.value.map(tab => tab.value)
|
||||||
if (!currentTabsValue.includes(toolbarState.value)) {
|
if (!currentTabsValue.includes(toolbarState.value)) {
|
||||||
mainStore.setToolbarState(currentTabsValue[0])
|
mainStore.setToolbarState(currentTabsValue[0])
|
||||||
}
|
}
|
||||||
|
@ -70,7 +70,7 @@ import { computed, defineComponent, onMounted, onUnmounted, PropType, reactive,
|
|||||||
import { storeToRefs } from 'pinia'
|
import { storeToRefs } from 'pinia'
|
||||||
import { useMainStore, useKeyboardStore } from '@/store'
|
import { useMainStore, useKeyboardStore } from '@/store'
|
||||||
import { KEYS } from '@/configs/hotkey'
|
import { KEYS } from '@/configs/hotkey'
|
||||||
import { ImageClipData, ImageClipDataRange, ImageClipedEmitData, OperateResizeHandler, OperateResizeHandlers } from '@/types/edit'
|
import { ImageClipData, ImageClipDataRange, ImageClipedEmitData, OperateResizeHandlers } from '@/types/edit'
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'image-clip-handler',
|
name: 'image-clip-handler',
|
||||||
@ -330,7 +330,7 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 缩放裁剪区域
|
// 缩放裁剪区域
|
||||||
const scaleClipRange = (e: MouseEvent, type: OperateResizeHandler) => {
|
const scaleClipRange = (e: MouseEvent, type: OperateResizeHandlers) => {
|
||||||
isSettingClipRange.value = true
|
isSettingClipRange.value = true
|
||||||
let isMouseDown = true
|
let isMouseDown = true
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user