mirror of
https://gitee.com/dromara/go-view.git
synced 2025-05-11 05:41:34 +08:00

第三方应用open预览地址的时候,发现window.opener并不是一个window对象会报addEventListener不存在。 Signed-off-by: 空 <jinj@hxcfsoft.com>
27 lines
963 B
Vue
27 lines
963 B
Vue
<template>
|
|
<preview :key="key"></preview>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
import { getSessionStorageInfo } from './utils'
|
|
import type { ChartEditStorageType } from './index.d'
|
|
import { SavePageEnum } from '@/enums/editPageEnum'
|
|
import { setSessionStorage } from '@/utils'
|
|
import { StorageEnum } from '@/enums/storageEnum'
|
|
import { ref } from 'vue'
|
|
import Preview from './index.vue'
|
|
|
|
let key = ref(Date.now())
|
|
|
|
// 数据变更 -> 组件销毁重建
|
|
;[SavePageEnum.JSON, SavePageEnum.CHART_TO_PREVIEW].forEach((saveEvent: string) => {
|
|
if (!window.opener) return
|
|
if(!(window.opener === window)) return
|
|
window.opener.addEventListener(saveEvent, async (e: any) => {
|
|
const localStorageInfo: ChartEditStorageType = await getSessionStorageInfo() as unknown as ChartEditStorageType
|
|
setSessionStorage(StorageEnum.GO_CHART_STORAGE_LIST, [{ ...e.detail, id: localStorageInfo.id }])
|
|
key.value = Date.now()
|
|
})
|
|
})
|
|
</script>
|