将Vue文件集成到Maptalks的InfoWindow中

将Vue文件集成到Maptalks的InfoWindow中

引入vue文件

import InfoWindowComponent from '../popup.vue';
 marker.on("click", evt => {
      marker.flash(100, 2, () => {

        currentMarker = marker
        currentMarkerCoor = evt.coordinate

        // 动态创建 Vue 实例
        const ComponentClass = Vue.extend(InfoWindowComponent);
        const vm = new ComponentClass({
          propsData: {
            title: '动态信息窗口',
            mapPopup: true,
          }
        }).$mount();
        // 创建 InfoWindow 并注入 Vue 内容
        const info = {
          content: vm.$el, // 关键:注入 Vue 渲染的 DOM
          width: 430,
          height: 200,
          autoPan: true,
          dx: 0,
          dy: 0
        }

        marker.setInfoWindow(info);
        if (isOutPopup) {
          bus.$emit('changePopupPosition', true)
        } else {
          marker.openInfoWindow(evt.coordinate)
        }
        // 获取信息窗口实例并添加事件监听
        const infoWindow = marker.getInfoWindow();
        infoWindow.on('hide', function () {
          // 这里添加关闭后的处理逻辑
          // 窗口关闭时销毁 Vue 实例
          new ComponentClass().$destroy()
        });
      });
    });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值