@vuemap/vue-amap
Version:
高德地图vue3版本封装
1 lines • 5.43 kB
Source Map (JSON)
{"version":3,"file":"InfoWindow.vue2.mjs","sources":["../../../../../packages/infoWindow/InfoWindow/InfoWindow.vue"],"sourcesContent":["<template>\r\n <div style=\"display: none;\">\r\n <teleport\r\n v-if=\"!!divId\"\r\n :to=\"'#'+divId\"\r\n >\r\n <slot />\r\n </teleport>\r\n </div>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport {defineOptions, nextTick, onUnmounted, ref} from 'vue';\r\nimport {useRegister} from \"../../../mixins\";\r\nimport guid from \"../../../utils/guid\";\r\nimport {propsTypes} from './props';\r\ndefineOptions({\r\n name: 'ElAmapInfoWindow',\r\n inheritAttrs: false\r\n});\r\nconst props = defineProps(propsTypes);\r\n\r\nconst emits = defineEmits(['init', 'update:visible']);\r\n\r\nconst needTeleport = !props.content;\r\n\r\nconst tempId = `info-${guid()}`;\r\n\r\nconst divId = ref('');\r\n\r\nlet $amapComponent: AMap.InfoWindow;\r\n\r\nconst {$$getInstance, parentInstance} = useRegister<AMap.InfoWindow, AMap.Map>((options, parentComponent) => {\r\n return new Promise<AMap.InfoWindow>((resolve) => {\r\n if (!options.content) {\r\n options.content = `<div id=\"${tempId}\"></div>`;\r\n }\r\n $amapComponent = new AMap.InfoWindow(options);\r\n $amapComponent.on('close', () => {\r\n emits('update:visible', false);\r\n });\r\n if (props.visible) {\r\n $amapComponent.open(parentComponent, props.position as [number, number]);\r\n if(needTeleport){\r\n divId.value = tempId;\r\n nextTick(() => {\r\n $amapComponent.setAnchor($amapComponent.getAnchor() as string);\r\n });\r\n }\r\n }\r\n resolve($amapComponent);\r\n });\r\n\r\n}, {\r\n emits,\r\n watchRedirectFn: {\r\n __position (position: [number, number]){\r\n if (props.visible) {\r\n $amapComponent.open(parentInstance?.$amapComponent, position);\r\n if(needTeleport){\r\n divId.value = tempId;\r\n }\r\n } else {\r\n $amapComponent.setPosition(position);\r\n }\r\n },\r\n __visible (flag: boolean) {\r\n // fixed Amap info-window reopen\r\n const position = $amapComponent.getPosition();\r\n if (position) {\r\n if(!flag){\r\n $amapComponent.close();\r\n }else{\r\n $amapComponent.open(parentInstance?.$amapComponent, [position.lng, position.lat]);\r\n if(needTeleport){\r\n divId.value = tempId;\r\n nextTick(() => {\r\n $amapComponent.setAnchor($amapComponent.getAnchor() as string);\r\n });\r\n }\r\n }\r\n // !flag ? $amapComponent.close() : $amapComponent.open(parentInstance?.$amapComponent, [position.lng, position.lat]);\r\n }\r\n },\r\n },\r\n destroyComponent () {\r\n if($amapComponent){\r\n if($amapComponent.getIsOpen()){\r\n $amapComponent.close();\r\n }\r\n $amapComponent = null as any;\r\n }\r\n },\r\n});\r\n\r\nonUnmounted(() => {\r\n if($amapComponent){\r\n $amapComponent.close();\r\n }\r\n});\r\n\r\ndefineExpose({\r\n $$getInstance\r\n});\r\n\r\n</script>\r\n"],"names":[],"mappings":"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"}