import { useRootStore } from '@/store/root' import { storeToRefs } from 'pinia' import { getMapData } from '@/http/api/base' import Message from '@/base/Message/Message' export const useInitMap = async function () { const store = useRootStore() const { device, facilityList, shopList, config } = storeToRefs(store) try { const { data } = await getMapData() const delPrefixOfFacilityList = facilityList.value.slice().map(item => ({ ...item, filePath: item.filePath.replace(config.value.sourceUrl, '') })) //初始化地图 // window.MainMap_QM.init( // () => { // store.SET_MAP_STATUS(true) // window.Map_QM.addEventListener('shop', onClickShop, false) // window.Map_QM.renderer.domElement.addEventListener('webglcontextlost', onContextLost) // }, // { // build: device.value?.buildingOrder ?? 0, // floor: device.value.floorOrder, // navPoint: device.value.location, // angle: device.value.angle, // iconUrl: delPrefixOfFacilityList, // mapData: data, // shopData: shopList.value.slice() // } // ) } catch (error) { Message({ text: '获取地图数据失败', type: 'success' }) } } //点击地图店铺box function onClickShop(event: any) { const store = useRootStore() if (event.data) { showMapDialog() window.Map_QM.addElementLabel(document.getElementById('shopInfo'), event.data.xaxis, event.data.yaxis) store.SET_SHOP(event.data.shopData) } else { hideMapDialog() } } //地图弹框消失 export function hideMapDialog() { ;(document.getElementById('shopInfo') as HTMLElement).style.visibility = 'hidden' } //显示地图弹框 function showMapDialog() { ;(document.getElementById('shopInfo') as HTMLElement).style.visibility = 'visible' } //监听地图上下文丢失 刷新页面 function onContextLost() { location.reload() }