UNPKG

@vuemap/vue-amap

Version:

高德地图vue3版本封装

59 lines (56 loc) 1.65 kB
import { defineComponent, openBlock, createElementBlock } from 'vue'; import '../../../mixins/index.mjs'; import { propsType } from './props.mjs'; import { useRegister } from '../../../mixins/useRegister.mjs'; var script = /* @__PURE__ */ defineComponent({ ...{ name: "ElAmapText", inheritAttrs: false }, __name: "Text", props: propsType, emits: ["init", "update:position"], setup(__props, { expose: __expose, emit: __emit }) { const emits = __emit; let $amapComponent; const { $$getInstance, parentInstance } = useRegister((options, parentComponent) => { return new Promise((resolve) => { $amapComponent = new AMap.Text(options); parentComponent.add($amapComponent); bindModelEvents(); resolve($amapComponent); }); }, { emits, propsRedirect: { textStyle: "style" }, destroyComponent() { if ($amapComponent && (parentInstance == null ? void 0 : parentInstance.$amapComponent)) { $amapComponent.setMap(null); $amapComponent = null; } } }); const bindModelEvents = () => { $amapComponent.on("dragend", () => { emitPosition(); }); $amapComponent.on("touchend", () => { emitPosition(); }); }; const emitPosition = () => { const position = $amapComponent.getPosition(); emits("update:position", position.toArray()); }; __expose({ $$getInstance }); return (_ctx, _cache) => { return openBlock(), createElementBlock("div"); }; } }); export { script as default }; //# sourceMappingURL=Text.vue2.mjs.map