@yimou6/common-ui 1.14.4 → 1.14.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/cdn/index.cdn.js +20 -20
  2. package/cdn/index.cdn.js.map +1 -1
  3. package/cdn/index.cdn.mjs +21 -21
  4. package/cdn/index.cdn.mjs.map +1 -1
  5. package/es/components/geoMark/index.d.ts +3 -77
  6. package/es/components/geoMark/src/geoMark.d.ts +1 -8
  7. package/es/components/geoMark/src/geoMark.mjs.map +1 -1
  8. package/es/components/geoMark/src/geoMark.vue.d.ts +4 -78
  9. package/es/components/geoMark/src/geoMark.vue2.mjs +694 -689
  10. package/es/components/geoMark/src/geoMark.vue2.mjs.map +1 -1
  11. package/es/components/geoMark/src/openMap.vue2.mjs +2 -1
  12. package/es/components/geoMark/src/openMap.vue2.mjs.map +1 -1
  13. package/es/components/map/src/map.vue2.mjs +7 -5
  14. package/es/components/map/src/map.vue2.mjs.map +1 -1
  15. package/es/components/tzj-player/index.d.ts +0 -297
  16. package/es/components/tzj-player/src/ctyun-player.vue.d.ts +0 -6
  17. package/es/components/tzj-player/src/ctyun-player.vue2.mjs +0 -22
  18. package/es/components/tzj-player/src/ctyun-player.vue2.mjs.map +1 -1
  19. package/es/components/tzj-player/src/easyPlayer.vue2.mjs +0 -2
  20. package/es/components/tzj-player/src/easyPlayer.vue2.mjs.map +1 -1
  21. package/es/components/tzj-player/src/tzj-player.vue.d.ts +0 -297
  22. package/lib/components/geoMark/index.d.ts +3 -77
  23. package/lib/components/geoMark/src/geoMark.d.ts +1 -8
  24. package/lib/components/geoMark/src/geoMark.js.map +1 -1
  25. package/lib/components/geoMark/src/geoMark.vue.d.ts +4 -78
  26. package/lib/components/geoMark/src/geoMark.vue2.js +693 -688
  27. package/lib/components/geoMark/src/geoMark.vue2.js.map +1 -1
  28. package/lib/components/geoMark/src/openMap.vue2.js +1 -0
  29. package/lib/components/geoMark/src/openMap.vue2.js.map +1 -1
  30. package/lib/components/map/src/map.vue2.js +7 -5
  31. package/lib/components/map/src/map.vue2.js.map +1 -1
  32. package/lib/components/tzj-player/index.d.ts +0 -297
  33. package/lib/components/tzj-player/src/ctyun-player.vue.d.ts +0 -6
  34. package/lib/components/tzj-player/src/ctyun-player.vue2.js +0 -22
  35. package/lib/components/tzj-player/src/ctyun-player.vue2.js.map +1 -1
  36. package/lib/components/tzj-player/src/easyPlayer.vue2.js +0 -2
  37. package/lib/components/tzj-player/src/easyPlayer.vue2.js.map +1 -1
  38. package/lib/components/tzj-player/src/tzj-player.vue.d.ts +0 -297
  39. package/package.json +1 -1
  40. package/es/components/geoMark/src/DragIcon.vue.d.ts +0 -77
  41. package/es/components/geoMark/src/DragIcon.vue.mjs +0 -6
  42. package/es/components/geoMark/src/DragIcon.vue.mjs.map +0 -1
  43. package/es/components/geoMark/src/DragIcon.vue2.mjs +0 -67
  44. package/es/components/geoMark/src/DragIcon.vue2.mjs.map +0 -1
  45. package/lib/components/geoMark/src/DragIcon.vue.d.ts +0 -77
  46. package/lib/components/geoMark/src/DragIcon.vue.js +0 -10
  47. package/lib/components/geoMark/src/DragIcon.vue.js.map +0 -1
  48. package/lib/components/geoMark/src/DragIcon.vue2.js +0 -71
  49. package/lib/components/geoMark/src/DragIcon.vue2.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"openMap.vue2.js","sources":["../../../../../../../packages/components/geoMark/src/openMap.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport DragPan from \"ol/interaction/DragPan\";\nimport Projection from \"ol/proj/Projection\";\nimport { Icon, Style } from \"ol/style\";\n// @ts-nocheck\nimport { nextTick, onMounted, ref, toRef, watch } from \"vue\";\nimport {\n Interactions as _Interactions,\n Layers as _Layers,\n Map as _Map,\n MapControls as _MapControls,\n Sources as _Sources,\n Styles as _Styles,\n} from \"vue3-openlayers\";\nimport type { Extent } from \"ol/extent\";\nimport \"ol/ol.css\";\n\n/**\n * openMap —— 重新实现的楼层图组件(替代丢失源码的 gkestor-battlefield-cesium-plus)\n *\n * 通过 vue3-openlayers 渲染一张静态楼层影像,并在其上叠加矢量图层,\n * 支持绘制(区域/逃生路线)、编辑、吸附、变换等交互。\n *\n * 关键点:\n * 1. 地图坐标系使用「像素」单位,坐标与图片像素一一对应,\n * 因此内部始终使用自建的像素投影(xkcd-image / pixels),\n * 忽略外部传入的 projection(如 EPSG:3857),否则楼层图坐标会错乱。\n * 2. center / zoom / size / extent / imgUrl 均与父组件双向联动,\n * 图片切换时会自动重设视图。\n */\nconst props = defineProps({\n apiKey: { type: String, default: \"\" },\n // 外部传入的中心点。图片切换后组件会以图片中心重置视图;外部显式修改 center 时立即生效\n center: { type: Array, default: () => [0, 0] },\n // 外部传入的缩放级别。首次加载/切换图片时组件会按图片 extent 自动适配(fit),\n // 之后外部显式修改 zoom 时立即生效并覆盖自动适配结果\n zoom: { type: Number, default: 1 },\n // 外部传入的投影(保留接口兼容,实际不使用,改用内部像素投影)\n projection: { type: [String, Object], default: undefined },\n imgUrl: { type: String, default: \"\" },\n // 图片的像素尺寸 [width, height],与 extent(图片的坐标范围)配套使用。\n // 原生 ol/source/ImageStatic 用它定义图片渲染分辨率;当 extent 宽高比与图片实际\n // 像素宽高比不一致时,该值可作图片真实像素尺寸用于拉伸矫正。\n // 注意:vue3-openlayers 的 ol-source-image-static 未暴露 imageSize 属性,\n // 实际渲染范围由 extent 决定,size 主要作为元数据保留(与父组件同步维护)\n size: { type: Array, default: () => [1024, 968] },\n extent: { type: Array, default: () => [0, 0, 1024, 968] },\n configMenuItems: { type: Array, default: () => [] },\n activatedBottomBar: { type: String, default: \"\" },\n waring: { type: [String, Number, null] as any, default: null },\n activatedPositionOverlayWaring: { type: Array, default: () => [] },\n activatedPositionOverlay: { type: Array, default: () => [] },\n activatedPropertiesOverlay: { type: Object, default: () => ({}) },\n listTitle: { type: String, default: \"\" },\n alarmType: { type: String, default: \"\" },\n svgOverlay: { type: String, default: \"\" },\n waringIcon: { type: String, default: \"\" },\n fnUpdateDrawFeature: { type: Function, default: undefined },\n fnUpdateDrawFeature2: { type: Function, default: undefined },\n fnOverrideStyle: { type: Function, default: undefined },\n});\nconst emit = defineEmits([\n \"ready\",\n \"featuresChanged\",\n \"customPointerMove\",\n \"customContextMenu\",\n \"customPostCompose\",\n]);\n// 组件擦除为 any:避免具体 ol 组件类型进入 _sfc_main 返回类型触发 TS2742/TS7056\nconst OlMap: any = _Map.OlMap;\nconst OlOverlay: any = _Map.OlOverlay;\nconst OlView: any = _Map.OlView;\nconst OlImageLayer: any = _Layers.OlImageLayer;\nconst OlVectorLayer: any = _Layers.OlVectorLayer;\nconst OlSourceImageStatic: any = _Sources.OlSourceImageStatic;\nconst OlSourceVector: any = _Sources.OlSourceVector;\nconst OlContextMenuControl: any = _MapControls.OlContextMenuControl;\nconst OlZoomControl: any = _MapControls.OlZoomControl;\nconst OlDrawInteraction: any = _Interactions.OlDrawInteraction;\nconst OlModifyInteraction: any = _Interactions.OlModifyInteraction;\nconst OlSnapInteraction: any = _Interactions.OlSnapInteraction;\nconst OlTransformInteraction: any = _Interactions.OlTransformInteraction;\nconst OlStyle: any = _Styles.OlStyle;\n\nconst mapRef = ref<any>(null);\nconst viewRef = ref<any>(null);\nconst vectorSourceRef = ref<any>(null);\nconst currentImageUrl = toRef(props, \"imgUrl\");\n\n// 内部像素投影:使地图坐标与图片像素一一对应\nconst pixelProjection: any = new Projection({\n code: \"xkcd-image\",\n units: \"pixels\",\n extent: props.extent as unknown as Extent,\n});\n\n// 图片尺寸变化时,同步投影的 extent\nwatch(\n () => props.extent,\n (extent) => {\n if (extent && pixelProjection) {\n pixelProjection.setExtent(extent as unknown as Extent);\n }\n // 图片范围更新后重新适配视图,确保图片按新尺寸正确显示(无需二次操作)\n nextTick(() => {\n // eslint-disable-next-line no-use-before-define\n calculateAutoZoom();\n });\n },\n);\n\n// 外部传入的 zoom 变化时直接同步到视图,保证外部控制立即生效\nwatch(\n () => props.zoom,\n (val) => {\n const view = viewRef.value?.view;\n if (view && typeof val === \"number\" && !Number.isNaN(val)) {\n view.setZoom(val);\n }\n },\n);\n\n// 外部传入的 center 变化时直接同步到视图,保证外部控制立即生效\nwatch(\n () => props.center,\n (val) => {\n const view = viewRef.value?.view;\n if (view && Array.isArray(val) && val.length === 2) {\n view.setCenter(val);\n }\n },\n);\n\nconst getVectorSource = () => vectorSourceRef.value?.source;\nconst getMap = () => mapRef.value?.map;\nconst getView = () => viewRef.value?.view;\n\n// 状态图标处理缓存:key = `${src}#${mode}`,value = 处理后图片的 dataURL。\n// 同一张图片的同一状态只处理一次,后续 createIcon 直接读缓存,避免重复做像素级转换。\n// 仅放内存、不写 localStorage:图标源有限且体积小(几十 KB/张),会话级缓存完全无压力;\n// localStorage 有 5MB 配额、base64 膨胀约 37%、且同步 I/O 阻塞主线程,没有必要持久化。\nconst iconColorCache = new Map<string, string>();\n// 正在处理的缓存 key,防止同一 src+状态被并发重复触发\nconst iconColorPending = new Set<string>();\n\n// 设备图标基准高度(px)。最终高度 = ICON_SIZE * scale,宽度按原图宽高比自动计算(不变形)。\n// scale 作为「高度倍率」保留(告警/编辑=1、普通=0.8),故标点高度会随 scale 变化,见 createIcon。\nconst ICON_SIZE = 40;\n\n// 着色目标色:0 故障=橙、1 报警=红\nconst STATE_COLORS: Record<string, { r: number; g: number; b: number }> = {\n orange: { r: 255, g: 140, b: 0 },\n red: { r: 230, g: 30, b: 30 },\n};\n// 设备状态 → 处理模式:0 故障=orange、1 报警=red、4 离线=gray;\n// 2(正常)及其它(-1 未启用/缺失)返回 null,直接使用原图,不产生新图与缓存。\nconst getIconMode = (state: unknown): string | null => {\n const s = Number(state);\n if (s === 0) return \"orange\";\n if (s === 1) return \"red\";\n if (s === 4) return \"gray\";\n return null;\n};\n\n// 同步创建设备图标样式(style 函数必须同步 return):\n// 1) 状态为 0/1/4:优先使用按状态处理后的缓存图;缓存未就绪时先用原图占位,\n// 同时异步处理,完成后写缓存并刷新当前图层要素使图标更新;\n// 2) 状态为 2(正常)及其它:直接使用原图 src,不做任何处理。\nconst createIcon = (src: string, scale: number, state?: unknown): any => {\n const mode = getIconMode(state);\n let effectiveSrc = src;\n if (mode) {\n const key = `${src}#${mode}`;\n effectiveSrc = iconColorCache.get(key) || src;\n if (!iconColorCache.has(key) && !iconColorPending.has(key)) {\n iconColorPending.add(key);\n processIcon(key, src, mode, (result: string) => {\n iconColorCache.set(key, result);\n iconColorPending.delete(key);\n // eslint-disable-next-line no-use-before-define\n refreshFeaturesUsingIcon();\n });\n }\n }\n return new Style({\n image: new Icon({\n src: effectiveSrc,\n anchor: [0.5, 1],\n anchorXUnits: \"fraction\",\n anchorYUnits: \"fraction\",\n // 高度 = ICON_SIZE * scale,宽度按原图宽高比自动计算(不变形)。\n // 注意:Icon 的 height 与 scale 选项不能同时使用,因此把 scale 折进 height(标量 → 直接乘高度)。\n height: ICON_SIZE * scale,\n }),\n });\n};\n\n// 某张按状态处理后的图片就绪后,重设当前图层所有设备要素的样式,\n// 使仍使用原图占位的图标切换到处理后的状态图。\n// 依赖 index.vue 传入的 fnOverrideStyle(其内部会再次调用 createIcon 读取缓存)。\nconst refreshFeaturesUsingIcon = (): void => {\n const source = vectorSourceRef.value?.source;\n const fn = props.fnOverrideStyle;\n if (!source || typeof fn !== \"function\") return;\n source.getFeatures().forEach((feature: any) => {\n if (feature.get(\"code\")) {\n fn(feature);\n }\n });\n};\n\n// 将图片异步处理为 dataURL:mode=gray 灰度化;mode=orange/red 按目标色着色。\n// 着色保留原图亮度层次(亮部更接近目标色、暗部更暗),透明区域保持不变。\n// 失败(如跨域导致 canvas 被污染)时仅移除 pending,回退继续使用原图。\nfunction processIcon(\n key: string,\n imageSrc: string,\n mode: string,\n callback: (dataUrl: string) => void,\n): void {\n const img = new Image();\n img.crossOrigin = \"anonymous\";\n img.onload = () => {\n try {\n const canvas = document.createElement(\"canvas\");\n canvas.width = img.width;\n canvas.height = img.height;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) return;\n // 1. 绘制原图\n ctx.drawImage(img, 0, 0);\n // 2. 获取像素数据,按状态处理(透明度通道保持不变)\n const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n const data = imageData.data;\n const tint = STATE_COLORS[mode];\n for (let i = 0; i < data.length; i += 4) {\n const lum = 0.299 * data[i] + 0.587 * data[i + 1] + 0.114 * data[i + 2];\n if (tint) {\n // 着色:用亮度调制目标色,保留图标明暗层次\n const factor = 0.4 + 0.6 * (lum / 255);\n data[i] = tint.r * factor;\n data[i + 1] = tint.g * factor;\n data[i + 2] = tint.b * factor;\n } else {\n // 离线:标准灰度\n data[i] = lum;\n data[i + 1] = lum;\n data[i + 2] = lum;\n }\n }\n // 3. 写回 canvas 并导出 dataURL\n ctx.putImageData(imageData, 0, 0);\n callback(canvas.toDataURL(\"image/png\"));\n } catch (error) {\n iconColorPending.delete(key);\n }\n };\n img.onerror = () => {\n iconColorPending.delete(key);\n };\n img.src = imageSrc;\n}\n\nconst clearSource = () => vectorSourceRef.value?.source?.clear();\nconst addFeature = (feature: any) =>\n vectorSourceRef.value?.source?.addFeature(feature);\nconst addFeatures = (features: any[]) =>\n vectorSourceRef.value?.source?.addFeatures(features);\nconst removeFeature = (feature: any) =>\n vectorSourceRef.value?.source?.removeFeature(feature);\nconst getFeatures = () =>\n vectorSourceRef.value?.source\n ? vectorSourceRef.value.source.getFeatures()\n : [];\nconst getZoom = () => mapRef.value?.map?.getView()?.getZoom();\nconst setZoom = (zoom: number) => mapRef.value?.map?.getView()?.setZoom(zoom);\n\nconst calculateAutoZoom = () => {\n const view = viewRef.value?.view;\n if (!view || typeof view.fit !== \"function\") return;\n // 屏幕显示大小必须取 size(底图像素尺寸),而不是容器 DOM 尺寸。\n // 这样 fit 后 resolution≈1,1 地图单位 = 1 CSS 像素,图片按 size 里的大小显示(如 800×600),\n // 不会因为用了容器尺寸而被撑满整个视口,也保证点位坐标与图片像素一一对应。\n const [width, height] = props.size as number[];\n if (!width || !height) return;\n view.fit(props.extent as unknown as Extent, {\n size: [width, height],\n padding: [10, 10, 10, 10],\n constrainResolution: false,\n nearest: false,\n });\n};\n\n// 绘制模式下,地图拖拽平移(DragPan)会与绘制交互冲突,\n// 导致按住鼠标拖动放置顶点时底图跟着平移,因此绘制期间禁用 DragPan。\nconst isDrawingMode = (): boolean =>\n props.activatedBottomBar === \"区域绘制\" ||\n props.activatedBottomBar === \"逃生路线\";\n\nconst setDragPanActive = (active: boolean): void => {\n const map = mapRef.value?.map;\n if (!map) return;\n map\n .getInteractions()\n .getArray()\n .forEach((interaction: any) => {\n if (interaction instanceof DragPan) {\n interaction.setActive(active);\n }\n });\n};\n\n// 切换底部栏按钮时,同步 DragPan 的启用/禁用状态\nwatch(\n () => props.activatedBottomBar,\n () => {\n setDragPanActive(!isDrawingMode());\n },\n);\n\ndefineExpose({\n getVectorSource,\n getMap,\n getView,\n createIcon,\n clearSource,\n addFeature,\n addFeatures,\n removeFeature,\n getFeatures,\n getZoom,\n setZoom,\n calculateAutoZoom,\n});\n\nonMounted(() => {\n nextTick(() => {\n emit(\"ready\");\n const map = mapRef.value?.map;\n if (map) {\n map.on(\"postcompose\", (e: any) => emit(\"customPostCompose\", e));\n map.on(\"pointermove\", (e: any) => emit(\"customPointerMove\", e));\n map.on(\"contextmenu\", (e: any) => emit(\"customContextMenu\", e));\n setDragPanActive(!isDrawingMode());\n }\n });\n});\n</script>\n\n<template>\n <OlMap ref=\"mapRef\" class=\"w-full\" style=\"height: 100%\">\n <OlView\n ref=\"viewRef\"\n :center=\"center\"\n :zoom=\"zoom\"\n :projection=\"pixelProjection\"\n />\n\n <OlZoomControl />\n\n <OlContextMenuControl :items=\"configMenuItems\" />\n\n <!-- 底图静态影像层:key 绑定 imgUrl+extent,二者任一变化即整体销毁重建影像层。\n 因为 OL ImageStatic 的 imageExtent 在构造后不可变,vue3-openlayers 只能靠重建 source\n 来应用新 extent;若不加 key,重建/图片异步加载期间会短暂以旧 imageExtent 渲染,\n 导致首帧图标与底图错位(再次点击楼层后才对齐) -->\n <OlImageLayer\n id=\"xkcd\"\n :key=\"`${currentImageUrl}|${extent.join(',')}`\"\n :z-index=\"-1\"\n >\n <OlSourceImageStatic\n :url=\"currentImageUrl\"\n :image-extent=\"extent\"\n :projection=\"pixelProjection\"\n />\n </OlImageLayer>\n\n <!-- 矢量图层 -->\n <OlVectorLayer :z-index=\"1\">\n <OlSourceVector ref=\"vectorSourceRef\">\n <!-- 区域设置 -->\n <OlModifyInteraction v-if=\"activatedBottomBar === '区域设置'\" />\n <!-- 区域绘制 -->\n <OlDrawInteraction\n v-if=\"activatedBottomBar === '区域绘制'\"\n type=\"Polygon\"\n :stop-click=\"true\"\n @drawend=\"fnUpdateDrawFeature\"\n />\n <!-- 逃生路线 -->\n <OlDrawInteraction\n v-if=\"activatedBottomBar === '逃生路线'\"\n ref=\"drawRef\"\n type=\"LineString\"\n :stop-click=\"true\"\n @drawend=\"fnUpdateDrawFeature2\"\n />\n <!-- 区域设置吸附 -->\n <OlSnapInteraction v-if=\"activatedBottomBar === '区域设置'\" />\n </OlSourceVector>\n\n <OlStyle :override-style-function=\"fnOverrideStyle\" />\n </OlVectorLayer>\n\n <!-- 编辑 / 区域模板 -->\n <OlTransformInteraction\n v-if=\"activatedBottomBar === '编辑' || activatedBottomBar === '区域模板'\"\n />\n\n <!-- 警告气泡:activatedPositionOverlayWaring 为告警设备坐标 -->\n <OlOverlay\n v-if=\"\n waring &&\n activatedPositionOverlayWaring &&\n activatedPositionOverlayWaring.length > 0\n \"\n :position=\"activatedPositionOverlayWaring\"\n :auto-pan=\"true\"\n :anchor=\"[0.5, 1]\"\n :offset=\"[-50, -30]\"\n >\n <div\n class=\"waring-bubble flex flex-col justify-start text-white flex-nowrap\"\n >\n <img :src=\"waringIcon\" alt=\"\" class=\"absolute w-full h-full\" />\n </div>\n </OlOverlay>\n\n <!-- 位置气泡(插槽) -->\n <OlOverlay\n v-if=\"activatedPositionOverlay.length > 0\"\n :position=\"activatedPositionOverlay\"\n :offset=\"[-175, -255]\"\n :auto-pan=\"true\"\n >\n <slot name=\"overlay\" />\n </OlOverlay>\n </OlMap>\n</template>\n"],"names":["_Map","_Layers","_Sources","_MapControls","_Interactions","_Styles","ref","toRef","watch","nextTick","Style","Icon","onMounted","_createBlock","_unref","_createVNode","_createCommentVNode","_createElementVNode","_renderSlot"],"mappings":"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"}
1
+ {"version":3,"file":"openMap.vue2.js","sources":["../../../../../../../packages/components/geoMark/src/openMap.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport DragPan from \"ol/interaction/DragPan\";\nimport Projection from \"ol/proj/Projection\";\nimport { Icon, Style } from \"ol/style\";\n// @ts-nocheck\nimport { inject, nextTick, onMounted, provide, ref, toRef, watch } from \"vue\";\nimport {\n Interactions as _Interactions,\n Layers as _Layers,\n Map as _Map,\n MapControls as _MapControls,\n Sources as _Sources,\n Styles as _Styles,\n} from \"vue3-openlayers\";\nimport type { Extent } from \"ol/extent\";\nimport \"ol/ol.css\";\n\n/**\n * openMap —— 重新实现的楼层图组件(替代丢失源码的 gkestor-battlefield-cesium-plus)\n *\n * 通过 vue3-openlayers 渲染一张静态楼层影像,并在其上叠加矢量图层,\n * 支持绘制(区域/逃生路线)、编辑、吸附、变换等交互。\n *\n * 关键点:\n * 1. 地图坐标系使用「像素」单位,坐标与图片像素一一对应,\n * 因此内部始终使用自建的像素投影(xkcd-image / pixels),\n * 忽略外部传入的 projection(如 EPSG:3857),否则楼层图坐标会错乱。\n * 2. center / zoom / size / extent / imgUrl 均与父组件双向联动,\n * 图片切换时会自动重设视图。\n */\nconst props = defineProps({\n apiKey: { type: String, default: \"\" },\n // 外部传入的中心点。图片切换后组件会以图片中心重置视图;外部显式修改 center 时立即生效\n center: { type: Array, default: () => [0, 0] },\n // 外部传入的缩放级别。首次加载/切换图片时组件会按图片 extent 自动适配(fit),\n // 之后外部显式修改 zoom 时立即生效并覆盖自动适配结果\n zoom: { type: Number, default: 1 },\n // 外部传入的投影(保留接口兼容,实际不使用,改用内部像素投影)\n projection: { type: [String, Object], default: undefined },\n imgUrl: { type: String, default: \"\" },\n // 图片的像素尺寸 [width, height],与 extent(图片的坐标范围)配套使用。\n // 原生 ol/source/ImageStatic 用它定义图片渲染分辨率;当 extent 宽高比与图片实际\n // 像素宽高比不一致时,该值可作图片真实像素尺寸用于拉伸矫正。\n // 注意:vue3-openlayers 的 ol-source-image-static 未暴露 imageSize 属性,\n // 实际渲染范围由 extent 决定,size 主要作为元数据保留(与父组件同步维护)\n size: { type: Array, default: () => [1024, 968] },\n extent: { type: Array, default: () => [0, 0, 1024, 968] },\n configMenuItems: { type: Array, default: () => [] },\n activatedBottomBar: { type: String, default: \"\" },\n waring: { type: [String, Number, null] as any, default: null },\n activatedPositionOverlayWaring: { type: Array, default: () => [] },\n activatedPositionOverlay: { type: Array, default: () => [] },\n activatedPropertiesOverlay: { type: Object, default: () => ({}) },\n listTitle: { type: String, default: \"\" },\n alarmType: { type: String, default: \"\" },\n svgOverlay: { type: String, default: \"\" },\n waringIcon: { type: String, default: \"\" },\n fnUpdateDrawFeature: { type: Function, default: undefined },\n fnUpdateDrawFeature2: { type: Function, default: undefined },\n fnOverrideStyle: { type: Function, default: undefined },\n});\nconst emit = defineEmits([\n \"ready\",\n \"featuresChanged\",\n \"customPointerMove\",\n \"customContextMenu\",\n \"customPostCompose\",\n]);\n// 组件擦除为 any:避免具体 ol 组件类型进入 _sfc_main 返回类型触发 TS2742/TS7056\nconst OlMap: any = _Map.OlMap;\nconst OlOverlay: any = _Map.OlOverlay;\nconst OlView: any = _Map.OlView;\nconst OlImageLayer: any = _Layers.OlImageLayer;\nconst OlVectorLayer: any = _Layers.OlVectorLayer;\nconst OlSourceImageStatic: any = _Sources.OlSourceImageStatic;\nconst OlSourceVector: any = _Sources.OlSourceVector;\nconst OlContextMenuControl: any = _MapControls.OlContextMenuControl;\nconst OlZoomControl: any = _MapControls.OlZoomControl;\nconst OlDrawInteraction: any = _Interactions.OlDrawInteraction;\nconst OlModifyInteraction: any = _Interactions.OlModifyInteraction;\nconst OlSnapInteraction: any = _Interactions.OlSnapInteraction;\nconst OlTransformInteraction: any = _Interactions.OlTransformInteraction;\nconst OlStyle: any = _Styles.OlStyle;\n\nconst mapRef = ref<any>(null);\nconst viewRef = ref<any>(null);\nconst vectorSourceRef = ref<any>(null);\nconst currentImageUrl = toRef(props, \"imgUrl\");\n\n// vue3-openlayers 的 ol-options 只在插件 app.use() 时通过 app.provide 注入。本组件是按需\n// import 使用(不依赖全局注册),因此下游每个 ol 组件 inject 都会打印\n// `injection \"ol-options\" not found`。这里兜底 provide 消除该告警:\n// 该配置的唯一用途是 globalOptions.debug(调试日志开关),缺失不影响任何功能;\n// inject 带默认值本身不触发告警,且使用方若已安装插件,仍会沿用其 debug 配置。\nprovide(\"ol-options\", inject(\"ol-options\", {}));\n\n// 内部像素投影:使地图坐标与图片像素一一对应\nconst pixelProjection: any = new Projection({\n code: \"xkcd-image\",\n units: \"pixels\",\n extent: props.extent as unknown as Extent,\n});\n\n// 图片尺寸变化时,同步投影的 extent\nwatch(\n () => props.extent,\n (extent) => {\n if (extent && pixelProjection) {\n pixelProjection.setExtent(extent as unknown as Extent);\n }\n // 图片范围更新后重新适配视图,确保图片按新尺寸正确显示(无需二次操作)\n nextTick(() => {\n // eslint-disable-next-line no-use-before-define\n calculateAutoZoom();\n });\n },\n);\n\n// 外部传入的 zoom 变化时直接同步到视图,保证外部控制立即生效\nwatch(\n () => props.zoom,\n (val) => {\n const view = viewRef.value?.view;\n if (view && typeof val === \"number\" && !Number.isNaN(val)) {\n view.setZoom(val);\n }\n },\n);\n\n// 外部传入的 center 变化时直接同步到视图,保证外部控制立即生效\nwatch(\n () => props.center,\n (val) => {\n const view = viewRef.value?.view;\n if (view && Array.isArray(val) && val.length === 2) {\n view.setCenter(val);\n }\n },\n);\n\nconst getVectorSource = () => vectorSourceRef.value?.source;\nconst getMap = () => mapRef.value?.map;\nconst getView = () => viewRef.value?.view;\n\n// 状态图标处理缓存:key = `${src}#${mode}`,value = 处理后图片的 dataURL。\n// 同一张图片的同一状态只处理一次,后续 createIcon 直接读缓存,避免重复做像素级转换。\n// 仅放内存、不写 localStorage:图标源有限且体积小(几十 KB/张),会话级缓存完全无压力;\n// localStorage 有 5MB 配额、base64 膨胀约 37%、且同步 I/O 阻塞主线程,没有必要持久化。\nconst iconColorCache = new Map<string, string>();\n// 正在处理的缓存 key,防止同一 src+状态被并发重复触发\nconst iconColorPending = new Set<string>();\n\n// 设备图标基准高度(px)。最终高度 = ICON_SIZE * scale,宽度按原图宽高比自动计算(不变形)。\n// scale 作为「高度倍率」保留(告警/编辑=1、普通=0.8),故标点高度会随 scale 变化,见 createIcon。\nconst ICON_SIZE = 40;\n\n// 着色目标色:0 故障=橙、1 报警=红\nconst STATE_COLORS: Record<string, { r: number; g: number; b: number }> = {\n orange: { r: 255, g: 140, b: 0 },\n red: { r: 230, g: 30, b: 30 },\n};\n// 设备状态 → 处理模式:0 故障=orange、1 报警=red、4 离线=gray;\n// 2(正常)及其它(-1 未启用/缺失)返回 null,直接使用原图,不产生新图与缓存。\nconst getIconMode = (state: unknown): string | null => {\n const s = Number(state);\n if (s === 0) return \"orange\";\n if (s === 1) return \"red\";\n if (s === 4) return \"gray\";\n return null;\n};\n\n// 同步创建设备图标样式(style 函数必须同步 return):\n// 1) 状态为 0/1/4:优先使用按状态处理后的缓存图;缓存未就绪时先用原图占位,\n// 同时异步处理,完成后写缓存并刷新当前图层要素使图标更新;\n// 2) 状态为 2(正常)及其它:直接使用原图 src,不做任何处理。\nconst createIcon = (src: string, scale: number, state?: unknown): any => {\n const mode = getIconMode(state);\n let effectiveSrc = src;\n if (mode) {\n const key = `${src}#${mode}`;\n effectiveSrc = iconColorCache.get(key) || src;\n if (!iconColorCache.has(key) && !iconColorPending.has(key)) {\n iconColorPending.add(key);\n processIcon(key, src, mode, (result: string) => {\n iconColorCache.set(key, result);\n iconColorPending.delete(key);\n // eslint-disable-next-line no-use-before-define\n refreshFeaturesUsingIcon();\n });\n }\n }\n return new Style({\n image: new Icon({\n src: effectiveSrc,\n anchor: [0.5, 1],\n anchorXUnits: \"fraction\",\n anchorYUnits: \"fraction\",\n // 高度 = ICON_SIZE * scale,宽度按原图宽高比自动计算(不变形)。\n // 注意:Icon 的 height 与 scale 选项不能同时使用,因此把 scale 折进 height(标量 → 直接乘高度)。\n height: ICON_SIZE * scale,\n }),\n });\n};\n\n// 某张按状态处理后的图片就绪后,重设当前图层所有设备要素的样式,\n// 使仍使用原图占位的图标切换到处理后的状态图。\n// 依赖 index.vue 传入的 fnOverrideStyle(其内部会再次调用 createIcon 读取缓存)。\nconst refreshFeaturesUsingIcon = (): void => {\n const source = vectorSourceRef.value?.source;\n const fn = props.fnOverrideStyle;\n if (!source || typeof fn !== \"function\") return;\n source.getFeatures().forEach((feature: any) => {\n if (feature.get(\"code\")) {\n fn(feature);\n }\n });\n};\n\n// 将图片异步处理为 dataURL:mode=gray 灰度化;mode=orange/red 按目标色着色。\n// 着色保留原图亮度层次(亮部更接近目标色、暗部更暗),透明区域保持不变。\n// 失败(如跨域导致 canvas 被污染)时仅移除 pending,回退继续使用原图。\nfunction processIcon(\n key: string,\n imageSrc: string,\n mode: string,\n callback: (dataUrl: string) => void,\n): void {\n const img = new Image();\n img.crossOrigin = \"anonymous\";\n img.onload = () => {\n try {\n const canvas = document.createElement(\"canvas\");\n canvas.width = img.width;\n canvas.height = img.height;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) return;\n // 1. 绘制原图\n ctx.drawImage(img, 0, 0);\n // 2. 获取像素数据,按状态处理(透明度通道保持不变)\n const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n const data = imageData.data;\n const tint = STATE_COLORS[mode];\n for (let i = 0; i < data.length; i += 4) {\n const lum = 0.299 * data[i] + 0.587 * data[i + 1] + 0.114 * data[i + 2];\n if (tint) {\n // 着色:用亮度调制目标色,保留图标明暗层次\n const factor = 0.4 + 0.6 * (lum / 255);\n data[i] = tint.r * factor;\n data[i + 1] = tint.g * factor;\n data[i + 2] = tint.b * factor;\n } else {\n // 离线:标准灰度\n data[i] = lum;\n data[i + 1] = lum;\n data[i + 2] = lum;\n }\n }\n // 3. 写回 canvas 并导出 dataURL\n ctx.putImageData(imageData, 0, 0);\n callback(canvas.toDataURL(\"image/png\"));\n } catch (error) {\n iconColorPending.delete(key);\n }\n };\n img.onerror = () => {\n iconColorPending.delete(key);\n };\n img.src = imageSrc;\n}\n\nconst clearSource = () => vectorSourceRef.value?.source?.clear();\nconst addFeature = (feature: any) =>\n vectorSourceRef.value?.source?.addFeature(feature);\nconst addFeatures = (features: any[]) =>\n vectorSourceRef.value?.source?.addFeatures(features);\nconst removeFeature = (feature: any) =>\n vectorSourceRef.value?.source?.removeFeature(feature);\nconst getFeatures = () =>\n vectorSourceRef.value?.source\n ? vectorSourceRef.value.source.getFeatures()\n : [];\nconst getZoom = () => mapRef.value?.map?.getView()?.getZoom();\nconst setZoom = (zoom: number) => mapRef.value?.map?.getView()?.setZoom(zoom);\n\nconst calculateAutoZoom = () => {\n const view = viewRef.value?.view;\n if (!view || typeof view.fit !== \"function\") return;\n // 屏幕显示大小必须取 size(底图像素尺寸),而不是容器 DOM 尺寸。\n // 这样 fit 后 resolution≈1,1 地图单位 = 1 CSS 像素,图片按 size 里的大小显示(如 1024×968),\n // 不会因为用了容器尺寸而被撑满整个视口,也保证点位坐标与图片像素一一对应。\n const [width, height] = props.size as number[];\n if (!width || !height) return;\n view.fit(props.extent as unknown as Extent, {\n size: [width, height],\n padding: [10, 10, 10, 10],\n constrainResolution: false,\n nearest: false,\n });\n};\n\n// 绘制模式下,地图拖拽平移(DragPan)会与绘制交互冲突,\n// 导致按住鼠标拖动放置顶点时底图跟着平移,因此绘制期间禁用 DragPan。\nconst isDrawingMode = (): boolean =>\n props.activatedBottomBar === \"区域绘制\" ||\n props.activatedBottomBar === \"逃生路线\";\n\nconst setDragPanActive = (active: boolean): void => {\n const map = mapRef.value?.map;\n if (!map) return;\n map\n .getInteractions()\n .getArray()\n .forEach((interaction: any) => {\n if (interaction instanceof DragPan) {\n interaction.setActive(active);\n }\n });\n};\n\n// 切换底部栏按钮时,同步 DragPan 的启用/禁用状态\nwatch(\n () => props.activatedBottomBar,\n () => {\n setDragPanActive(!isDrawingMode());\n },\n);\n\ndefineExpose({\n getVectorSource,\n getMap,\n getView,\n createIcon,\n clearSource,\n addFeature,\n addFeatures,\n removeFeature,\n getFeatures,\n getZoom,\n setZoom,\n calculateAutoZoom,\n});\n\nonMounted(() => {\n nextTick(() => {\n emit(\"ready\");\n const map = mapRef.value?.map;\n if (map) {\n map.on(\"postcompose\", (e: any) => emit(\"customPostCompose\", e));\n map.on(\"pointermove\", (e: any) => emit(\"customPointerMove\", e));\n map.on(\"contextmenu\", (e: any) => emit(\"customContextMenu\", e));\n setDragPanActive(!isDrawingMode());\n }\n });\n});\n</script>\n\n<template>\n <OlMap ref=\"mapRef\" class=\"w-full\" style=\"height: 100%\">\n <OlView\n ref=\"viewRef\"\n :center=\"center\"\n :zoom=\"zoom\"\n :projection=\"pixelProjection\"\n />\n\n <OlZoomControl />\n\n <OlContextMenuControl :items=\"configMenuItems\" />\n\n <!-- 底图静态影像层:key 绑定 imgUrl+extent,二者任一变化即整体销毁重建影像层。\n 因为 OL ImageStatic 的 imageExtent 在构造后不可变,vue3-openlayers 只能靠重建 source\n 来应用新 extent;若不加 key,重建/图片异步加载期间会短暂以旧 imageExtent 渲染,\n 导致首帧图标与底图错位(再次点击楼层后才对齐) -->\n <OlImageLayer\n id=\"xkcd\"\n :key=\"`${currentImageUrl}|${extent.join(',')}`\"\n :z-index=\"-1\"\n >\n <OlSourceImageStatic\n :url=\"currentImageUrl\"\n :image-extent=\"extent\"\n :projection=\"pixelProjection\"\n />\n </OlImageLayer>\n\n <!-- 矢量图层 -->\n <OlVectorLayer :z-index=\"1\">\n <OlSourceVector ref=\"vectorSourceRef\">\n <!-- 区域设置 -->\n <OlModifyInteraction v-if=\"activatedBottomBar === '区域设置'\" />\n <!-- 区域绘制 -->\n <OlDrawInteraction\n v-if=\"activatedBottomBar === '区域绘制'\"\n type=\"Polygon\"\n :stop-click=\"true\"\n @drawend=\"fnUpdateDrawFeature\"\n />\n <!-- 逃生路线 -->\n <OlDrawInteraction\n v-if=\"activatedBottomBar === '逃生路线'\"\n ref=\"drawRef\"\n type=\"LineString\"\n :stop-click=\"true\"\n @drawend=\"fnUpdateDrawFeature2\"\n />\n <!-- 区域设置吸附 -->\n <OlSnapInteraction v-if=\"activatedBottomBar === '区域设置'\" />\n </OlSourceVector>\n\n <OlStyle :override-style-function=\"fnOverrideStyle\" />\n </OlVectorLayer>\n\n <!-- 编辑 / 区域模板 -->\n <OlTransformInteraction\n v-if=\"activatedBottomBar === '编辑' || activatedBottomBar === '区域模板'\"\n />\n\n <!-- 警告气泡:activatedPositionOverlayWaring 为告警设备坐标 -->\n <OlOverlay\n v-if=\"\n waring &&\n activatedPositionOverlayWaring &&\n activatedPositionOverlayWaring.length > 0\n \"\n :position=\"activatedPositionOverlayWaring\"\n :auto-pan=\"true\"\n :anchor=\"[0.5, 1]\"\n :offset=\"[-50, -30]\"\n >\n <div\n class=\"waring-bubble flex flex-col justify-start text-white flex-nowrap\"\n >\n <img :src=\"waringIcon\" alt=\"\" class=\"absolute w-full h-full\" />\n </div>\n </OlOverlay>\n\n <!-- 位置气泡(插槽) -->\n <OlOverlay\n v-if=\"activatedPositionOverlay.length > 0\"\n :position=\"activatedPositionOverlay\"\n :offset=\"[-175, -255]\"\n :auto-pan=\"true\"\n >\n <slot name=\"overlay\" />\n </OlOverlay>\n </OlMap>\n</template>\n"],"names":["_Map","_Layers","_Sources","_MapControls","_Interactions","_Styles","ref","toRef","provide","inject","watch","nextTick","Style","Icon","onMounted","_createBlock","_unref","_createVNode","_createCommentVNode","_createElementVNode","_renderSlot"],"mappings":"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"}
@@ -175,11 +175,13 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
175
175
  zoom: mapZoom
176
176
  });
177
177
  map.addControl(new T.Control.Zoom());
178
- map.addEventListener("click", (e) => {
179
- const lnglat = e.lnglat;
180
- if (!lnglat) return;
181
- addMarker([lnglat.getLng(), lnglat.getLat()]);
182
- });
178
+ if (props.type !== "view") {
179
+ map.addEventListener("click", (e) => {
180
+ const lnglat = e.lnglat;
181
+ if (!lnglat) return;
182
+ addMarker([lnglat.getLng(), lnglat.getLat()]);
183
+ });
184
+ }
183
185
  if (hasInitPos) {
184
186
  await vue.nextTick();
185
187
  addMarker([model.value[0], model.value[1]], model.value[2]);
@@ -1 +1 @@
1
- {"version":3,"file":"map.vue2.js","sources":["../../../../../../../packages/components/map/src/map.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { CircleClose } from \"@element-plus/icons-vue\";\nimport { ElMessage } from \"element-plus\";\nimport { nextTick, onMounted, onUnmounted, ref, toRefs, watch } from \"vue\";\nimport { MapProps, TiandituGlobal } from \"./map\";\nimport markerIcon from \"./marker.png\";\n\ndefineOptions({\n name: \"IMap\",\n});\n\n// ==================== Props & Emits ====================\nconst props = defineProps(MapProps);\n\nconst emits = defineEmits([\n \"update:modelValue\",\n \"change\",\n \"update:addressCode\",\n \"update:address\",\n]);\n\nconst { modelValue, disabled, options } = toRefs(props);\n\n// ==================== 天地图 Token ====================\nconst TIANDITU_TOKEN = \"ab0296cad21f656152228912c15abdfb\";\n\n// ==================== 模块级:加载天地图 JS API ====================\nconst _win = window as unknown as TiandituGlobal;\n\nfunction loadTiandituScript(): Promise<void> {\n if (_win.__tdt_loaded) return Promise.resolve();\n if (_win.__tdt_loading) return _win.__tdt_loading;\n\n _win.__tdt_loading = new Promise<void>((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = `https://api.tianditu.gov.cn/api?v=4.0&tk=${TIANDITU_TOKEN}`;\n script.onload = () => {\n _win.__tdt_loaded = true;\n _win.__tdt_loading = null;\n resolve();\n };\n script.onerror = () => {\n _win.__tdt_loading = null;\n reject(new Error(\"天地图 API 加载失败\"));\n };\n document.head.appendChild(script);\n });\n return _win.__tdt_loading;\n}\n\nfunction getT(): any {\n return _win.T;\n}\n\n// ==================== 天地图 REST API 封装 ====================\nasync function tdtSearch(keyword: string): Promise<any[]> {\n const postStr = JSON.stringify({\n keyWord: keyword,\n level: 12,\n mapBound: \"73.66,3.86,135.05,53.55\",\n queryType: 7,\n start: 0,\n count: 20,\n });\n const url = `https://api.tianditu.gov.cn/v2/search?postStr=${encodeURIComponent(postStr)}&type=query&tk=${TIANDITU_TOKEN}`;\n try {\n const resp = await fetch(url);\n if (!resp.ok) return [];\n const data = await resp.json();\n if (data && data.pois) {\n return data.pois.map((poi: any) => ({\n value: poi.name,\n name: poi.name,\n district: poi.address || \"\",\n location: poi.lonlat\n ? {\n lng: Number(poi.lonlat.split(\" \")[0]),\n lat: Number(poi.lonlat.split(\" \")[1]),\n }\n : null,\n adcode: poi.admincode || \"\",\n _raw: poi,\n }));\n }\n return [];\n } catch {\n return [];\n }\n}\n\nasync function tdtReverseGeocode(lng: number, lat: number): Promise<string> {\n const postStr = JSON.stringify({ lon: lng, lat, ver: 1 });\n const url = `https://api.tianditu.gov.cn/geocoder?postStr=${encodeURIComponent(postStr)}&type=geocode&tk=${TIANDITU_TOKEN}`;\n const resp = await fetch(url);\n const data = await resp.json();\n if (data && data.result) {\n return data.result.formatted_address || data.result.address || \"\";\n }\n return \"\";\n}\n\n// ==================== 响应式状态 ====================\nlet map: any = null;\nlet marker: any = null;\nlet infoWindow: any = null;\n\nconst dialogVisible = ref(false);\nconst keyword = ref(\"\");\nconst model = ref<any>([]);\n\nconst refMap = ref<HTMLDivElement | null>(null);\nconst center = ref<[number, number]>([116.397428, 39.90923]);\nconst zoom = ref(10);\n\n// ==================== 标记管理 ====================\nfunction clearMarker() {\n if (marker) {\n map?.removeOverLay(marker);\n marker = null;\n }\n}\n\nasync function addMarker(lnglat: [number, number], name?: string) {\n const T = getT();\n if (!T || !map) return;\n\n clearMarker();\n\n const icon = new T.Icon({\n iconUrl: markerIcon,\n iconSize: new T.Point(19, 33),\n iconAnchor: new T.Point(10, 33),\n });\n\n marker = new T.Marker(new T.LngLat(lnglat[0], lnglat[1]), { icon });\n map.addOverLay(marker);\n\n if (name) {\n keyword.value = name;\n model.value = [lnglat[0], lnglat[1], name];\n return;\n }\n\n try {\n const address = await tdtReverseGeocode(lnglat[0], lnglat[1]);\n keyword.value =\n address || `${lnglat[0].toFixed(6)}, ${lnglat[1].toFixed(6)}`;\n model.value = [lnglat[0], lnglat[1], keyword.value];\n } catch {\n model.value = [\n lnglat[0],\n lnglat[1],\n `${lnglat[0].toFixed(6)}, ${lnglat[1].toFixed(6)}`,\n ];\n }\n}\n\n// ==================== 地图初始化 ====================\nasync function initMap() {\n await loadTiandituScript();\n const T = getT();\n if (!T) return;\n\n const container = refMap.value;\n if (!container) return;\n\n if (map) {\n try {\n map.destroy();\n } catch {\n /* ignore */\n }\n map = null;\n marker = null;\n }\n\n const hasInitPos = model.value?.[0] != null && model.value?.[1] != null;\n const mapCenter = hasInitPos\n ? new T.LngLat(model.value[0], model.value[1])\n : new T.LngLat(center.value[0], center.value[1]);\n const mapZoom = hasInitPos ? options.value?.zoom || 15 : zoom.value;\n\n map = new T.Map(container, {\n center: mapCenter,\n zoom: mapZoom,\n });\n\n map.addControl(new T.Control.Zoom());\n\n // 地图点击 → 选点\n map.addEventListener(\"click\", (e: any) => {\n const lnglat = e.lnglat;\n if (!lnglat) return;\n addMarker([lnglat.getLng(), lnglat.getLat()]);\n });\n\n if (hasInitPos) {\n await nextTick();\n addMarker([model.value[0], model.value[1]], model.value[2]);\n }\n}\n\nfunction destroyMap() {\n clearMarker();\n if (infoWindow) {\n try {\n infoWindow.closeInfoWindow();\n } catch {\n /* ignore */\n }\n infoWindow = null;\n }\n if (map) {\n try {\n map.destroy();\n } catch {\n /* ignore */\n }\n map = null;\n }\n}\n\n// ==================== 打开选择器 ====================\nconst handleOpenDialog = async () => {\n if (disabled.value) return;\n dialogVisible.value = true;\n await nextTick();\n model.value = JSON.parse(JSON.stringify(modelValue.value));\n setTimeout(() => initMap(), 200);\n};\n\n// ==================== 自动补全搜索 ====================\nconst LAST_SEARCH_RESULTS = ref<any[]>([]);\n\nconst querySearch = async (queryString: string, cb: any) => {\n if (!queryString) return cb([]);\n try {\n const results = await tdtSearch(queryString);\n LAST_SEARCH_RESULTS.value = results;\n cb(results);\n } catch {\n ElMessage.error(\"搜索失败,请稍后重试\");\n cb([]);\n }\n};\n\nconst inputChange = () => {\n model.value = [];\n clearMarker();\n};\n\n// ==================== 选中搜索结果 ====================\n/**\n * 从 item 中提取坐标(优先 item.location,其次 item._raw.lonlat)\n */\nfunction extractCoords(item: any): [number, number] | null {\n if (item.location && !isNaN(item.location.lng) && !isNaN(item.location.lat)) {\n return [item.location.lng, item.location.lat];\n }\n if (item._raw?.lonlat) {\n const [lng, lat] = item._raw.lonlat.split(\",\").map(Number);\n if (!isNaN(lng) && !isNaN(lat)) return [lng, lat];\n }\n return null;\n}\n\n/**\n * 定位到指定坐标并添加标记\n */\nfunction locateTo(lngLat: [number, number], name: string) {\n addMarker(lngLat, name);\n map?.panTo(new (getT().LngLat)(lngLat[0], lngLat[1]));\n}\n\nconst handleSelect = async (item: any) => {\n console.log(\"🚀 ~ item:\", item);\n keyword.value = item.name;\n\n // 1) item 本身有坐标 → 直接定位打点\n const coords = extractCoords(item);\n console.log(\"🚀 ~ coords:\", coords);\n if (coords) {\n locateTo(coords, item.name);\n return;\n }\n\n // 2) 无坐标 → 远程搜索后定位\n try {\n const results = await tdtSearch(item.name);\n const first = results[0];\n if (first) {\n const firstCoords = extractCoords(first);\n if (firstCoords) {\n locateTo(firstCoords, first.name);\n return;\n }\n }\n ElMessage.warning(\"未找到匹配的地点\");\n } catch {\n ElMessage.warning(\"搜索失败,请稍后重试\");\n }\n};\n\n// ==================== Enter 键搜索 ====================\nconst handleEnterKey = () => {\n if (!keyword.value) return;\n if (LAST_SEARCH_RESULTS.value.length > 0) {\n handleSelect(LAST_SEARCH_RESULTS.value[0]);\n } else {\n handleSelect({ value: keyword.value, name: keyword.value });\n }\n};\n\n// ==================== 确认 / 清除 ====================\nconst handleConfirm = () => {\n emits(\"update:modelValue\", model.value);\n emits(\"change\", model.value);\n emits(\"update:addressCode\", [model.value[0], model.value[1]]);\n emits(\"update:address\", model.value[2]);\n dialogVisible.value = false;\n setTimeout(() => destroyMap(), 300);\n};\n\nconst clearValue = () => {\n emits(\"update:modelValue\", []);\n emits(\"change\", []);\n};\n\n// ==================== 地图中心更新 ====================\nfunction updateMapCenter(val: any[], retry = 0) {\n const T = getT();\n if (!map || !T) {\n if (retry < 10) {\n setTimeout(() => updateMapCenter(val, retry + 1), 300);\n }\n return;\n }\n addMarker([val[0], val[1]], val[2]);\n map.panTo(new T.LngLat(val[0], val[1]), options.value?.zoom || 12);\n}\n\n// ==================== View 模式:挂载时初始化 ====================\nonMounted(() => {\n if (props.type === \"view\") {\n nextTick(async () => {\n model.value = JSON.parse(JSON.stringify(modelValue.value));\n await new Promise((r) => requestAnimationFrame(r));\n try {\n await initMap();\n } catch (e) {\n console.error(\"[ViewMap] initMap error:\", e);\n }\n });\n }\n});\n\nonUnmounted(() => {\n destroyMap();\n});\n\n// ==================== 监听 modelValue 外部变化 ====================\nwatch(\n () => props.modelValue,\n (val) => {\n if (!val || val[0] == null || val[1] == null) return;\n model.value = JSON.parse(JSON.stringify(val));\n updateMapCenter(val);\n },\n { deep: true },\n);\n\ndefineExpose({\n handleOpenDialog,\n});\n</script>\n\n<template>\n <!-- type=\"view\":只读地图 -->\n <div\n v-if=\"type === 'view'\"\n class=\"i-map w-full h-full i-map__container-inner\"\n >\n <div ref=\"refMap\" class=\"i-map__tdt i-map__tdt--view\" />\n </div>\n\n <!-- type=\"edit\" / \"edit2\":输入框 + 抽屉 / 纯抽屉 -->\n <div v-else class=\"i-map\">\n <!-- edit 模式:输入框触发器 -->\n <el-input\n v-if=\"type === 'edit'\"\n v-model=\"modelValue[2]\"\n class=\"i-map__input\"\n :placeholder=\"placeholder\"\n readonly\n :size=\"size\"\n :disabled=\"disabled\"\n @click=\"handleOpenDialog\"\n >\n <template v-if=\"!disabled\" #suffix>\n <el-icon\n v-if=\"modelValue[2]\"\n class=\"i-map__input-close\"\n @click.stop=\"clearValue\"\n >\n <CircleClose />\n </el-icon>\n </template>\n </el-input>\n\n <!-- 共享抽屉 -->\n <el-drawer\n v-model=\"dialogVisible\"\n title=\"请选择地点\"\n :show-close=\"true\"\n size=\"100%\"\n @closed=\"destroyMap\"\n >\n <div\n v-if=\"dialogVisible\"\n class=\"h-full w-full overflow-hidden i-map__container\"\n >\n <el-autocomplete\n v-model=\"keyword\"\n :disabled=\"disabled\"\n placeholder=\"请输入关键字选择地点\"\n class=\"i-map__search\"\n :debounce=\"700\"\n style=\"margin-bottom: 15px; width: 100%\"\n clearable\n :fetch-suggestions=\"querySearch\"\n :validate-event=\"false\"\n @input=\"inputChange\"\n @select=\"handleSelect\"\n @keyup.enter=\"handleEnterKey\"\n >\n <template #default=\"{ item }\">\n {{ item.name }}\n <span class=\"i-map__district\">{{ item.district }}</span>\n </template>\n </el-autocomplete>\n <div class=\"i-map__container-inner\">\n <div ref=\"refMap\" class=\"i-map__tdt\" />\n </div>\n </div>\n <template #footer>\n <el-button type=\"primary\" :disabled=\"disabled\" @click=\"handleConfirm\">\n 确定\n </el-button>\n </template>\n </el-drawer>\n </div>\n</template>\n"],"names":["toRefs","keyword","marker","ref","markerIcon","nextTick","ElMessage","onMounted","onUnmounted","watch","_createCommentVNode","type","_openBlock","_createElementBlock","_createElementVNode","_Fragment","_createBlock","_unref","placeholder","size","_createVNode","CircleClose","_withCtx","_toDisplayString"],"mappings":"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"}
1
+ {"version":3,"file":"map.vue2.js","sources":["../../../../../../../packages/components/map/src/map.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { CircleClose } from \"@element-plus/icons-vue\";\nimport { ElMessage } from \"element-plus\";\nimport { nextTick, onMounted, onUnmounted, ref, toRefs, watch } from \"vue\";\nimport { MapProps, TiandituGlobal } from \"./map\";\nimport markerIcon from \"./marker.png\";\n\ndefineOptions({\n name: \"IMap\",\n});\n\n// ==================== Props & Emits ====================\nconst props = defineProps(MapProps);\n\nconst emits = defineEmits([\n \"update:modelValue\",\n \"change\",\n \"update:addressCode\",\n \"update:address\",\n]);\n\nconst { modelValue, disabled, options } = toRefs(props);\n\n// ==================== 天地图 Token ====================\nconst TIANDITU_TOKEN = \"ab0296cad21f656152228912c15abdfb\";\n\n// ==================== 模块级:加载天地图 JS API ====================\nconst _win = window as unknown as TiandituGlobal;\n\nfunction loadTiandituScript(): Promise<void> {\n if (_win.__tdt_loaded) return Promise.resolve();\n if (_win.__tdt_loading) return _win.__tdt_loading;\n\n _win.__tdt_loading = new Promise<void>((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = `https://api.tianditu.gov.cn/api?v=4.0&tk=${TIANDITU_TOKEN}`;\n script.onload = () => {\n _win.__tdt_loaded = true;\n _win.__tdt_loading = null;\n resolve();\n };\n script.onerror = () => {\n _win.__tdt_loading = null;\n reject(new Error(\"天地图 API 加载失败\"));\n };\n document.head.appendChild(script);\n });\n return _win.__tdt_loading;\n}\n\nfunction getT(): any {\n return _win.T;\n}\n\n// ==================== 天地图 REST API 封装 ====================\nasync function tdtSearch(keyword: string): Promise<any[]> {\n const postStr = JSON.stringify({\n keyWord: keyword,\n level: 12,\n mapBound: \"73.66,3.86,135.05,53.55\",\n queryType: 7,\n start: 0,\n count: 20,\n });\n const url = `https://api.tianditu.gov.cn/v2/search?postStr=${encodeURIComponent(postStr)}&type=query&tk=${TIANDITU_TOKEN}`;\n try {\n const resp = await fetch(url);\n if (!resp.ok) return [];\n const data = await resp.json();\n if (data && data.pois) {\n return data.pois.map((poi: any) => ({\n value: poi.name,\n name: poi.name,\n district: poi.address || \"\",\n location: poi.lonlat\n ? {\n lng: Number(poi.lonlat.split(\" \")[0]),\n lat: Number(poi.lonlat.split(\" \")[1]),\n }\n : null,\n adcode: poi.admincode || \"\",\n _raw: poi,\n }));\n }\n return [];\n } catch {\n return [];\n }\n}\n\nasync function tdtReverseGeocode(lng: number, lat: number): Promise<string> {\n const postStr = JSON.stringify({ lon: lng, lat, ver: 1 });\n const url = `https://api.tianditu.gov.cn/geocoder?postStr=${encodeURIComponent(postStr)}&type=geocode&tk=${TIANDITU_TOKEN}`;\n const resp = await fetch(url);\n const data = await resp.json();\n if (data && data.result) {\n return data.result.formatted_address || data.result.address || \"\";\n }\n return \"\";\n}\n\n// ==================== 响应式状态 ====================\nlet map: any = null;\nlet marker: any = null;\nlet infoWindow: any = null;\n\nconst dialogVisible = ref(false);\nconst keyword = ref(\"\");\nconst model = ref<any>([]);\n\nconst refMap = ref<HTMLDivElement | null>(null);\nconst center = ref<[number, number]>([116.397428, 39.90923]);\nconst zoom = ref(10);\n\n// ==================== 标记管理 ====================\nfunction clearMarker() {\n if (marker) {\n map?.removeOverLay(marker);\n marker = null;\n }\n}\n\nasync function addMarker(lnglat: [number, number], name?: string) {\n const T = getT();\n if (!T || !map) return;\n\n clearMarker();\n\n const icon = new T.Icon({\n iconUrl: markerIcon,\n iconSize: new T.Point(19, 33),\n iconAnchor: new T.Point(10, 33),\n });\n\n marker = new T.Marker(new T.LngLat(lnglat[0], lnglat[1]), { icon });\n map.addOverLay(marker);\n\n if (name) {\n keyword.value = name;\n model.value = [lnglat[0], lnglat[1], name];\n return;\n }\n\n try {\n const address = await tdtReverseGeocode(lnglat[0], lnglat[1]);\n keyword.value =\n address || `${lnglat[0].toFixed(6)}, ${lnglat[1].toFixed(6)}`;\n model.value = [lnglat[0], lnglat[1], keyword.value];\n } catch {\n model.value = [\n lnglat[0],\n lnglat[1],\n `${lnglat[0].toFixed(6)}, ${lnglat[1].toFixed(6)}`,\n ];\n }\n}\n\n// ==================== 地图初始化 ====================\nasync function initMap() {\n await loadTiandituScript();\n const T = getT();\n if (!T) return;\n\n const container = refMap.value;\n if (!container) return;\n\n if (map) {\n try {\n map.destroy();\n } catch {\n /* ignore */\n }\n map = null;\n marker = null;\n }\n\n const hasInitPos = model.value?.[0] != null && model.value?.[1] != null;\n const mapCenter = hasInitPos\n ? new T.LngLat(model.value[0], model.value[1])\n : new T.LngLat(center.value[0], center.value[1]);\n const mapZoom = hasInitPos ? options.value?.zoom || 15 : zoom.value;\n\n map = new T.Map(container, {\n center: mapCenter,\n zoom: mapZoom,\n });\n\n map.addControl(new T.Control.Zoom());\n\n // 地图点击 → 选点(仅编辑态)\n // view 模式是只读展示,点击地图不得改动标点位置(addMarker 会先 clearMarker 再重新打点,\n // 还会触发逆地理编码请求),因此这里不绑定该监听。\n if (props.type !== \"view\") {\n map.addEventListener(\"click\", (e: any) => {\n const lnglat = e.lnglat;\n if (!lnglat) return;\n addMarker([lnglat.getLng(), lnglat.getLat()]);\n });\n }\n\n if (hasInitPos) {\n await nextTick();\n addMarker([model.value[0], model.value[1]], model.value[2]);\n }\n}\n\nfunction destroyMap() {\n clearMarker();\n if (infoWindow) {\n try {\n infoWindow.closeInfoWindow();\n } catch {\n /* ignore */\n }\n infoWindow = null;\n }\n if (map) {\n try {\n map.destroy();\n } catch {\n /* ignore */\n }\n map = null;\n }\n}\n\n// ==================== 打开选择器 ====================\nconst handleOpenDialog = async () => {\n if (disabled.value) return;\n dialogVisible.value = true;\n await nextTick();\n model.value = JSON.parse(JSON.stringify(modelValue.value));\n setTimeout(() => initMap(), 200);\n};\n\n// ==================== 自动补全搜索 ====================\nconst LAST_SEARCH_RESULTS = ref<any[]>([]);\n\nconst querySearch = async (queryString: string, cb: any) => {\n if (!queryString) return cb([]);\n try {\n const results = await tdtSearch(queryString);\n LAST_SEARCH_RESULTS.value = results;\n cb(results);\n } catch {\n ElMessage.error(\"搜索失败,请稍后重试\");\n cb([]);\n }\n};\n\nconst inputChange = () => {\n model.value = [];\n clearMarker();\n};\n\n// ==================== 选中搜索结果 ====================\n/**\n * 从 item 中提取坐标(优先 item.location,其次 item._raw.lonlat)\n */\nfunction extractCoords(item: any): [number, number] | null {\n if (item.location && !isNaN(item.location.lng) && !isNaN(item.location.lat)) {\n return [item.location.lng, item.location.lat];\n }\n if (item._raw?.lonlat) {\n const [lng, lat] = item._raw.lonlat.split(\",\").map(Number);\n if (!isNaN(lng) && !isNaN(lat)) return [lng, lat];\n }\n return null;\n}\n\n/**\n * 定位到指定坐标并添加标记\n */\nfunction locateTo(lngLat: [number, number], name: string) {\n addMarker(lngLat, name);\n map?.panTo(new (getT().LngLat)(lngLat[0], lngLat[1]));\n}\n\nconst handleSelect = async (item: any) => {\n console.log(\"🚀 ~ item:\", item);\n keyword.value = item.name;\n\n // 1) item 本身有坐标 → 直接定位打点\n const coords = extractCoords(item);\n console.log(\"🚀 ~ coords:\", coords);\n if (coords) {\n locateTo(coords, item.name);\n return;\n }\n\n // 2) 无坐标 → 远程搜索后定位\n try {\n const results = await tdtSearch(item.name);\n const first = results[0];\n if (first) {\n const firstCoords = extractCoords(first);\n if (firstCoords) {\n locateTo(firstCoords, first.name);\n return;\n }\n }\n ElMessage.warning(\"未找到匹配的地点\");\n } catch {\n ElMessage.warning(\"搜索失败,请稍后重试\");\n }\n};\n\n// ==================== Enter 键搜索 ====================\nconst handleEnterKey = () => {\n if (!keyword.value) return;\n if (LAST_SEARCH_RESULTS.value.length > 0) {\n handleSelect(LAST_SEARCH_RESULTS.value[0]);\n } else {\n handleSelect({ value: keyword.value, name: keyword.value });\n }\n};\n\n// ==================== 确认 / 清除 ====================\nconst handleConfirm = () => {\n emits(\"update:modelValue\", model.value);\n emits(\"change\", model.value);\n emits(\"update:addressCode\", [model.value[0], model.value[1]]);\n emits(\"update:address\", model.value[2]);\n dialogVisible.value = false;\n setTimeout(() => destroyMap(), 300);\n};\n\nconst clearValue = () => {\n emits(\"update:modelValue\", []);\n emits(\"change\", []);\n};\n\n// ==================== 地图中心更新 ====================\nfunction updateMapCenter(val: any[], retry = 0) {\n const T = getT();\n if (!map || !T) {\n if (retry < 10) {\n setTimeout(() => updateMapCenter(val, retry + 1), 300);\n }\n return;\n }\n addMarker([val[0], val[1]], val[2]);\n map.panTo(new T.LngLat(val[0], val[1]), options.value?.zoom || 12);\n}\n\n// ==================== View 模式:挂载时初始化 ====================\nonMounted(() => {\n if (props.type === \"view\") {\n nextTick(async () => {\n model.value = JSON.parse(JSON.stringify(modelValue.value));\n await new Promise((r) => requestAnimationFrame(r));\n try {\n await initMap();\n } catch (e) {\n console.error(\"[ViewMap] initMap error:\", e);\n }\n });\n }\n});\n\nonUnmounted(() => {\n destroyMap();\n});\n\n// ==================== 监听 modelValue 外部变化 ====================\nwatch(\n () => props.modelValue,\n (val) => {\n if (!val || val[0] == null || val[1] == null) return;\n model.value = JSON.parse(JSON.stringify(val));\n updateMapCenter(val);\n },\n { deep: true },\n);\n\ndefineExpose({\n handleOpenDialog,\n});\n</script>\n\n<template>\n <!-- type=\"view\":只读地图 -->\n <div\n v-if=\"type === 'view'\"\n class=\"i-map w-full h-full i-map__container-inner\"\n >\n <div ref=\"refMap\" class=\"i-map__tdt i-map__tdt--view\" />\n </div>\n\n <!-- type=\"edit\" / \"edit2\":输入框 + 抽屉 / 纯抽屉 -->\n <div v-else class=\"i-map\">\n <!-- edit 模式:输入框触发器 -->\n <el-input\n v-if=\"type === 'edit'\"\n v-model=\"modelValue[2]\"\n class=\"i-map__input\"\n :placeholder=\"placeholder\"\n readonly\n :size=\"size\"\n :disabled=\"disabled\"\n @click=\"handleOpenDialog\"\n >\n <template v-if=\"!disabled\" #suffix>\n <el-icon\n v-if=\"modelValue[2]\"\n class=\"i-map__input-close\"\n @click.stop=\"clearValue\"\n >\n <CircleClose />\n </el-icon>\n </template>\n </el-input>\n\n <!-- 共享抽屉 -->\n <el-drawer\n v-model=\"dialogVisible\"\n title=\"请选择地点\"\n :show-close=\"true\"\n size=\"100%\"\n @closed=\"destroyMap\"\n >\n <div\n v-if=\"dialogVisible\"\n class=\"h-full w-full overflow-hidden i-map__container\"\n >\n <el-autocomplete\n v-model=\"keyword\"\n :disabled=\"disabled\"\n placeholder=\"请输入关键字选择地点\"\n class=\"i-map__search\"\n :debounce=\"700\"\n style=\"margin-bottom: 15px; width: 100%\"\n clearable\n :fetch-suggestions=\"querySearch\"\n :validate-event=\"false\"\n @input=\"inputChange\"\n @select=\"handleSelect\"\n @keyup.enter=\"handleEnterKey\"\n >\n <template #default=\"{ item }\">\n {{ item.name }}\n <span class=\"i-map__district\">{{ item.district }}</span>\n </template>\n </el-autocomplete>\n <div class=\"i-map__container-inner\">\n <div ref=\"refMap\" class=\"i-map__tdt\" />\n </div>\n </div>\n <template #footer>\n <el-button type=\"primary\" :disabled=\"disabled\" @click=\"handleConfirm\">\n 确定\n </el-button>\n </template>\n </el-drawer>\n </div>\n</template>\n"],"names":["toRefs","keyword","marker","ref","markerIcon","nextTick","ElMessage","onMounted","onUnmounted","watch","_createCommentVNode","type","_openBlock","_createElementBlock","_createElementVNode","_Fragment","_createBlock","_unref","placeholder","size","_createVNode","CircleClose","_withCtx","_toDisplayString"],"mappings":"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"}
@@ -527,7 +527,6 @@ export declare const ITzjPlayer: import("../../types").SFCWithInstall<import("vu
527
527
  errorMsg: import("vue").Ref<string, string>;
528
528
  playerRef: import("vue").ShallowRef<any, any>;
529
529
  isPlaying: import("vue").Ref<boolean, boolean>;
530
- isFullscreen: import("vue").Ref<boolean, boolean>;
531
530
  isVolumeMuted: import("vue").Ref<boolean, boolean>;
532
531
  audioMsg: import("vue").Ref<{
533
532
  type: string;
@@ -540,13 +539,8 @@ export declare const ITzjPlayer: import("../../types").SFCWithInstall<import("vu
540
539
  msg: string;
541
540
  }>;
542
541
  initPlayer: () => Promise<void>;
543
- playerPlay: () => void;
544
- playerPause: () => void;
545
- playerScreenShot: () => void;
546
- playerFullscreen: (fullscreen: boolean) => void;
547
542
  handleVideoInfo: () => void;
548
543
  handleMute: (mute: boolean) => void;
549
- handleSetMute: (volume: number) => void;
550
544
  EasyPlayer: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
551
545
  url: {
552
546
  type: StringConstructor;
@@ -874,291 +868,6 @@ export declare const ITzjPlayer: import("../../types").SFCWithInstall<import("vu
874
868
  areaName: string;
875
869
  platformTypeName: string;
876
870
  pauseMode: number;
877
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any> | import("vue").DefineComponent<import("vue").ExtractPropTypes<{
878
- url: {
879
- type: StringConstructor;
880
- default: string;
881
- };
882
- accessToken: {
883
- type: StringConstructor;
884
- default: string;
885
- };
886
- areaName: {
887
- type: StringConstructor;
888
- default: string;
889
- };
890
- deviceSerial: {
891
- type: StringConstructor;
892
- default: string;
893
- };
894
- platformTypeName: {
895
- type: StringConstructor;
896
- default: string;
897
- };
898
- debug: {
899
- type: BooleanConstructor;
900
- default: boolean;
901
- };
902
- pauseMode: {
903
- type: NumberConstructor;
904
- default: number;
905
- validator: (value: number) => boolean;
906
- };
907
- }>, {
908
- props: import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
909
- url: {
910
- type: StringConstructor;
911
- default: string;
912
- };
913
- accessToken: {
914
- type: StringConstructor;
915
- default: string;
916
- };
917
- areaName: {
918
- type: StringConstructor;
919
- default: string;
920
- };
921
- deviceSerial: {
922
- type: StringConstructor;
923
- default: string;
924
- };
925
- platformTypeName: {
926
- type: StringConstructor;
927
- default: string;
928
- };
929
- debug: {
930
- type: BooleanConstructor;
931
- default: boolean;
932
- };
933
- pauseMode: {
934
- type: NumberConstructor;
935
- default: number;
936
- validator: (value: number) => boolean;
937
- };
938
- }>> & Readonly<{}> & {}>;
939
- videoUrl: import("vue").Ref<string, string>;
940
- errorMsg: import("vue").Ref<string, string>;
941
- showBottomBar: import("vue").Ref<boolean, boolean>;
942
- playerRef: import("vue").ShallowRef<any, any>;
943
- isPlaying: import("vue").Ref<boolean, boolean>;
944
- isVolumeMuted: import("vue").Ref<boolean, boolean>;
945
- audioMsg: import("vue").Ref<{
946
- type: string;
947
- msg: string;
948
- }, {
949
- type: string;
950
- msg: string;
951
- } | {
952
- type: string;
953
- msg: string;
954
- }>;
955
- initPlayer: () => Promise<void>;
956
- handleVideoInfo: () => void;
957
- handleMute: (mute: boolean) => void;
958
- EasyPlayer: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
959
- url: {
960
- type: StringConstructor;
961
- default: string;
962
- };
963
- accessToken: {
964
- type: StringConstructor;
965
- default: string;
966
- };
967
- areaName: {
968
- type: StringConstructor;
969
- default: string;
970
- };
971
- deviceSerial: {
972
- type: StringConstructor;
973
- default: string;
974
- };
975
- platformTypeName: {
976
- type: StringConstructor;
977
- default: string;
978
- };
979
- debug: {
980
- type: BooleanConstructor;
981
- default: boolean;
982
- };
983
- pauseMode: {
984
- type: NumberConstructor;
985
- default: number;
986
- validator: (value: number) => boolean;
987
- };
988
- }>, {
989
- props: import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
990
- url: {
991
- type: StringConstructor;
992
- default: string;
993
- };
994
- accessToken: {
995
- type: StringConstructor;
996
- default: string;
997
- };
998
- areaName: {
999
- type: StringConstructor;
1000
- default: string;
1001
- };
1002
- deviceSerial: {
1003
- type: StringConstructor;
1004
- default: string;
1005
- };
1006
- platformTypeName: {
1007
- type: StringConstructor;
1008
- default: string;
1009
- };
1010
- debug: {
1011
- type: BooleanConstructor;
1012
- default: boolean;
1013
- };
1014
- pauseMode: {
1015
- type: NumberConstructor;
1016
- default: number;
1017
- validator: (value: number) => boolean;
1018
- };
1019
- }>> & Readonly<{
1020
- onPlay?: ((...args: any[]) => any) | undefined;
1021
- onPause?: ((...args: any[]) => any) | undefined;
1022
- onError?: ((...args: any[]) => any) | undefined;
1023
- onVideoInfo?: ((...args: any[]) => any) | undefined;
1024
- onTimeout?: ((...args: any[]) => any) | undefined;
1025
- onMute?: ((...args: any[]) => any) | undefined;
1026
- }> & {}>;
1027
- emits: (event: "error" | "play" | "pause" | "videoInfo" | "timeout" | "mute", ...args: any[]) => void;
1028
- slots: Readonly<{
1029
- [name: string]: import("vue").Slot<any> | undefined;
1030
- }>;
1031
- customBar: import("vue").ComputedRef<import("vue").Slot<any> | undefined>;
1032
- player: any;
1033
- id: string;
1034
- playerRef: import("vue").ShallowRef<HTMLDivElement | undefined, HTMLDivElement | undefined>;
1035
- playSuccess: import("vue").Ref<boolean, boolean>;
1036
- playUrl: import("vue").Ref<string, string>;
1037
- videoInfo: import("vue").Ref<any, any>;
1038
- eventHandlers: import("vue").Ref<Map<string, Function> & Omit<Map<string, Function>, keyof Map<any, any>>, Map<string, Function> | (Map<string, Function> & Omit<Map<string, Function>, keyof Map<any, any>>)>;
1039
- waitTimer: number | null;
1040
- restartTimer: import("vue").Ref<number | null, number | null>;
1041
- pauseCycleTimer: import("vue").Ref<number | null, number | null>;
1042
- resizeObserver: ResizeObserver | null;
1043
- createRetryCount: number;
1044
- MAX_CREATE_RETRY: number;
1045
- isUnmounted: boolean;
1046
- play: (url?: string) => void;
1047
- playerPause: () => void;
1048
- playerScreenShot: () => void;
1049
- formatUrl: (url: string) => string;
1050
- initPlayer: (url: string) => Promise<void>;
1051
- removePlayerDom: () => void;
1052
- createPlayerDom: () => Promise<HTMLDivElement>;
1053
- createPlayer: () => Promise<void>;
1054
- startPlayer: () => Promise<void>;
1055
- destroy: (flag?: boolean) => void;
1056
- }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("error" | "play" | "pause" | "videoInfo" | "timeout" | "mute")[], "error" | "play" | "pause" | "videoInfo" | "timeout" | "mute", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
1057
- url: {
1058
- type: StringConstructor;
1059
- default: string;
1060
- };
1061
- accessToken: {
1062
- type: StringConstructor;
1063
- default: string;
1064
- };
1065
- areaName: {
1066
- type: StringConstructor;
1067
- default: string;
1068
- };
1069
- deviceSerial: {
1070
- type: StringConstructor;
1071
- default: string;
1072
- };
1073
- platformTypeName: {
1074
- type: StringConstructor;
1075
- default: string;
1076
- };
1077
- debug: {
1078
- type: BooleanConstructor;
1079
- default: boolean;
1080
- };
1081
- pauseMode: {
1082
- type: NumberConstructor;
1083
- default: number;
1084
- validator: (value: number) => boolean;
1085
- };
1086
- }>> & Readonly<{
1087
- onPlay?: ((...args: any[]) => any) | undefined;
1088
- onPause?: ((...args: any[]) => any) | undefined;
1089
- onError?: ((...args: any[]) => any) | undefined;
1090
- onVideoInfo?: ((...args: any[]) => any) | undefined;
1091
- onTimeout?: ((...args: any[]) => any) | undefined;
1092
- onMute?: ((...args: any[]) => any) | undefined;
1093
- }>, {
1094
- url: string;
1095
- accessToken: string;
1096
- debug: boolean;
1097
- deviceSerial: string;
1098
- areaName: string;
1099
- platformTypeName: string;
1100
- pauseMode: number;
1101
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
1102
- ErrorPage: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
1103
- videoName: {
1104
- type: StringConstructor;
1105
- default: string;
1106
- };
1107
- message: {
1108
- type: StringConstructor;
1109
- default: string;
1110
- };
1111
- }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
1112
- videoName: {
1113
- type: StringConstructor;
1114
- default: string;
1115
- };
1116
- message: {
1117
- type: StringConstructor;
1118
- default: string;
1119
- };
1120
- }>> & Readonly<{}>, {
1121
- message: string;
1122
- videoName: string;
1123
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
1124
- }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
1125
- url: {
1126
- type: StringConstructor;
1127
- default: string;
1128
- };
1129
- accessToken: {
1130
- type: StringConstructor;
1131
- default: string;
1132
- };
1133
- areaName: {
1134
- type: StringConstructor;
1135
- default: string;
1136
- };
1137
- deviceSerial: {
1138
- type: StringConstructor;
1139
- default: string;
1140
- };
1141
- platformTypeName: {
1142
- type: StringConstructor;
1143
- default: string;
1144
- };
1145
- debug: {
1146
- type: BooleanConstructor;
1147
- default: boolean;
1148
- };
1149
- pauseMode: {
1150
- type: NumberConstructor;
1151
- default: number;
1152
- validator: (value: number) => boolean;
1153
- };
1154
- }>> & Readonly<{}>, {
1155
- url: string;
1156
- accessToken: string;
1157
- debug: boolean;
1158
- deviceSerial: string;
1159
- areaName: string;
1160
- platformTypeName: string;
1161
- pauseMode: number;
1162
871
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any> | import("vue").DefineComponent<import("vue").ExtractPropTypes<{
1163
872
  url: {
1164
873
  type: StringConstructor;
@@ -1332,7 +1041,6 @@ export declare const ITzjPlayer: import("../../types").SFCWithInstall<import("vu
1332
1041
  errorMsg: import("vue").Ref<string, string>;
1333
1042
  playerRef: import("vue").ShallowRef<any, any>;
1334
1043
  isPlaying: import("vue").Ref<boolean, boolean>;
1335
- isFullscreen: import("vue").Ref<boolean, boolean>;
1336
1044
  isVolumeMuted: import("vue").Ref<boolean, boolean>;
1337
1045
  audioMsg: import("vue").Ref<{
1338
1046
  type: string;
@@ -1345,13 +1053,8 @@ export declare const ITzjPlayer: import("../../types").SFCWithInstall<import("vu
1345
1053
  msg: string;
1346
1054
  }>;
1347
1055
  initPlayer: () => Promise<void>;
1348
- playerPlay: () => void;
1349
- playerPause: () => void;
1350
- playerScreenShot: () => void;
1351
- playerFullscreen: (fullscreen: boolean) => void;
1352
1056
  handleVideoInfo: () => void;
1353
1057
  handleMute: (mute: boolean) => void;
1354
- handleSetMute: (volume: number) => void;
1355
1058
  EasyPlayer: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
1356
1059
  url: {
1357
1060
  type: StringConstructor;