| 
							 | 
						import { onMounted, ref } from 'vue' | 
					
					
						
						| 
							 | 
						import { storeToRefs } from 'pinia' | 
					
					
						
						| 
							 | 
						import { useAuthStore, useSlidesStore } from '@/store' | 
					
					
						
						| 
							 | 
						import dataSyncService from '@/services/dataSyncService' | 
					
					
						
						| 
							 | 
						import api from '@/services' | 
					
					
						
						| 
							 | 
						import message from '@/utils/message' | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						export default () => { | 
					
					
						
						| 
							 | 
						  const authStore = useAuthStore() | 
					
					
						
						| 
							 | 
						  const slidesStore = useSlidesStore() | 
					
					
						
						| 
							 | 
						  const { title } = storeToRefs(slidesStore) | 
					
					
						
						| 
							 | 
						   | 
					
					
						
						| 
							 | 
						  const pptList = ref<any[]>([]) | 
					
					
						
						| 
							 | 
						  const loading = ref(false) | 
					
					
						
						| 
							 | 
						  const showPPTManager = ref(false) | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						   | 
					
					
						
						| 
							 | 
						  const refreshPPTList = async () => { | 
					
					
						
						| 
							 | 
						    if (!authStore.isLoggedIn) return | 
					
					
						
						| 
							 | 
						     | 
					
					
						
						| 
							 | 
						    loading.value = true | 
					
					
						
						| 
							 | 
						    try { | 
					
					
						
						| 
							 | 
						      pptList.value = await dataSyncService.getPPTList() | 
					
					
						
						| 
							 | 
						    } catch (error) { | 
					
					
						
						| 
							 | 
						      message.error('获取PPT列表失败') | 
					
					
						
						| 
							 | 
						    } finally { | 
					
					
						
						| 
							 | 
						      loading.value = false | 
					
					
						
						| 
							 | 
						    } | 
					
					
						
						| 
							 | 
						  } | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						   | 
					
					
						
						| 
							 | 
						  const createNewPPT = async (title: string = '新建演示文稿') => { | 
					
					
						
						| 
							 | 
						    try { | 
					
					
						
						| 
							 | 
						      loading.value = true | 
					
					
						
						| 
							 | 
						      const pptId = await dataSyncService.createNewPPT(title) | 
					
					
						
						| 
							 | 
						      if (pptId) { | 
					
					
						
						| 
							 | 
						        message.success('创建成功') | 
					
					
						
						| 
							 | 
						        await refreshPPTList() | 
					
					
						
						| 
							 | 
						        return pptId | 
					
					
						
						| 
							 | 
						      } | 
					
					
						
						| 
							 | 
						    } catch (error) { | 
					
					
						
						| 
							 | 
						      message.error('创建失败') | 
					
					
						
						| 
							 | 
						      throw error | 
					
					
						
						| 
							 | 
						    } finally { | 
					
					
						
						| 
							 | 
						      loading.value = false | 
					
					
						
						| 
							 | 
						    } | 
					
					
						
						| 
							 | 
						  } | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						   | 
					
					
						
						| 
							 | 
						  const loadPPT = async (pptId: string) => { | 
					
					
						
						| 
							 | 
						    try { | 
					
					
						
						| 
							 | 
						      loading.value = true | 
					
					
						
						| 
							 | 
						      await dataSyncService.loadPPT(pptId) | 
					
					
						
						| 
							 | 
						      message.success('PPT加载成功') | 
					
					
						
						| 
							 | 
						    } catch (error) { | 
					
					
						
						| 
							 | 
						      message.error('PPT加载失败') | 
					
					
						
						| 
							 | 
						      throw error | 
					
					
						
						| 
							 | 
						    } finally { | 
					
					
						
						| 
							 | 
						      loading.value = false | 
					
					
						
						| 
							 | 
						    } | 
					
					
						
						| 
							 | 
						  } | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						   | 
					
					
						
						| 
							 | 
						  const deletePPT = async (pptId: string) => { | 
					
					
						
						| 
							 | 
						    try { | 
					
					
						
						| 
							 | 
						      loading.value = true | 
					
					
						
						| 
							 | 
						      await dataSyncService.deletePPT(pptId) | 
					
					
						
						| 
							 | 
						      message.success('删除成功') | 
					
					
						
						| 
							 | 
						      await refreshPPTList() | 
					
					
						
						| 
							 | 
						    } catch (error) { | 
					
					
						
						| 
							 | 
						      message.error('删除失败') | 
					
					
						
						| 
							 | 
						      throw error | 
					
					
						
						| 
							 | 
						    } finally { | 
					
					
						
						| 
							 | 
						      loading.value = false | 
					
					
						
						| 
							 | 
						    } | 
					
					
						
						| 
							 | 
						  } | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						   | 
					
					
						
						| 
							 | 
						  const saveCurrentPPT = async () => { | 
					
					
						
						| 
							 | 
						    try { | 
					
					
						
						| 
							 | 
						      const success = await dataSyncService.manualSave() | 
					
					
						
						| 
							 | 
						      if (success) { | 
					
					
						
						| 
							 | 
						        message.success('保存成功') | 
					
					
						
						| 
							 | 
						      } else { | 
					
					
						
						| 
							 | 
						        message.error('保存失败') | 
					
					
						
						| 
							 | 
						      } | 
					
					
						
						| 
							 | 
						      return success | 
					
					
						
						| 
							 | 
						    } catch (error) { | 
					
					
						
						| 
							 | 
						      message.error('保存失败') | 
					
					
						
						| 
							 | 
						      return false | 
					
					
						
						| 
							 | 
						    } | 
					
					
						
						| 
							 | 
						  } | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						   | 
					
					
						
						| 
							 | 
						  const generateShareLinks = async (slideIndex = 0) => { | 
					
					
						
						| 
							 | 
						    try { | 
					
					
						
						| 
							 | 
						      const links = await dataSyncService.generateShareLink(slideIndex) | 
					
					
						
						| 
							 | 
						      message.success('分享链接生成成功') | 
					
					
						
						| 
							 | 
						      return links | 
					
					
						
						| 
							 | 
						    } catch (error) { | 
					
					
						
						| 
							 | 
						      message.error('生成分享链接失败') | 
					
					
						
						| 
							 | 
						      throw error | 
					
					
						
						| 
							 | 
						    } | 
					
					
						
						| 
							 | 
						  } | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						   | 
					
					
						
						| 
							 | 
						  const copyPPT = async (pptId: string, newTitle: string) => { | 
					
					
						
						| 
							 | 
						    try { | 
					
					
						
						| 
							 | 
						      loading.value = true | 
					
					
						
						| 
							 | 
						      const response = await api.copyPPT(pptId, newTitle) | 
					
					
						
						| 
							 | 
						      message.success('复制成功') | 
					
					
						
						| 
							 | 
						      await refreshPPTList() | 
					
					
						
						| 
							 | 
						      return response.pptId | 
					
					
						
						| 
							 | 
						    } catch (error) { | 
					
					
						
						| 
							 | 
						      message.error('复制失败') | 
					
					
						
						| 
							 | 
						      throw error | 
					
					
						
						| 
							 | 
						    } finally { | 
					
					
						
						| 
							 | 
						      loading.value = false | 
					
					
						
						| 
							 | 
						    } | 
					
					
						
						| 
							 | 
						  } | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						   | 
					
					
						
						| 
							 | 
						  onMounted(() => { | 
					
					
						
						| 
							 | 
						    if (authStore.isLoggedIn) { | 
					
					
						
						| 
							 | 
						      refreshPPTList() | 
					
					
						
						| 
							 | 
						    } | 
					
					
						
						| 
							 | 
						  }) | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						  return { | 
					
					
						
						| 
							 | 
						    pptList, | 
					
					
						
						| 
							 | 
						    loading, | 
					
					
						
						| 
							 | 
						    showPPTManager, | 
					
					
						
						| 
							 | 
						    refreshPPTList, | 
					
					
						
						| 
							 | 
						    createNewPPT, | 
					
					
						
						| 
							 | 
						    loadPPT, | 
					
					
						
						| 
							 | 
						    deletePPT, | 
					
					
						
						| 
							 | 
						    saveCurrentPPT, | 
					
					
						
						| 
							 | 
						    generateShareLinks, | 
					
					
						
						| 
							 | 
						    copyPPT | 
					
					
						
						| 
							 | 
						  } | 
					
					
						
						| 
							 | 
						} |