@vuemap/vue-amap
Version:
高德地图vue3版本封装
83 lines (78 loc) • 2.4 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
require('../../../../mixins/index.js');
var buildHelper = require('../../../../utils/buildHelper.js');
require('../../../../utils/index.js');
var useRegister = require('../../../../mixins/useRegister.js');
var util = require('../../../../utils/util.js');
var script = /* @__PURE__ */ vue.defineComponent({
...{
name: "ElAmapLayerIndoorMap",
inheritAttrs: false
},
__name: "IndoorMap",
props: buildHelper.buildProps({
opacity: {
type: Number
},
// 透明度,默认 1
cursor: {
type: String
},
// 指定鼠标悬停到店铺面时的鼠标样式
hideFloorBar: {
type: Boolean,
default: false
}
// 是否隐藏楼层切换控件,默认值:false
}),
emits: ["init"],
setup(__props, { expose: __expose, emit: __emit }) {
const emits = __emit;
let $amapComponent;
const { $$getInstance, parentInstance } = useRegister.useRegister((options, parentComponent) => {
return new Promise((resolve) => {
AMap.plugin(["AMap.IndoorMap"], () => {
$amapComponent = new AMap.IndoorMap(options);
const layers = parentComponent.getLayers();
layers.push($amapComponent);
parentComponent.setLayers(layers);
resolve($amapComponent);
});
});
}, {
emits,
watchRedirectFn: {
__hideFloorBar(flag) {
!flag ? $amapComponent.hideFloorBar() : $amapComponent.showFloorBar();
}
},
destroyComponent() {
if ($amapComponent && (parentInstance == null ? void 0 : parentInstance.$amapComponent)) {
const layers = parentInstance.$amapComponent.getLayers();
let index = -1;
for (let i = 0; i < layers.length; i++) {
if (util.isIndoorMapInstance(layers[i])) {
index = i;
break;
}
}
if (index > -1) {
layers.splice(index, 1);
parentInstance.$amapComponent.setLayers(layers);
}
$amapComponent = null;
}
}
});
__expose({
$$getInstance
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("div");
};
}
});
exports.default = script;
//# sourceMappingURL=IndoorMap.vue2.js.map