UNPKG

@vuemap/vue-amap

Version:

高德地图vue3版本封装

1 lines 11 kB
{"version":3,"file":"Polygon.vue2.mjs","sources":["../../../../../packages/vector/Polygon/Polygon.vue"],"sourcesContent":["<template>\r\n <div />\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport {defineOptions, useAttrs} from 'vue';\r\nimport {debounce} from \"lodash-es\";\r\nimport {useRegister} from \"../../../mixins\";\r\nimport {useEditor} from \"../../../mixins/useEditor\";\r\nimport {\r\n convertLnglat,\r\n isMapInstance,\r\n isOverlayGroupInstance,\r\n isVectorLayerInstance\r\n} from \"../../../utils\";\r\nimport {propsTypes} from \"./props\";\r\n\r\ndefineOptions({\r\n name: 'ElAmapPolygon',\r\n inheritAttrs: false\r\n});\r\n\r\nconst props = defineProps(propsTypes);\r\nconst emits = defineEmits(['init','update:path']);\r\n\r\nlet $amapComponent: AMap.Polygon;\r\nlet destroying = false;\r\n\r\nconst {$$getInstance, parentInstance} = useRegister<AMap.Polygon, any>((options, parentComponent) => {\r\n return new Promise<AMap.Polygon>((resolve) => {\r\n $amapComponent = new AMap.Polygon(options);\r\n if (isMapInstance(parentComponent)) {\r\n parentComponent.add($amapComponent);\r\n } else if (isOverlayGroupInstance(parentComponent)) {\r\n parentComponent.addOverlay($amapComponent);\r\n } else if (isVectorLayerInstance(parentComponent)) {\r\n parentComponent.add($amapComponent);\r\n }\r\n bindModelEvents();\r\n resolve($amapComponent);\r\n });\r\n\r\n}, {\r\n emits,\r\n watchRedirectFn: {\r\n __zIndex (value: number) {\r\n if($amapComponent){\r\n $amapComponent.setOptions({zIndex: value});\r\n }\r\n },\r\n __strokeColor (value: string) {\r\n if($amapComponent){\r\n $amapComponent.setOptions({strokeColor: value});\r\n }\r\n },\r\n __strokeOpacity (value: number) {\r\n if($amapComponent){\r\n $amapComponent.setOptions({strokeOpacity: value});\r\n }\r\n },\r\n __strokeWeight (value: number) {\r\n if($amapComponent){\r\n $amapComponent.setOptions({strokeWeight: value});\r\n }\r\n },\r\n __fillColor (value: string) {\r\n if($amapComponent){\r\n $amapComponent.setOptions({fillColor: value});\r\n }\r\n },\r\n __fillOpacity (value: number) {\r\n if($amapComponent){\r\n $amapComponent.setOptions({fillOpacity: value});\r\n }\r\n },\r\n __strokeStyle (value: \"solid\" | \"dashed\" | undefined) {\r\n if($amapComponent){\r\n $amapComponent.setOptions({strokeStyle: value});\r\n }\r\n },\r\n __strokeDasharray (value: any) {\r\n if($amapComponent){\r\n $amapComponent.setOptions({strokeDasharray: value});\r\n }\r\n },\r\n __editable (flag: boolean) {\r\n createEditor().then(() => {\r\n flag ? resetEditor() : editor.close();\r\n });\r\n },\r\n __path (path: AMap.LngLatLike[]){\r\n if($amapComponent){\r\n $amapComponent.setPath(path);\r\n resetEditor();\r\n }\r\n },\r\n __draggable (flag: boolean) {\r\n $amapComponent.setOptions({\r\n draggable: flag\r\n });\r\n if(editor){\r\n if(editor.editingPolyObj && editor.editingPolyObj.origin_options){\r\n editor.editingPolyObj.origin_options.draggable = flag;\r\n }\r\n }\r\n if(props.editable){\r\n resetEditor();\r\n }\r\n }\r\n },\r\n destroyComponent () {\r\n destroying = true;\r\n if ($amapComponent && parentInstance?.$amapComponent) {\r\n if (editor) {\r\n if(!parentInstance.isDestroy){\r\n editor.close();\r\n }\r\n editor = null as any;\r\n }\r\n if(!parentInstance.isDestroy){\r\n if (isMapInstance(parentInstance.$amapComponent)) {\r\n parentInstance.$amapComponent.remove($amapComponent);\r\n } else if (isOverlayGroupInstance(parentInstance.$amapComponent)) {\r\n parentInstance.$amapComponent.removeOverlay($amapComponent);\r\n } else if (isVectorLayerInstance(parentInstance.$amapComponent)) {\r\n parentInstance.$amapComponent.remove($amapComponent);\r\n }\r\n }\r\n if($amapComponent.destroy){\r\n $amapComponent.destroy();\r\n }\r\n $amapComponent = null as any;\r\n }\r\n },\r\n});\r\nconst resetEditor = debounce(() => {\r\n if(editor && props.editable){\r\n editor.close();\r\n // editor.setTarget();\r\n // editor.setTarget($amapComponent);\r\n editor.open();\r\n }\r\n}, 50);\r\n\r\nconst bindModelEvents = () => {\r\n $amapComponent.on('dragend',() => {\r\n emitModel($amapComponent);\r\n });\r\n $amapComponent.on('touchend',() => {\r\n emitModel($amapComponent);\r\n });\r\n};\r\nconst emitModel = (target: AMap.Polygon) => {\r\n if(destroying){\r\n return;\r\n }\r\n const paths = target.getPath();\r\n const pathArray = paths?.map(convertLnglat);\r\n emits('update:path', pathArray);\r\n};\r\nlet editor: any;\r\n// let editor: AMap.PolygonEditor;\r\nconst attrs = useAttrs();\r\nconst createEditor = () => {\r\n return new Promise<void>((resolve) => {\r\n if (editor) {\r\n resolve();\r\n } else {\r\n AMap.plugin(['AMap.PolygonEditor'], () => {\r\n editor = new AMap.PolygonEditor(parentInstance?.$amapComponent, $amapComponent, props.editOptions);\r\n useEditor(editor, attrs);\r\n bindEditorModelEvents();\r\n resolve();\r\n });\r\n }\r\n });\r\n};\r\nconst bindEditorModelEvents = () => {\r\n editor.on('addnode',(e) => {\r\n emitModel(e.target);\r\n });\r\n editor.on('adjust',(e) => {\r\n emitModel(e.target);\r\n });\r\n editor.on('removenode',(e) => {\r\n emitModel(e.target);\r\n });\r\n editor.on('add',(e) => {\r\n emitModel(e.target);\r\n });\r\n // editor.on('end',(e) => {\r\n // emitModel(e.target);\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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"}