diff --git a/src/hooks/useAddSlidesOrElements.ts b/src/hooks/useAddSlidesOrElements.ts index 1b0e63a9..5666b29c 100644 --- a/src/hooks/useAddSlidesOrElements.ts +++ b/src/hooks/useAddSlidesOrElements.ts @@ -50,14 +50,15 @@ export default () => { element.id = elIdMap[element.id] if (element.groupId) element.groupId = groupIdMap[element.groupId] - // 判断element跳转链接,如为slide且复制页面含target则替换,否则重置为undefined - if (element?.link && element.link.type === 'slide') { + // 若元素绑定了页面跳转链接 + if (element.link && element.link.type === 'slide') { + + // 待添加页面中包含该页面,则替换相关绑定关系 if (slideIdMap[element.link.target]) { element.link.target = slideIdMap[element.link.target] } - else { - element.link = undefined - } + // 待添加页面中不包含该页面,则删除该元素绑定的页面跳转 + else delete element.link } } // 动画id替换 @@ -69,7 +70,7 @@ export default () => { } return { ...slide, - id: nanoid(10), + id: slideIdMap[slide.id], } }) slidesStore.addSlide(newSlides) diff --git a/src/utils/element.ts b/src/utils/element.ts index 1e063d24..5937b19d 100644 --- a/src/utils/element.ts +++ b/src/utils/element.ts @@ -1,6 +1,6 @@ import tinycolor from 'tinycolor2' import { nanoid } from 'nanoid' -import { PPTElement, PPTLineElement } from '@/types/slides' +import { PPTElement, PPTLineElement, Slide } from '@/types/slides' interface RotatedElementData { left: number