refactor: 删除多余的类型定义

This commit is contained in:
pipipi-pikachu 2022-02-27 16:44:36 +08:00
parent 14c6965153
commit de95be8430
22 changed files with 46 additions and 58 deletions

View File

@ -1,7 +1,7 @@
import { storeToRefs } from 'pinia'
import { useMainStore, useSlidesStore } from '@/store'
import { PPTElement } from '@/types/slides'
import { ElementAlignCommand, ElementAlignCommands } from '@/types/edit'
import { ElementAlignCommands } from '@/types/edit'
import { getElementListRange, getRectRotatedOffset } from '@/utils/element'
import useHistorySnapshot from './useHistorySnapshot'
@ -16,7 +16,7 @@ export default () => {
*
* @param command
*/
const alignActiveElement = (command: ElementAlignCommand) => {
const alignActiveElement = (command: ElementAlignCommands) => {
const { minX, maxX, minY, maxY } = getElementListRange(activeElementList.value)
const elementList: PPTElement[] = JSON.parse(JSON.stringify(currentSlide.value.elements))

View File

@ -1,7 +1,7 @@
import { storeToRefs } from 'pinia'
import { useMainStore, useSlidesStore } from '@/store'
import { PPTElement } from '@/types/slides'
import { ElementAlignCommand, ElementAlignCommands } from '@/types/edit'
import { ElementAlignCommands } from '@/types/edit'
import { getElementListRange } from '@/utils/element'
import { VIEWPORT_SIZE } from '@/configs/canvas'
import useHistorySnapshot from './useHistorySnapshot'
@ -17,7 +17,7 @@ export default () => {
*
* @param command
*/
const alignElementToCanvas = (command: ElementAlignCommand) => {
const alignElementToCanvas = (command: ElementAlignCommands) => {
const viewportWidth = VIEWPORT_SIZE
const viewportHeight = VIEWPORT_SIZE * viewportRatio.value
const { minX, maxX, minY, maxY } = getElementListRange(activeElementList.value)

View File

@ -1,7 +1,7 @@
import { onMounted, onUnmounted } from 'vue'
import { storeToRefs } from 'pinia'
import { useMainStore, useSlidesStore, useKeyboardStore } from '@/store'
import { ElementOrderCommand, ElementOrderCommands } from '@/types/edit'
import { ElementOrderCommands } from '@/types/edit'
import { KEYS } from '@/configs/hotkey'
import useSlideHandler from './useSlideHandler'
@ -95,7 +95,7 @@ export default () => {
else if (key === KEYS.UP || key === KEYS.DOWN) updateSlideIndex(key)
}
const order = (command: ElementOrderCommand) => {
const order = (command: ElementOrderCommands) => {
if (!handleElement.value) return
orderElement(handleElement.value, command)
}

View File

@ -1,7 +1,7 @@
import { storeToRefs } from 'pinia'
import { useSlidesStore } from '@/store'
import { PPTElement } from '@/types/slides'
import { ElementOrderCommand, ElementOrderCommands } from '@/types/edit'
import { ElementOrderCommands } from '@/types/edit'
import useHistorySnapshot from '@/hooks/useHistorySnapshot'
export default () => {
@ -192,7 +192,7 @@ export default () => {
* @param element
* @param command
*/
const orderElement = (element: PPTElement, command: ElementOrderCommand) => {
const orderElement = (element: PPTElement, command: ElementOrderCommands) => {
let newElementList
if (command === ElementOrderCommands.UP) newElementList = moveUpElement(currentSlide.value.elements, element)

View File

@ -1,6 +1,6 @@
import { defineStore } from 'pinia'
import { CreatingElement } from '@/types/edit'
import { ToolbarState } from '@/types/toolbar'
import { ToolbarStates } from '@/types/toolbar'
import { SYS_FONTS } from '@/configs/font'
import { TextAttrs, defaultRichTextAttrs } from '@/utils/prosemirror/utils'
import { isSupportFont } from '@/utils/font'
@ -19,7 +19,7 @@ export interface MainState {
showGridLines: boolean;
creatingElement: CreatingElement | null;
availableFonts: typeof SYS_FONTS;
toolbarState: ToolbarState;
toolbarState: ToolbarStates;
clipingImageElementId: string;
isScaling: boolean;
richTextAttrs: TextAttrs;
@ -41,7 +41,7 @@ export const useMainStore = defineStore('main', {
showGridLines: false, // 显示网格线
creatingElement: null, // 正在插入的元素信息,需要通过绘制插入的元素(文字、形状、线条)
availableFonts: [], // 当前环境可用字体
toolbarState: 'slideDesign', // 右侧工具栏状态
toolbarState: ToolbarStates.SLIDE_DESIGN, // 右侧工具栏状态
clipingImageElementId: '', // 当前正在裁剪的图片ID
richTextAttrs: defaultRichTextAttrs, // 富文本状态
selectedTableCells: [], // 选中的表格单元格
@ -114,7 +114,7 @@ export const useMainStore = defineStore('main', {
this.availableFonts = SYS_FONTS.filter(font => isSupportFont(font.value))
},
setToolbarState(toolbarState: ToolbarState) {
setToolbarState(toolbarState: ToolbarStates) {
this.toolbarState = toolbarState
},

View File

@ -1,8 +1,6 @@
import { ShapePoolItem } from '@/configs/shapes'
import { LinePoolItem } from '@/configs/lines'
export type ElementOrderCommand = 'up' | 'down' | 'top' | 'bottom'
export const enum ElementOrderCommands {
UP = 'up',
DOWN = 'down',
@ -10,8 +8,6 @@ export const enum ElementOrderCommands {
BOTTOM = 'bottom',
}
export type ElementAlignCommand = 'top'| 'bottom' | 'left' | 'right' | 'vertical' | 'horizontal' | 'center'
export const enum ElementAlignCommands {
TOP = 'top',
BOTTOM = 'bottom',
@ -22,8 +18,6 @@ export const enum ElementAlignCommands {
CENTER = 'center',
}
export type OperateBorderLine = 'top' | 'bottom' | 'left' | 'right'
export const enum OperateBorderLines {
T = 'top',
B = 'bottom',
@ -31,8 +25,6 @@ export const enum OperateBorderLines {
R = 'right',
}
export type OperateResizeHandler = '' | 'left-top' | 'top' | 'right-top' | 'left' | 'right' | 'left-bottom' | 'bottom' | 'right-bottom'
export const enum OperateResizeHandlers {
LEFT_TOP = 'left-top',
TOP = 'top',
@ -44,8 +36,6 @@ export const enum OperateResizeHandlers {
RIGHT_BOTTOM = 'right-bottom',
}
export type OperateLineHandler = 'start' | 'end' | 'ctrl' | 'ctrl1' | 'ctrl2'
export const enum OperateLineHandlers {
START = 'start',
END = 'end',

View File

@ -1,5 +1,3 @@
export type ToolbarState = 'symbol' | 'elAnimation' | 'elStyle' | 'elPosition' | 'slideDesign' | 'slideAnimation' | 'multiPosition'
export const enum ToolbarStates {
SYMBOL = 'symbol',
EL_ANIMATION = 'elAnimation',

View File

@ -4,13 +4,13 @@
<script lang="ts">
import { defineComponent, PropType } from 'vue'
import { OperateBorderLine } from '@/types/edit'
import { OperateBorderLines } from '@/types/edit'
export default defineComponent({
name: 'border-line',
props: {
type: {
type: String as PropType<OperateBorderLine>,
type: String as PropType<OperateBorderLines>,
required: true,
},
isWide: {

View File

@ -32,7 +32,7 @@ import { computed, defineComponent, PropType } from 'vue'
import { storeToRefs } from 'pinia'
import { useMainStore } from '@/store'
import { PPTShapeElement, PPTVideoElement, PPTLatexElement, PPTAudioElement } from '@/types/slides'
import { OperateResizeHandler } from '@/types/edit'
import { OperateResizeHandlers } from '@/types/edit'
import useCommonOperate from '../hooks/useCommonOperate'
import RotateHandler from './RotateHandler.vue'
@ -63,7 +63,7 @@ export default defineComponent({
required: true,
},
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,
},
},

View File

@ -31,7 +31,7 @@ import { computed, defineComponent, PropType } from 'vue'
import { storeToRefs } from 'pinia'
import { useMainStore } from '@/store'
import { PPTImageElement } from '@/types/slides'
import { OperateResizeHandler } from '@/types/edit'
import { OperateResizeHandlers } from '@/types/edit'
import useCommonOperate from '../hooks/useCommonOperate'
import RotateHandler from './RotateHandler.vue'
@ -60,7 +60,7 @@ export default defineComponent({
required: true,
},
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,
},
},

View File

@ -17,7 +17,7 @@ import { computed, defineComponent, PropType } from 'vue'
import { storeToRefs } from 'pinia'
import { useMainStore } from '@/store'
import { PPTLineElement } from '@/types/slides'
import { OperateLineHandler, OperateLineHandlers } from '@/types/edit'
import { OperateLineHandlers } from '@/types/edit'
import ResizeHandler from './ResizeHandler.vue'
@ -37,7 +37,7 @@ export default defineComponent({
required: true,
},
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,
},
},

View File

@ -26,7 +26,7 @@ import { storeToRefs } from 'pinia'
import { useMainStore } from '@/store'
import { PPTElement } from '@/types/slides'
import { getElementListRange } from '@/utils/element'
import { OperateResizeHandler, MultiSelectRange } from '@/types/edit'
import { OperateResizeHandlers, MultiSelectRange } from '@/types/edit'
import useCommonOperate from '../hooks/useCommonOperate'
import ResizeHandler from './ResizeHandler.vue'
@ -44,7 +44,7 @@ export default defineComponent({
required: true,
},
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,
},
},

View File

@ -4,13 +4,13 @@
<script lang="ts">
import { computed, defineComponent, PropType } from 'vue'
import { OperateResizeHandler } from '@/types/edit'
import { OperateResizeHandlers } from '@/types/edit'
export default defineComponent({
name: 'resize-handler',
props: {
type: {
type: String as PropType<OperateResizeHandler>,
type: String as PropType<OperateResizeHandlers>,
default: '',
},
rotate: {

View File

@ -31,7 +31,7 @@ import { computed, defineComponent, PropType } from 'vue'
import { storeToRefs } from 'pinia'
import { useMainStore } from '@/store'
import { PPTShapeElement } from '@/types/slides'
import { OperateResizeHandler } from '@/types/edit'
import { OperateResizeHandlers } from '@/types/edit'
import useCommonOperate from '../hooks/useCommonOperate'
import RotateHandler from './RotateHandler.vue'
@ -60,7 +60,7 @@ export default defineComponent({
required: true,
},
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,
},
},

View File

@ -31,7 +31,7 @@ import { computed, defineComponent, PropType } from 'vue'
import { storeToRefs } from 'pinia'
import { useMainStore } from '@/store'
import { PPTTableElement } from '@/types/slides'
import { OperateResizeHandler } from '@/types/edit'
import { OperateResizeHandlers } from '@/types/edit'
import useCommonOperate from '../hooks/useCommonOperate'
import RotateHandler from './RotateHandler.vue'
@ -60,7 +60,7 @@ export default defineComponent({
required: true,
},
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,
},
},

View File

@ -31,7 +31,7 @@ import { computed, defineComponent, PropType } from 'vue'
import { storeToRefs } from 'pinia'
import { useMainStore } from '@/store'
import { PPTTextElement } from '@/types/slides'
import { OperateResizeHandler } from '@/types/edit'
import { OperateResizeHandlers } from '@/types/edit'
import useCommonOperate from '../hooks/useCommonOperate'
import RotateHandler from './RotateHandler.vue'
@ -60,7 +60,7 @@ export default defineComponent({
required: true,
},
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,
},
},

View File

@ -41,7 +41,7 @@ import { defineComponent, PropType, computed } from 'vue'
import { storeToRefs } from 'pinia'
import { useMainStore, useSlidesStore } from '@/store'
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 TextElementOperate from './TextElementOperate.vue'
@ -82,11 +82,11 @@ export default defineComponent({
required: true,
},
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,
},
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,
},
openLinkDialog: {

View File

@ -2,7 +2,7 @@ import { Ref } from 'vue'
import { storeToRefs } from 'pinia'
import { useMainStore, useSlidesStore } from '@/store'
import { PPTElement, PPTLineElement } from '@/types/slides'
import { OperateLineHandler, OperateLineHandlers } from '@/types/edit'
import { OperateLineHandlers } from '@/types/edit'
import useHistorySnapshot from '@/hooks/useHistorySnapshot'
interface AdsorptionPoint {
@ -17,7 +17,7 @@ export default (elementList: Ref<PPTElement[]>) => {
const { addHistorySnapshot } = useHistorySnapshot()
// 拖拽线条端点
const dragLineElement = (e: MouseEvent, element: PPTLineElement, command: OperateLineHandler) => {
const dragLineElement = (e: MouseEvent, element: PPTLineElement, command: OperateLineHandlers) => {
let isMouseDown = true
const sorptionRange = 8

View File

@ -2,7 +2,7 @@ import { Ref } from 'vue'
import { storeToRefs } from 'pinia'
import { useMainStore, useSlidesStore, useKeyboardStore } from '@/store'
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 { MIN_SIZE } from '@/configs/element'
import { SHAPE_PATH_FORMULAS } from '@/configs/shapes'
@ -106,7 +106,7 @@ export default (
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
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
const { minX, maxX, minY, maxY } = range

View File

@ -38,7 +38,7 @@
<script lang="ts">
import { defineComponent } from 'vue'
import { ElementAlignCommand } from '@/types/edit'
import { ElementAlignCommands } from '@/types/edit'
import useCombineElement from '@/hooks/useCombineElement'
import useAlignActiveElement from '@/hooks/useAlignActiveElement'
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)
else alignElementToCanvas(command)
}

View File

@ -19,7 +19,7 @@
import { computed, defineComponent, watch } from 'vue'
import { storeToRefs } from 'pinia'
import { useMainStore } from '@/store'
import { ToolbarState, ToolbarStates } from '@/types/toolbar'
import { ToolbarStates } from '@/types/toolbar'
import ElementStylePanel from './ElementStylePanel/index.vue'
import ElementPositionPanel from './ElementPositionPanel.vue'
@ -31,7 +31,7 @@ import SymbolPanel from './SymbolPanel.vue'
interface ElementTabs {
label: string;
value: ToolbarState;
value: ToolbarStates;
}
export default defineComponent({
@ -65,7 +65,7 @@ export default defineComponent({
{ label: '样式', value: ToolbarStates.EL_STYLE },
]
const setToolbarState = (value: ToolbarState) => {
const setToolbarState = (value: ToolbarStates) => {
mainStore.setToolbarState(value)
}
@ -76,7 +76,7 @@ export default defineComponent({
})
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)) {
mainStore.setToolbarState(currentTabsValue[0])
}

View File

@ -70,7 +70,7 @@ import { computed, defineComponent, onMounted, onUnmounted, PropType, reactive,
import { storeToRefs } from 'pinia'
import { useMainStore, useKeyboardStore } from '@/store'
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({
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
let isMouseDown = true