wrapper.vue 900 B

12345678910111213141516171819202122232425
  1. <template>
  2. <preview :key="key"></preview>
  3. </template>
  4. <script setup lang="ts">
  5. import { getSessionStorageInfo } from './utils'
  6. import type { ChartEditStorageType } from './index.d'
  7. import { SavePageEnum } from '@/enums/editPageEnum'
  8. import { setSessionStorage } from '@/utils'
  9. import { StorageEnum } from '@/enums/storageEnum'
  10. import { ref } from 'vue'
  11. import Preview from './index.vue'
  12. let key = ref(Date.now())
  13. let localStorageInfo: ChartEditStorageType = getSessionStorageInfo() as ChartEditStorageType
  14. // 数据变更 -> 同步sessionStorage -> reload页面 (重新执行Mounted)
  15. ;[SavePageEnum.JSON, SavePageEnum.CHART].forEach((saveEvent: string) => {
  16. if (!window.opener) return
  17. window.opener.addEventListener(saveEvent, (e: any) => {
  18. setSessionStorage(StorageEnum.GO_CHART_STORAGE_LIST, [{ ...e.detail, id: localStorageInfo.id }])
  19. key.value = Date.now()
  20. })
  21. })
  22. </script>