diff --git a/src/components/ColorListButton.vue b/src/components/ColorListButton.vue
new file mode 100644
index 00000000..a175f33d
--- /dev/null
+++ b/src/components/ColorListButton.vue
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/hooks/useImport.ts b/src/hooks/useImport.ts
index f248d9d1..df8f91d8 100644
--- a/src/hooks/useImport.ts
+++ b/src/hooks/useImport.ts
@@ -155,6 +155,7 @@ export default () => {
const width = json.size.width
slidesStore.setViewportSize(width * ratio)
+ slidesStore.setTheme({ themeColors: json.themeColors })
const slides: Slide[] = []
for (const item of json.slides) {
diff --git a/src/hooks/useSlideTheme.ts b/src/hooks/useSlideTheme.ts
index 47ed4dce..9d7cacfa 100644
--- a/src/hooks/useSlideTheme.ts
+++ b/src/hooks/useSlideTheme.ts
@@ -292,31 +292,23 @@ export default () => {
}
}
- // 应用预置主题(单页)
- const applyPresetThemeToSingleSlide = (theme: PresetTheme) => {
- const newSlide: Slide = JSON.parse(JSON.stringify(currentSlide.value))
- setSlideTheme(newSlide, theme)
- slidesStore.updateSlide({
- background: newSlide.background,
- elements: newSlide.elements,
- })
- addHistorySnapshot()
- }
-
- // 应用预置主题(全部)
- const applyPresetThemeToAllSlides = (theme: PresetTheme) => {
- const newSlides: Slide[] = JSON.parse(JSON.stringify(slides.value))
- for (const slide of newSlides) {
- setSlideTheme(slide, theme)
- }
+ // 应用预置主题
+ const applyPresetTheme = (theme: PresetTheme, resetSlides = false) => {
slidesStore.setTheme({
backgroundColor: theme.background,
themeColors: theme.colors,
fontColor: theme.fontColor,
fontName: theme.fontname,
})
- slidesStore.setSlides(newSlides)
- addHistorySnapshot()
+
+ if (resetSlides) {
+ const newSlides: Slide[] = JSON.parse(JSON.stringify(slides.value))
+ for (const slide of newSlides) {
+ setSlideTheme(slide, theme)
+ }
+ slidesStore.setSlides(newSlides)
+ addHistorySnapshot()
+ }
}
// 将当前主题配置应用到全部页面
@@ -373,8 +365,7 @@ export default () => {
return {
getSlidesThemeStyles,
- applyPresetThemeToSingleSlide,
- applyPresetThemeToAllSlides,
+ applyPresetTheme,
applyThemeToAllSlides,
}
}
\ No newline at end of file
diff --git a/src/views/Editor/Toolbar/SlideDesignPanel/ThemeColorsSetting.vue b/src/views/Editor/Toolbar/SlideDesignPanel/ThemeColorsSetting.vue
new file mode 100644
index 00000000..b4d332d9
--- /dev/null
+++ b/src/views/Editor/Toolbar/SlideDesignPanel/ThemeColorsSetting.vue
@@ -0,0 +1,81 @@
+
+
+
编辑主题色
+
+
+
+
幻灯片主题色{{ index + 1 }}:
+
+
+ themeColors[index] = value"
+ />
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/Editor/Toolbar/ThemeStylesExtract.vue b/src/views/Editor/Toolbar/SlideDesignPanel/ThemeStylesExtract.vue
similarity index 100%
rename from src/views/Editor/Toolbar/ThemeStylesExtract.vue
rename to src/views/Editor/Toolbar/SlideDesignPanel/ThemeStylesExtract.vue
diff --git a/src/views/Editor/Toolbar/SlideDesignPanel.vue b/src/views/Editor/Toolbar/SlideDesignPanel/index.vue
similarity index 96%
rename from src/views/Editor/Toolbar/SlideDesignPanel.vue
rename to src/views/Editor/Toolbar/SlideDesignPanel/index.vue
index 4eabd959..6c3dc6d6 100644
--- a/src/views/Editor/Toolbar/SlideDesignPanel.vue
+++ b/src/views/Editor/Toolbar/SlideDesignPanel/index.vue
@@ -162,18 +162,10 @@
-
+
+
@@ -284,8 +276,8 @@
-
-
+
+
@@ -299,6 +291,14 @@
>
+
+
+
+