UNPKG

@vuemap/vue-amap

Version:

高德地图vue3版本封装

1 lines 11.7 kB
{"version":3,"file":"Polyline.vue2.mjs","sources":["../../../../../packages/vector/Polyline/Polyline.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: 'ElAmapPolyline',\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.Polyline;\r\nlet destroying = false;\r\n\r\nconst {$$getInstance, parentInstance} = useRegister<AMap.Polyline, any>((options, parentComponent) => {\r\n return new Promise<AMap.Polyline>((resolve) => {\r\n $amapComponent = new AMap.Polyline(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 __borderWeight (value: number) {\r\n if($amapComponent){\r\n $amapComponent.setOptions({borderWeight: value});\r\n }\r\n },\r\n __isOutline (value: boolean) {\r\n if($amapComponent){\r\n $amapComponent.setOptions({isOutline: value});\r\n }\r\n },\r\n __outlineColor (value: string) {\r\n if($amapComponent){\r\n $amapComponent.setOptions({outlineColor: 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 __lineJoin (value: any) {\r\n if($amapComponent){\r\n $amapComponent.setOptions({lineJoin: value});\r\n }\r\n },\r\n __lineCap (value: any) {\r\n if($amapComponent){\r\n $amapComponent.setOptions({lineCap: value});\r\n }\r\n },\r\n __geodesic (value: any) {\r\n if($amapComponent){\r\n $amapComponent.setOptions({geodesic: value});\r\n }\r\n },\r\n __showDir (value: any) {\r\n if($amapComponent){\r\n $amapComponent.setOptions({showDir: 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 },\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\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.Polyline) => {\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\n\r\nlet editor: AMap.PolylineEditor;\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.PolylineEditor'], () => {\r\n editor = new AMap.PolylineEditor(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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"}