diff --git a/client/src/components/admin/AdminLayout.vue b/client/src/components/admin/AdminLayout.vue index 18f8941..b4fc788 100644 --- a/client/src/components/admin/AdminLayout.vue +++ b/client/src/components/admin/AdminLayout.vue @@ -250,6 +250,7 @@ const menuItems = ref([ isOpen: false, children: [ { title: '全局配置', path: '/admin/settings', icon: '🛠️' }, + { title: 'PPT 模板', path: '/admin/ppt-templates', icon: '📽️' }, { title: '操作日志', path: '/admin/logs', icon: '📋' }, { title: '访问日志', path: '/admin/access-logs', icon: '🌐' } ] diff --git a/client/src/components/ppt/PptSlideCanvas.vue b/client/src/components/ppt/PptSlideCanvas.vue index 47acca0..257415a 100644 --- a/client/src/components/ppt/PptSlideCanvas.vue +++ b/client/src/components/ppt/PptSlideCanvas.vue @@ -14,18 +14,20 @@ import '../../styles/pptPreview.css' interface Props { slide: PptSlide - theme?: 'light' | 'dark' compact?: boolean /** 分步揭示:0=仅标题居中;Infinity=显示全部(缩略图) */ visibleStep?: number slideDirection?: SlideDirection + templateVars?: Record + revealTransition?: string } const props = withDefaults(defineProps(), { - theme: 'dark', compact: false, visibleStep: Number.POSITIVE_INFINITY, slideDirection: 'none', + templateVars: () => ({}), + revealTransition: 'ppt-reveal', }) type ImageLoadState = 'initial' | 'noReferrer' | 'failed' @@ -33,7 +35,6 @@ type ImageLoadState = 'initial' | 'noReferrer' | 'failed' const imageLoadStates = ref>(new Map()) const videoRefs = ref>(new Map()) -const themeClass = computed(() => `ppt-theme-${props.theme}`) const showFull = computed(() => !Number.isFinite(props.visibleStep)) const titleMetaLines = computed(() => { @@ -127,7 +128,7 @@ const stopMediaEvent = (e: Event) => {