mirror of
https://github.com/pipipi-pikachu/PPTist.git
synced 2025-04-15 02:20:00 +08:00
63 lines
1.6 KiB
Vue
63 lines
1.6 KiB
Vue
<template>
|
||
<Screen v-if="screening" />
|
||
<Editor v-else-if="isPC" />
|
||
<Mobile v-else />
|
||
</template>
|
||
|
||
<script lang="ts">
|
||
import { defineComponent, onMounted } from 'vue'
|
||
import { storeToRefs } from 'pinia'
|
||
import { useScreenStore, useMainStore, useSnapshotStore } from '@/store'
|
||
import { LOCALSTORAGE_KEY_DISCARDED_DB } from '@/configs/storage'
|
||
import { isPC } from './utils/common'
|
||
|
||
import Editor from './views/Editor/index.vue'
|
||
import Screen from './views/Screen/index.vue'
|
||
import Mobile from './views/Mobile/index.vue'
|
||
|
||
export default defineComponent({
|
||
name: 'app',
|
||
components: {
|
||
Editor,
|
||
Screen,
|
||
Mobile,
|
||
},
|
||
setup() {
|
||
const mainStore = useMainStore()
|
||
const snapshotStore = useSnapshotStore()
|
||
const { databaseId } = storeToRefs(mainStore)
|
||
const { screening } = storeToRefs(useScreenStore())
|
||
|
||
if (process.env.NODE_ENV === 'production') {
|
||
window.onbeforeunload = () => false
|
||
}
|
||
|
||
onMounted(() => {
|
||
snapshotStore.initSnapshotDatabase()
|
||
mainStore.setAvailableFonts()
|
||
})
|
||
|
||
// 应用注销时向 localStorage 中记录下本次 indexedDB 的数据库ID,用于之后清除数据库
|
||
window.addEventListener('unload', () => {
|
||
const discardedDB = localStorage.getItem(LOCALSTORAGE_KEY_DISCARDED_DB)
|
||
const discardedDBList: string[] = discardedDB ? JSON.parse(discardedDB) : []
|
||
|
||
discardedDBList.push(databaseId.value)
|
||
|
||
const newDiscardedDB = JSON.stringify(discardedDBList)
|
||
localStorage.setItem(LOCALSTORAGE_KEY_DISCARDED_DB, newDiscardedDB)
|
||
})
|
||
|
||
return {
|
||
screening,
|
||
isPC: isPC(),
|
||
}
|
||
},
|
||
})
|
||
</script>
|
||
|
||
<style lang="scss">
|
||
#app {
|
||
height: 100%;
|
||
}
|
||
</style> |