@vuemap/vue-amap
Version:
高德地图vue3版本封装
1 lines • 4.87 kB
Source Map (JSON)
{"version":3,"file":"Marker.vue2.mjs","sources":["../../../../../packages/marker/Marker/Marker.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, ref, useSlots} from 'vue';\r\nimport {useRegister} from \"../../../mixins\";\r\nimport {buildProps} from \"../../../utils/buildHelper\";\r\nimport {isMapInstance, isOverlayGroupInstance} from '../../../utils';\r\nimport guid from \"../../../utils/guid\";\r\nimport {propsTypes} from './props';\r\nexport type {MarkerMoveOptions} from './props';\r\n\r\ndefineOptions({\r\n name: 'ElAmapMarker',\r\n inheritAttrs: false\r\n});\r\n\r\nconst props = defineProps(buildProps(propsTypes));\r\nconst emits = defineEmits(['init','update:position']);\r\n\r\n\r\nconst tempId = `marker-${guid()}`;\r\n\r\nconst divId = ref('');\r\n\r\nlet $amapComponent: AMap.Marker;\r\n\r\nlet withSlot = false;\r\nconst $slots = useSlots();\r\n\r\nconst {$$getInstance, parentInstance} = useRegister<AMap.Marker, any>((options, parentComponent) => {\r\n return new Promise<AMap.Marker>((resolve) => {\r\n if ($slots.default && $slots.default().length > 0) {\r\n withSlot = true;\r\n options.content = `<div id=\"${tempId}\"></div>`;\r\n }\r\n $amapComponent = new AMap.Marker(options);\r\n if (isMapInstance(parentComponent)) {\r\n parentComponent.add($amapComponent);\r\n } else if (isOverlayGroupInstance(parentComponent)) {\r\n parentComponent.addOverlay($amapComponent);\r\n }\r\n if(withSlot){\r\n divId.value = tempId;\r\n }\r\n bindModelEvents();\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.moveOptions){\r\n $amapComponent.setPosition(position);\r\n return;\r\n }\r\n if(parentInstance?.$amapComponent){\r\n parentInstance.$amapComponent.plugin('AMap.MoveAnimation', () => {\r\n $amapComponent.moveTo(position, props.moveOptions);\r\n });\r\n }\r\n }\r\n },\r\n destroyComponent () {\r\n if ($amapComponent && parentInstance?.$amapComponent) {\r\n $amapComponent.setMap(null);\r\n $amapComponent = null as any;\r\n }\r\n },\r\n});\r\n\r\nconst bindModelEvents = () => {\r\n $amapComponent.on('dragend',() => {\r\n emitPosition();\r\n });\r\n $amapComponent.on('touchend',() => {\r\n emitPosition();\r\n });\r\n};\r\nconst emitPosition = () => {\r\n const position = $amapComponent.getPosition() as AMap.LngLat;\r\n emits('update:position', position.toArray());\r\n};\r\n\r\ndefineExpose({\r\n $$getInstance\r\n});\r\n\r\n</script>\r\n"],"names":[],"mappings":"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"}