import { ref } from 'vue' /** * 地图 Tooltip 状态管理 * 用于显示地图标记点的轻量级信息提示框 */ export function useMapTooltip() { // Tooltip 状态 const tooltipState = ref({ visible: false, x: 0, y: 0, title: '', icon: '', zIndex: 20, data: null // 业务数据,用于内容插槽渲染 }) /** * 显示 Tooltip * @param {Object} options - Tooltip 配置选项 * @param {number} options.x - 屏幕 X 坐标(像素) * @param {number} options.y - 屏幕 Y 坐标(像素) * @param {string} [options.title=''] - Tooltip 标题文本 * @param {string} [options.icon=''] - 标题左侧图标的图片路径 * @param {Object} [options.data=null] - 业务数据 */ const showTooltip = ({ x, y, title = '', icon = '', data = null }) => { tooltipState.value = { visible: true, x, y, title, icon, zIndex: 20, data } } /** * 隐藏 Tooltip */ const hideTooltip = () => { tooltipState.value.visible = false } /** * 更新 Tooltip 位置 * @param {number} x - 屏幕 X 坐标 * @param {number} y - 屏幕 Y 坐标 */ const updateTooltipPosition = (x, y) => { tooltipState.value.x = x tooltipState.value.y = y } return { tooltipState, showTooltip, hideTooltip, updateTooltipPosition } }