fix: 导入后未添加历史操作记录

This commit is contained in:
zxc 2025-03-07 18:41:44 +08:00
parent 824a38682e
commit 688336cac9

View File

@ -7,6 +7,7 @@ import { decrypt } from '@/utils/crypto'
import { type ShapePoolItem, SHAPE_LIST, SHAPE_PATH_FORMULAS } from '@/configs/shapes' import { type ShapePoolItem, SHAPE_LIST, SHAPE_PATH_FORMULAS } from '@/configs/shapes'
import useAddSlidesOrElements from '@/hooks/useAddSlidesOrElements' import useAddSlidesOrElements from '@/hooks/useAddSlidesOrElements'
import useSlideHandler from '@/hooks/useSlideHandler' import useSlideHandler from '@/hooks/useSlideHandler'
import useHistorySnapshot from './useHistorySnapshot'
import message from '@/utils/message' import message from '@/utils/message'
import { getSvgPathRange } from '@/utils/svgPathParser' import { getSvgPathRange } from '@/utils/svgPathParser'
import type { import type {
@ -32,6 +33,7 @@ export default () => {
const slidesStore = useSlidesStore() const slidesStore = useSlidesStore()
const { theme } = storeToRefs(useSlidesStore()) const { theme } = storeToRefs(useSlidesStore())
const { addHistorySnapshot } = useHistorySnapshot()
const { addSlidesFromData } = useAddSlidesOrElements() const { addSlidesFromData } = useAddSlidesOrElements()
const { isEmptySlide } = useSlideHandler() const { isEmptySlide } = useSlideHandler()
@ -48,8 +50,12 @@ export default () => {
if (cover) { if (cover) {
slidesStore.updateSlideIndex(0) slidesStore.updateSlideIndex(0)
slidesStore.setSlides(slides) slidesStore.setSlides(slides)
addHistorySnapshot()
}
else if (isEmptySlide.value) {
slidesStore.setSlides(slides)
addHistorySnapshot()
} }
else if (isEmptySlide.value) slidesStore.setSlides(slides)
else addSlidesFromData(slides) else addSlidesFromData(slides)
} }
catch { catch {
@ -129,7 +135,7 @@ export default () => {
} }
// 导入PPTX文件 // 导入PPTX文件
const importPPTXFile = (files: FileList) => { const importPPTXFile = (files: FileList, cover = false) => {
const file = files[0] const file = files[0]
if (!file) return if (!file) return
@ -527,8 +533,18 @@ export default () => {
parseElements(item.elements) parseElements(item.elements)
slides.push(slide) slides.push(slide)
} }
if (cover) {
slidesStore.updateSlideIndex(0) slidesStore.updateSlideIndex(0)
slidesStore.setSlides(slides) slidesStore.setSlides(slides)
addHistorySnapshot()
}
else if (isEmptySlide.value) {
slidesStore.setSlides(slides)
addHistorySnapshot()
}
else addSlidesFromData(slides)
exporting.value = false exporting.value = false
} }
reader.readAsArrayBuffer(file) reader.readAsArrayBuffer(file)