@yimou6/common-ui 1.13.18 → 1.13.20

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 (130) hide show
  1. package/cdn/index.cdn.js +25 -25
  2. package/cdn/index.cdn.js.map +1 -1
  3. package/cdn/index.cdn.mjs +19 -19
  4. package/cdn/index.cdn.mjs.map +1 -1
  5. package/cdn/index.css +1 -1
  6. package/es/components/geoMark/index.d.ts +733 -0
  7. package/es/components/geoMark/index.mjs +9 -0
  8. package/es/components/geoMark/index.mjs.map +1 -0
  9. package/es/components/geoMark/src/DragIcon.vue.d.ts +77 -0
  10. package/es/components/geoMark/src/DragIcon.vue.mjs +6 -0
  11. package/es/components/geoMark/src/DragIcon.vue.mjs.map +1 -0
  12. package/es/components/geoMark/src/DragIcon.vue2.mjs +67 -0
  13. package/es/components/geoMark/src/DragIcon.vue2.mjs.map +1 -0
  14. package/es/components/geoMark/src/assets//344/277/235/345/255/230.png.mjs +4 -0
  15. package/es/components/geoMark/src/assets//344/277/235/345/255/230.png.mjs.map +1 -0
  16. package/es/components/geoMark/src/assets//345/210/240/351/231/244.png.mjs +4 -0
  17. package/es/components/geoMark/src/assets//345/210/240/351/231/244.png.mjs.map +1 -0
  18. package/es/components/geoMark/src/assets//347/274/226/350/276/221.png.mjs +4 -0
  19. package/es/components/geoMark/src/assets//347/274/226/350/276/221.png.mjs.map +1 -0
  20. package/es/components/geoMark/src/assets//351/242/234/350/211/262.png.mjs +4 -0
  21. package/es/components/geoMark/src/assets//351/242/234/350/211/262.png.mjs.map +1 -0
  22. package/es/components/geoMark/src/default.png.mjs +4 -0
  23. package/es/components/geoMark/src/default.png.mjs.map +1 -0
  24. package/es/components/geoMark/src/floorRight/floor.vue.d.ts +15 -0
  25. package/es/components/geoMark/src/floorRight/floor.vue.mjs +6 -0
  26. package/es/components/geoMark/src/floorRight/floor.vue.mjs.map +1 -0
  27. package/es/components/geoMark/src/floorRight/floor.vue2.mjs +119 -0
  28. package/es/components/geoMark/src/floorRight/floor.vue2.mjs.map +1 -0
  29. package/es/components/geoMark/src/geoMark.d.ts +164 -0
  30. package/es/components/geoMark/src/geoMark.mjs +6 -0
  31. package/es/components/geoMark/src/geoMark.mjs.map +1 -0
  32. package/es/components/geoMark/src/geoMark.vue.d.ts +734 -0
  33. package/es/components/geoMark/src/geoMark.vue.mjs +6 -0
  34. package/es/components/geoMark/src/geoMark.vue.mjs.map +1 -0
  35. package/es/components/geoMark/src/geoMark.vue2.mjs +1425 -0
  36. package/es/components/geoMark/src/geoMark.vue2.mjs.map +1 -0
  37. package/es/components/geoMark/src/openMap.vue.d.ts +326 -0
  38. package/es/components/geoMark/src/openMap.vue.mjs +6 -0
  39. package/es/components/geoMark/src/openMap.vue.mjs.map +1 -0
  40. package/es/components/geoMark/src/openMap.vue2.mjs +422 -0
  41. package/es/components/geoMark/src/openMap.vue2.mjs.map +1 -0
  42. package/es/components/geoMark/src/waring.png.mjs +4 -0
  43. package/es/components/geoMark/src/waring.png.mjs.map +1 -0
  44. package/es/components/geoMark/src//346/226/260/345/274/271/346/241/206.png.mjs +4 -0
  45. package/es/components/geoMark/src//346/226/260/345/274/271/346/241/206.png.mjs.map +1 -0
  46. package/es/components/geoMark/src//347/201/255/347/201/253/345/231/250.png.mjs +4 -0
  47. package/es/components/geoMark/src//347/201/255/347/201/253/345/231/250.png.mjs.map +1 -0
  48. package/es/components/index.d.ts +1 -0
  49. package/es/components/index.mjs +2 -0
  50. package/es/components/index.mjs.map +1 -1
  51. package/es/components/map/index.d.ts +4 -1
  52. package/es/components/map/src/map.vue.d.ts +4 -1
  53. package/es/components/map/src/map.vue2.mjs +106 -221
  54. package/es/components/map/src/map.vue2.mjs.map +1 -1
  55. package/es/components/tzj-player/index.d.ts +10 -0
  56. package/es/components/tzj-player/src/ctyun-player.vue.d.ts +2 -0
  57. package/es/components/tzj-player/src/easyPlayer.vue.d.ts +2 -0
  58. package/es/components/tzj-player/src/easyPlayer.vue2.mjs +61 -37
  59. package/es/components/tzj-player/src/easyPlayer.vue2.mjs.map +1 -1
  60. package/es/components/tzj-player/src/tzj-player.vue.d.ts +10 -0
  61. package/es/components/tzj-player/src/yunzhiyanPlayer.vue.d.ts +2 -0
  62. package/es/index.mjs +2 -0
  63. package/es/index.mjs.map +1 -1
  64. package/es/installer.mjs +3 -1
  65. package/es/installer.mjs.map +1 -1
  66. package/global.d.ts +5 -0
  67. package/lib/components/geoMark/index.d.ts +733 -0
  68. package/lib/components/geoMark/index.js +15 -0
  69. package/lib/components/geoMark/index.js.map +1 -0
  70. package/lib/components/geoMark/src/DragIcon.vue.d.ts +77 -0
  71. package/lib/components/geoMark/src/DragIcon.vue.js +10 -0
  72. package/lib/components/geoMark/src/DragIcon.vue.js.map +1 -0
  73. package/lib/components/geoMark/src/DragIcon.vue2.js +71 -0
  74. package/lib/components/geoMark/src/DragIcon.vue2.js.map +1 -0
  75. package/lib/components/geoMark/src/assets//344/277/235/345/255/230.png.js +8 -0
  76. package/lib/components/geoMark/src/assets//344/277/235/345/255/230.png.js.map +1 -0
  77. package/lib/components/geoMark/src/assets//345/210/240/351/231/244.png.js +8 -0
  78. package/lib/components/geoMark/src/assets//345/210/240/351/231/244.png.js.map +1 -0
  79. package/lib/components/geoMark/src/assets//347/274/226/350/276/221.png.js +8 -0
  80. package/lib/components/geoMark/src/assets//347/274/226/350/276/221.png.js.map +1 -0
  81. package/lib/components/geoMark/src/assets//351/242/234/350/211/262.png.js +8 -0
  82. package/lib/components/geoMark/src/assets//351/242/234/350/211/262.png.js.map +1 -0
  83. package/lib/components/geoMark/src/default.png.js +8 -0
  84. package/lib/components/geoMark/src/default.png.js.map +1 -0
  85. package/lib/components/geoMark/src/floorRight/floor.vue.d.ts +15 -0
  86. package/lib/components/geoMark/src/floorRight/floor.vue.js +10 -0
  87. package/lib/components/geoMark/src/floorRight/floor.vue.js.map +1 -0
  88. package/lib/components/geoMark/src/floorRight/floor.vue2.js +123 -0
  89. package/lib/components/geoMark/src/floorRight/floor.vue2.js.map +1 -0
  90. package/lib/components/geoMark/src/geoMark.d.ts +164 -0
  91. package/lib/components/geoMark/src/geoMark.js +8 -0
  92. package/lib/components/geoMark/src/geoMark.js.map +1 -0
  93. package/lib/components/geoMark/src/geoMark.vue.d.ts +734 -0
  94. package/lib/components/geoMark/src/geoMark.vue.js +10 -0
  95. package/lib/components/geoMark/src/geoMark.vue.js.map +1 -0
  96. package/lib/components/geoMark/src/geoMark.vue2.js +1429 -0
  97. package/lib/components/geoMark/src/geoMark.vue2.js.map +1 -0
  98. package/lib/components/geoMark/src/openMap.vue.d.ts +326 -0
  99. package/lib/components/geoMark/src/openMap.vue.js +10 -0
  100. package/lib/components/geoMark/src/openMap.vue.js.map +1 -0
  101. package/lib/components/geoMark/src/openMap.vue2.js +426 -0
  102. package/lib/components/geoMark/src/openMap.vue2.js.map +1 -0
  103. package/lib/components/geoMark/src/waring.png.js +8 -0
  104. package/lib/components/geoMark/src/waring.png.js.map +1 -0
  105. package/lib/components/geoMark/src//346/226/260/345/274/271/346/241/206.png.js +8 -0
  106. package/lib/components/geoMark/src//346/226/260/345/274/271/346/241/206.png.js.map +1 -0
  107. package/lib/components/geoMark/src//347/201/255/347/201/253/345/231/250.png.js +8 -0
  108. package/lib/components/geoMark/src//347/201/255/347/201/253/345/231/250.png.js.map +1 -0
  109. package/lib/components/index.d.ts +1 -0
  110. package/lib/components/index.js +4 -0
  111. package/lib/components/index.js.map +1 -1
  112. package/lib/components/map/index.d.ts +4 -1
  113. package/lib/components/map/src/map.vue.d.ts +4 -1
  114. package/lib/components/map/src/map.vue2.js +105 -220
  115. package/lib/components/map/src/map.vue2.js.map +1 -1
  116. package/lib/components/tzj-player/index.d.ts +10 -0
  117. package/lib/components/tzj-player/src/ctyun-player.vue.d.ts +2 -0
  118. package/lib/components/tzj-player/src/easyPlayer.vue.d.ts +2 -0
  119. package/lib/components/tzj-player/src/easyPlayer.vue2.js +60 -36
  120. package/lib/components/tzj-player/src/easyPlayer.vue2.js.map +1 -1
  121. package/lib/components/tzj-player/src/tzj-player.vue.d.ts +10 -0
  122. package/lib/components/tzj-player/src/yunzhiyanPlayer.vue.d.ts +2 -0
  123. package/lib/index.js +8 -4
  124. package/lib/index.js.map +1 -1
  125. package/lib/installer.js +3 -1
  126. package/lib/installer.js.map +1 -1
  127. package/package.json +3 -1
  128. package/theme-default/i-geo-mark.css +1 -0
  129. package/theme-default/i-map.css +1 -1
  130. package/theme-default/index.css +1 -1
@@ -1462,6 +1462,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1462
1462
  createRetryCount: number;
1463
1463
  MAX_CREATE_RETRY: number;
1464
1464
  isUnmounted: boolean;
1465
+ getEasyPlayerPro: () => any;
1466
+ handleFullscreenChange: () => void;
1465
1467
  play: (url?: string) => void;
1466
1468
  playerPause: () => void;
1467
1469
  playerScreenShot: () => void;
@@ -88,6 +88,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
88
88
  createRetryCount: number;
89
89
  MAX_CREATE_RETRY: number;
90
90
  isUnmounted: boolean;
91
+ getEasyPlayerPro: () => any;
92
+ handleFullscreenChange: () => void;
91
93
  play: (url?: string) => void;
92
94
  playerPause: () => void;
93
95
  playerScreenShot: () => void;
@@ -42,6 +42,34 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
42
42
  let resizeObserver = null;
43
43
  let createRetryCount = 0;
44
44
  let isUnmounted = false;
45
+ function getEasyPlayerPro() {
46
+ if (typeof window === "undefined") return null;
47
+ const w = window;
48
+ const scopes = [w, w.rawWindow];
49
+ const keys = ["EasyPlayerPro", "EasyPlayer-pro"];
50
+ for (const scope of scopes) {
51
+ if (!scope) continue;
52
+ for (const key of keys) {
53
+ if (scope[key]) return scope[key];
54
+ }
55
+ }
56
+ return null;
57
+ }
58
+ __name(getEasyPlayerPro, "getEasyPlayerPro");
59
+ const handleFullscreenChange = /* @__PURE__ */ __name(() => {
60
+ const isFull = !!document.fullscreenElement;
61
+ realFullscreen.value = isFull;
62
+ isFullscreen.value = isFull;
63
+ if (props.debug) {
64
+ console.log("\u5168\u5C4F\u72B6\u6001\u53D8\u5316:", isFull);
65
+ }
66
+ destroy();
67
+ setTimeout(() => {
68
+ if (!isUnmounted) {
69
+ initPlayer(playUrl.value);
70
+ }
71
+ }, 100);
72
+ }, "handleFullscreenChange");
45
73
  vue.onMounted(() => {
46
74
  if (typeof ResizeObserver !== "undefined" && playerRef.value) {
47
75
  resizeObserver = new ResizeObserver((entries) => {
@@ -56,6 +84,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
56
84
  });
57
85
  resizeObserver.observe(playerRef.value);
58
86
  }
87
+ document.addEventListener("fullscreenchange", handleFullscreenChange);
59
88
  initPlayer(props.url || "");
60
89
  });
61
90
  vue.watch(
@@ -66,6 +95,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
66
95
  );
67
96
  vue.onBeforeUnmount(() => {
68
97
  isUnmounted = true;
98
+ document.removeEventListener("fullscreenchange", handleFullscreenChange);
69
99
  if (resizeObserver) {
70
100
  resizeObserver.disconnect();
71
101
  resizeObserver = null;
@@ -134,24 +164,15 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
134
164
  }, "playerScreenShot");
135
165
  const playerFullscreen = /* @__PURE__ */ __name((fullscreen) => {
136
166
  var _a, _b, _c;
137
- realFullscreen.value = fullscreen;
138
167
  if (props.debug) {
139
168
  console.log("\u5168\u5C4F");
140
169
  }
141
- if (typeof document !== "undefined") {
142
- if (!fullscreen) {
143
- (_a = document.exitFullscreen) == null ? void 0 : _a.call(document);
144
- } else {
145
- (_c = (_b = playerRef.value) == null ? void 0 : _b.requestFullscreen) == null ? void 0 : _c.call(_b);
146
- }
147
- destroy();
148
- setTimeout(() => {
149
- if (!isUnmounted) {
150
- initPlayer(playUrl.value);
151
- }
152
- }, 200);
170
+ if (typeof document === "undefined") return;
171
+ if (fullscreen) {
172
+ (_b = (_a = playerRef.value) == null ? void 0 : _a.requestFullscreen) == null ? void 0 : _b.call(_a);
173
+ } else {
174
+ (_c = document.exitFullscreen) == null ? void 0 : _c.call(document);
153
175
  }
154
- isFullscreen.value = !fullscreen;
155
176
  }, "playerFullscreen");
156
177
  __expose({
157
178
  play,
@@ -199,11 +220,11 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
199
220
  if (props.debug) {
200
221
  console.log("\u683C\u5F0F\u5316\u540E\u7684url", playUrl.value);
201
222
  }
202
- if (typeof window !== "undefined" && (window == null ? void 0 : window.EasyPlayerPro)) {
223
+ if (getEasyPlayerPro()) {
203
224
  createPlayer();
204
225
  } else if (typeof window !== "undefined") {
205
226
  waitTimer = setInterval(() => {
206
- if (window == null ? void 0 : window.EasyPlayerPro) {
227
+ if (getEasyPlayerPro()) {
207
228
  clearInterval(waitTimer);
208
229
  waitTimer = null;
209
230
  if (!isUnmounted) {
@@ -287,25 +308,28 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
287
308
  async function startPlayer() {
288
309
  try {
289
310
  if (typeof window !== "undefined" && typeof document !== "undefined") {
290
- player = new window.EasyPlayerPro(document.getElementById(id), {
291
- isLive: true,
292
- // 是否直播
293
- hasAudio: true,
294
- // 是否解析音频
295
- bufferTime: 0.2,
296
- // 直播监控缓存时长设为0,减少内存堆积
297
- stretch: true,
298
- // 加视频拉伸
299
- MSE: false,
300
- WCS: false,
301
- WASM: true,
302
- debug: false,
303
- maxDelay: 300,
304
- // 最大容忍延迟300ms,超时自动丢帧追实时画面
305
- reconnect: true
306
- // 断线自动重连,单路故障不影响其他8路
307
- });
308
- createRetryCount = 0;
311
+ const EasyPlayerPro = getEasyPlayerPro();
312
+ if (EasyPlayerPro) {
313
+ player = new EasyPlayerPro(document.getElementById(id), {
314
+ isLive: true,
315
+ // 是否直播
316
+ hasAudio: true,
317
+ // 是否解析音频
318
+ bufferTime: 0.2,
319
+ // 直播监控缓存时长设为0,减少内存堆积
320
+ stretch: true,
321
+ // 加视频拉伸
322
+ MSE: false,
323
+ WCS: false,
324
+ WASM: true,
325
+ debug: false,
326
+ maxDelay: 300,
327
+ // 最大容忍延迟300ms,超时自动丢帧追实时画面
328
+ reconnect: true
329
+ // 断线自动重连,单路故障不影响其他8路
330
+ });
331
+ createRetryCount = 0;
332
+ }
309
333
  }
310
334
  if (player) {
311
335
  player.play(playUrl.value);
@@ -436,7 +460,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
436
460
  },
437
461
  [
438
462
  vue.createCommentVNode(" \u64AD\u653E\u5668\u5E95\u90E8\u64CD\u4F5C\u680F "),
439
- vue.createCommentVNode(' <slot name="customBar" /> ')
463
+ vue.renderSlot(_ctx.$slots, "customBar")
440
464
  ],
441
465
  2
442
466
  /* CLASS */
@@ -1 +1 @@
1
- {"version":3,"file":"easyPlayer.vue2.js","sources":["../../../../../../../packages/components/tzj-player/src/easyPlayer.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n computed,\n onBeforeUnmount,\n onMounted,\n ref,\n shallowRef,\n useSlots,\n watch,\n} from \"vue\";\nimport { TzjPlayerProps, uuid } from \"./tzj-player\";\n\ndefineOptions({\n name: \"EasyPlayer\",\n});\n\nconst props = defineProps(TzjPlayerProps);\nconst emits = defineEmits([\n \"timeout\",\n \"error\",\n \"play\",\n \"pause\",\n \"mute\",\n \"videoInfo\",\n]);\nconst slots = useSlots();\nconst customBar = computed(() => slots.customBar);\n\nlet player: any = null;\nconst id = uuid();\nconst playerRef = shallowRef<HTMLDivElement>();\nconst playSuccess = ref(true);\nconst playUrl = ref(\"\");\nconst isFullscreen = ref(false);\nconst videoInfo = ref<any>(null);\nconst realFullscreen = ref(false);\nconst eventHandlers = ref<Map<string, Function>>(new Map());\n// 用于追踪等待 EasyPlayerPro 加载的轮询定时器,防止组件卸载后泄漏\nlet waitTimer: ReturnType<typeof setInterval> | null = null;\n// 用于定时重启播放器的定时器,防止播放器卡死\nconst restartTimer = ref<ReturnType<typeof setInterval> | null>(null);\n// 用于定时暂停播放器的定时器(pauseMode=3时,每60分钟触发一次暂停)\nconst pauseCycleTimer = ref<ReturnType<typeof setInterval> | null>(null);\n// ResizeObserver:监听容器尺寸变化,同步更新播放器 DOM 尺寸\nlet resizeObserver: ResizeObserver | null = null;\n// startPlayer 重试计数,处理 worklet/AbortError 偶发失败\nlet createRetryCount = 0;\nconst MAX_CREATE_RETRY = 3;\n// 标记组件是否已卸载,防止卸载后的异步操作继续执行\nlet isUnmounted = false;\nonMounted(() => {\n // 监听容器尺寸变化,同步播放器 DOM 尺寸(防止控件丢失)\n if (typeof ResizeObserver !== \"undefined\" && playerRef.value) {\n resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const { width, height } = entry.contentRect;\n const dom = document.getElementById(id);\n if (dom && width > 0 && height > 0 && !realFullscreen.value) {\n dom.style.width = `${width}px`;\n dom.style.height = `${height}px`;\n }\n }\n });\n resizeObserver.observe(playerRef.value);\n }\n initPlayer(props.url || \"\");\n});\n\nwatch(\n () => props.url,\n (newUrl: string) => {\n initPlayer(newUrl || \"\");\n },\n);\n\nonBeforeUnmount(() => {\n isUnmounted = true;\n // 清除 ResizeObserver\n if (resizeObserver) {\n resizeObserver.disconnect();\n resizeObserver = null;\n }\n // 清除等待 EasyPlayerPro 加载的轮询定时器,防止卸载后继续创建播放器\n if (waitTimer !== null) {\n clearInterval(waitTimer);\n waitTimer = null;\n }\n // 清除定时暂停的定时器\n if (pauseCycleTimer.value !== null) {\n clearInterval(pauseCycleTimer.value);\n pauseCycleTimer.value = null;\n }\n if (props.debug) {\n console.log(\"组件卸载\");\n }\n playUrl.value = \"\";\n destroy();\n});\n\nconst play = (url?: string) => {\n if (url) {\n initPlayer(url);\n } else {\n if (player) {\n player.play(playUrl.value);\n // pauseMode=3 时,继续播放后重新开始60分钟计时\n if (props.pauseMode === 3) {\n if (pauseCycleTimer.value !== null) {\n clearInterval(pauseCycleTimer.value);\n }\n pauseCycleTimer.value = setInterval(\n () => {\n if (!isUnmounted && player) {\n player.pause?.();\n if (props.debug) {\n console.log(\"pauseMode: 每60分钟定时暂停\");\n }\n }\n },\n 1000 * 60 * 10,\n );\n }\n } else {\n destroy();\n }\n }\n};\n\nconst playerPause = () => {\n if (props.debug) {\n console.log(\"暂停\");\n }\n player?.pause?.();\n};\n\nconst playerScreenShot = () => {\n if (props.debug) {\n console.log(\"截图\");\n }\n player?.screenshot?.(\n `${props.areaName}_${new Date().getTime()}`,\n \"png\",\n 0.5,\n \"download\",\n );\n};\n\nconst playerFullscreen = (fullscreen: boolean) => {\n realFullscreen.value = fullscreen;\n if (props.debug) {\n console.log(\"全屏\");\n }\n // 自定义全屏逻辑\n if (typeof document !== \"undefined\") {\n if (!fullscreen) {\n document.exitFullscreen?.();\n } else {\n playerRef.value?.requestFullscreen?.();\n }\n // 先同步销毁,再延迟重建,避免异步销毁时组件已卸载导致实例泄漏\n destroy();\n setTimeout(() => {\n if (!isUnmounted) {\n initPlayer(playUrl.value);\n }\n }, 200);\n }\n isFullscreen.value = !fullscreen;\n};\ndefineExpose({\n play,\n destroy,\n getPlayer: () => player,\n pause: playerPause,\n screenshot: playerScreenShot,\n fullscreen: playerFullscreen,\n isMute: () => {\n return player?.isMute?.();\n },\n setMute: (mute: number) => {\n player?.setMute?.(mute);\n },\n});\n\n/**\n * 格式化URL,确保使用完整的URL\n * @param url - 原始URL\n * @returns 格式化后的URL\n */\nconst formatUrl = (url: string): string => {\n if (!url) return \"\";\n\n // 如果已经是完整URL,直接返回\n if (\n url.startsWith(\"http://\") ||\n url.startsWith(\"https://\") ||\n url.startsWith(\"ws://\")\n ) {\n return url;\n }\n\n // 如果URL以//开头,自动补全协议(根据当前页面协议)\n if (url.startsWith(\"//\")) {\n if (typeof window !== \"undefined\" && window.location) {\n return `${window.location.protocol}${url}`;\n }\n // SSR环境下默认使用https\n return `https:${url}`;\n }\n\n // 检查是否在浏览器环境中,避免SSR环境下的location访问错误\n if (typeof window !== \"undefined\" && window.location) {\n // 如果是相对路径,添加当前域名\n return `${window.location.origin}${url.startsWith(\"/\") ? \"\" : \"/\"}${url}`;\n }\n\n // SSR 环境下返回相对路径\n return url;\n};\n\nasync function initPlayer(url: string) {\n if (props.debug) {\n console.log(\"初始化播放器\", url);\n }\n // 清除上一次可能残留的轮询定时器\n if (waitTimer !== null) {\n clearInterval(waitTimer);\n waitTimer = null;\n }\n removePlayerDom();\n if (url) {\n playUrl.value = formatUrl(url);\n if (props.debug) {\n console.log(\"格式化后的url\", playUrl.value);\n }\n if (typeof window !== \"undefined\" && window?.EasyPlayerPro) {\n createPlayer();\n } else if (typeof window !== \"undefined\") {\n waitTimer = setInterval(() => {\n if (window?.EasyPlayerPro) {\n clearInterval(waitTimer!);\n waitTimer = null;\n // 组件已卸载则不再创建播放器\n if (!isUnmounted) {\n createPlayer();\n }\n }\n }, 100);\n }\n }\n}\n\n/**\n * 移除播放器DOM\n */\nfunction removePlayerDom() {\n if (typeof document !== \"undefined\") {\n const dom = document.getElementById(id);\n dom && dom.remove();\n }\n}\n\n/**\n * 创建播放器DOM\n */\nfunction createPlayerDom(): Promise<HTMLDivElement> {\n removePlayerDom();\n return new Promise((resolve) => {\n if (typeof document === \"undefined\") {\n resolve(null!);\n return;\n }\n // 最大重试帧数,防止无限等待\n let retryCount = 0;\n const MAX_RETRY = 60; // 约 1 秒 (60 * 16ms)\n\n const tryCreate = () => {\n const rect = playerRef.value?.getBoundingClientRect();\n if (!rect || rect.width <= 0 || rect.height <= 0) {\n if (++retryCount < MAX_RETRY) {\n requestAnimationFrame(tryCreate);\n return;\n }\n // 超过最大重试次数,使用 100% 尺寸兜底\n console.warn(\"[EasyPlayer] 容器尺寸获取超时,使用默认尺寸\");\n }\n\n const dom = document.createElement(\"div\");\n dom.id = id;\n // 使用实际尺寸,若获取失败则用 100%\n const rectW = rect?.width ?? 0;\n const rectH = rect?.height ?? 0;\n console.log(\"🚀 ~ rectH:\", rectH);\n const w = rectW > 0 ? rectW : playerRef.value?.offsetWidth || 800;\n const h = rectH > 0 ? rectH : playerRef.value?.offsetHeight || 450;\n\n if (realFullscreen.value) {\n dom.style.width = `100vw`;\n dom.style.height =\n props.areaName || props.deviceSerial ? `calc(100vh - 32px)` : `100vh`;\n } else {\n dom.style.width = `${w}px`;\n dom.style.height =\n props.areaName || props.deviceSerial ? `${h - 32}px` : `${h}px`;\n }\n playerRef.value?.appendChild(dom);\n resolve(dom);\n };\n\n requestAnimationFrame(tryCreate);\n });\n}\n\nasync function createPlayer() {\n if (props.debug) {\n console.log(\"创建播放器\");\n }\n videoInfo.value = null;\n await createPlayerDom();\n // 每30秒重启一次播放器,防止播放器卡死\n if (restartTimer.value !== null) {\n clearInterval(restartTimer.value);\n restartTimer.value = null;\n }\n restartTimer.value = setInterval(\n () => {\n destroy(false);\n setTimeout(() => {\n startPlayer();\n }, 1000 * 20);\n },\n 1000 * 60 * 60,\n );\n startPlayer();\n}\n\nasync function startPlayer() {\n try {\n if (typeof window !== \"undefined\" && typeof document !== \"undefined\") {\n player = new window.EasyPlayerPro(document.getElementById(id), {\n isLive: true, // 是否直播\n hasAudio: true, // 是否解析音频\n bufferTime: 0.2, // 直播监控缓存时长设为0,减少内存堆积\n stretch: true, // 加视频拉伸\n MSE: false,\n WCS: false,\n WASM: true,\n debug: false,\n maxDelay: 300, // 最大容忍延迟300ms,超时自动丢帧追实时画面\n reconnect: true, // 断线自动重连,单路故障不影响其他8路\n });\n // 创建成功,重置重试计数\n createRetryCount = 0;\n }\n if (player) {\n player.play(playUrl.value);\n\n // 根据 pauseMode 处理暂停逻辑\n // pauseMode=2 或 3 时,初始默认暂停\n if (props.pauseMode === 2 || props.pauseMode === 3) {\n // 短暂延迟后暂停,确保播放器已开始播放再暂停\n setTimeout(() => {\n if (!isUnmounted && player) {\n player.pause?.();\n if (props.debug) {\n console.log(\"pauseMode: 初始默认暂停\");\n }\n }\n }, 500);\n }\n\n // pauseMode=3 时,每60分钟触发一次暂停\n if (props.pauseMode === 3) {\n if (pauseCycleTimer.value !== null) {\n clearInterval(pauseCycleTimer.value);\n }\n pauseCycleTimer.value = setInterval(\n () => {\n if (!isUnmounted && player) {\n player.pause?.();\n if (props.debug) {\n console.log(\"pauseMode: 每60分钟定时暂停\");\n }\n }\n },\n 1000 * 60 * 60,\n );\n }\n\n const timeoutHandler = () => {\n props.debug && console.log(\"加载超时\");\n emits(\"timeout\");\n playSuccess.value = false;\n destroy();\n initPlayer(playUrl.value);\n };\n\n const errorHandler = () => {\n props.debug && console.log(\"播放异常\");\n emits(\"error\");\n playSuccess.value = false;\n destroy();\n };\n\n const playHandler = () => {\n playSuccess.value = true;\n props.debug && console.log(\"播放\");\n emits(\"play\");\n };\n\n const pauseHandler = () => {\n props.debug && console.log(\"暂停\");\n emits(\"pause\");\n };\n\n const videoInfoHandler = (info: any) => {\n props.debug && console.log(\"视频信息\", info);\n videoInfo.value = info;\n emits(\"videoInfo\", info);\n };\n\n const muteHandler = (mute: false) => {\n props.debug && console.log(\"静音\");\n emits(\"mute\", mute);\n };\n\n player.on(\"timeout\", timeoutHandler);\n player.on(\"error\", errorHandler);\n player.on(\"play\", playHandler);\n player.on(\"pause\", pauseHandler);\n player.on(\"videoInfo\", videoInfoHandler);\n player.on(\"mute\", muteHandler);\n\n eventHandlers.value.set(\"timeout\", timeoutHandler);\n eventHandlers.value.set(\"error\", errorHandler);\n eventHandlers.value.set(\"play\", playHandler);\n eventHandlers.value.set(\"pause\", pauseHandler);\n eventHandlers.value.set(\"videoInfo\", videoInfoHandler);\n eventHandlers.value.set(\"mute\", muteHandler);\n }\n } catch (error) {\n const isWorkletError =\n error instanceof DOMException &&\n (error.name === \"AbortError\" ||\n String(error.message).includes(\"worklet\"));\n // worklet 加载偶发失败,自动重试\n if (isWorkletError && createRetryCount < MAX_CREATE_RETRY) {\n createRetryCount++;\n if (props.debug) {\n console.warn(\n `[EasyPlayer] AudioWorklet 加载失败(第 ${createRetryCount}/${MAX_CREATE_RETRY} 次),1秒后重试...`,\n error,\n );\n }\n destroy(false);\n setTimeout(() => {\n if (!isUnmounted) startPlayer();\n }, 1000);\n return;\n }\n console.error(\"创建播放器失败:\", error);\n setTimeout(() => {\n if (!isUnmounted) startPlayer();\n }, 2000);\n }\n}\n\nfunction destroy(flag = true) {\n if (player) {\n eventHandlers.value.forEach((handler, eventName) => {\n player.off(eventName, handler);\n });\n eventHandlers.value.clear();\n player.destroy();\n player = null;\n }\n\n if (flag) {\n // 清除定时重启播放器的定时器\n if (restartTimer.value !== null) {\n clearInterval(restartTimer.value);\n restartTimer.value = null;\n }\n // 清除定时暂停的定时器\n if (pauseCycleTimer.value !== null) {\n clearInterval(pauseCycleTimer.value);\n pauseCycleTimer.value = null;\n }\n removePlayerDom();\n }\n}\n</script>\n\n<template>\n <div\n ref=\"playerRef\"\n class=\"i-tzj-easyPlayer\"\n :class=\"customBar ? 'i-tzj-easyPlayer--custom' : ''\"\n >\n <!-- 播放器底部操作栏 -->\n <!-- <slot name=\"customBar\" /> -->\n </div>\n</template>\n"],"names":["useSlots","computed","uuid","shallowRef","ref","onMounted","watch","onBeforeUnmount","_createElementBlock","_normalizeClass","_createCommentVNode"],"mappings":"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"}
1
+ {"version":3,"file":"easyPlayer.vue2.js","sources":["../../../../../../../packages/components/tzj-player/src/easyPlayer.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n computed,\n onBeforeUnmount,\n onMounted,\n ref,\n shallowRef,\n useSlots,\n watch,\n} from \"vue\";\nimport { TzjPlayerProps, uuid } from \"./tzj-player\";\n\ndefineOptions({\n name: \"EasyPlayer\",\n});\n\nconst props = defineProps(TzjPlayerProps);\nconst emits = defineEmits([\n \"timeout\",\n \"error\",\n \"play\",\n \"pause\",\n \"mute\",\n \"videoInfo\",\n]);\nconst slots = useSlots();\nconst customBar = computed(() => slots.customBar);\n\nlet player: any = null;\nconst id = uuid();\nconst playerRef = shallowRef<HTMLDivElement>();\nconst playSuccess = ref(true);\nconst playUrl = ref(\"\");\nconst isFullscreen = ref(false);\nconst videoInfo = ref<any>(null);\nconst realFullscreen = ref(false);\nconst eventHandlers = ref<Map<string, Function>>(new Map());\n// 用于追踪等待 EasyPlayerPro 加载的轮询定时器,防止组件卸载后泄漏\nlet waitTimer: ReturnType<typeof setInterval> | null = null;\n// 用于定时重启播放器的定时器,防止播放器卡死\nconst restartTimer = ref<ReturnType<typeof setInterval> | null>(null);\n// 用于定时暂停播放器的定时器(pauseMode=3时,每60分钟触发一次暂停)\nconst pauseCycleTimer = ref<ReturnType<typeof setInterval> | null>(null);\n// ResizeObserver:监听容器尺寸变化,同步更新播放器 DOM 尺寸\nlet resizeObserver: ResizeObserver | null = null;\n// startPlayer 重试计数,处理 worklet/AbortError 偶发失败\nlet createRetryCount = 0;\nconst MAX_CREATE_RETRY = 3;\n// 标记组件是否已卸载,防止卸载后的异步操作继续执行\nlet isUnmounted = false;\n\n/**\n * 获取 EasyPlayerPro 播放器构造器。\n * 兼容 micro-app 子应用沙箱:子应用的 window 是 Proxy,\n * SDK 若挂载在主应用真实 window 上,需通过 window.rawWindow 兜底获取;\n * 同时兼容不同版本 SDK 的挂载名(EasyPlayerPro / EasyPlayer-pro)。\n */\nfunction getEasyPlayerPro(): any {\n if (typeof window === \"undefined\") return null;\n const w = window as any;\n const scopes = [w, w.rawWindow];\n const keys = [\"EasyPlayerPro\", \"EasyPlayer-pro\"];\n for (const scope of scopes) {\n if (!scope) continue;\n for (const key of keys) {\n if (scope[key]) return scope[key];\n }\n }\n return null;\n}\n\n/**\n * 全屏状态变化回调:浏览器真正完成全屏/退出全屏切换后触发,\n * 此时容器尺寸已确定,重建播放器才能拿到正确尺寸\n */\nconst handleFullscreenChange = () => {\n const isFull = !!document.fullscreenElement;\n realFullscreen.value = isFull;\n isFullscreen.value = isFull;\n if (props.debug) {\n console.log(\"全屏状态变化:\", isFull);\n }\n // 先同步销毁,再延迟重建,避免异步销毁时组件已卸载导致实例泄漏\n destroy();\n setTimeout(() => {\n if (!isUnmounted) {\n initPlayer(playUrl.value);\n }\n }, 100);\n};\n\nonMounted(() => {\n // 监听容器尺寸变化,同步播放器 DOM 尺寸(防止控件丢失)\n if (typeof ResizeObserver !== \"undefined\" && playerRef.value) {\n resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const { width, height } = entry.contentRect;\n const dom = document.getElementById(id);\n if (dom && width > 0 && height > 0 && !realFullscreen.value) {\n dom.style.width = `${width}px`;\n dom.style.height = `${height}px`;\n }\n }\n });\n resizeObserver.observe(playerRef.value);\n }\n // 监听全屏状态变化,浏览器真正完成全屏切换后再重建播放器\n document.addEventListener(\"fullscreenchange\", handleFullscreenChange);\n initPlayer(props.url || \"\");\n});\n\nwatch(\n () => props.url,\n (newUrl: string) => {\n initPlayer(newUrl || \"\");\n },\n);\n\nonBeforeUnmount(() => {\n isUnmounted = true;\n // 移除全屏状态监听\n document.removeEventListener(\"fullscreenchange\", handleFullscreenChange);\n // 清除 ResizeObserver\n if (resizeObserver) {\n resizeObserver.disconnect();\n resizeObserver = null;\n }\n // 清除等待 EasyPlayerPro 加载的轮询定时器,防止卸载后继续创建播放器\n if (waitTimer !== null) {\n clearInterval(waitTimer);\n waitTimer = null;\n }\n // 清除定时暂停的定时器\n if (pauseCycleTimer.value !== null) {\n clearInterval(pauseCycleTimer.value);\n pauseCycleTimer.value = null;\n }\n if (props.debug) {\n console.log(\"组件卸载\");\n }\n playUrl.value = \"\";\n destroy();\n});\n\nconst play = (url?: string) => {\n if (url) {\n initPlayer(url);\n } else {\n if (player) {\n player.play(playUrl.value);\n // pauseMode=3 时,继续播放后重新开始60分钟计时\n if (props.pauseMode === 3) {\n if (pauseCycleTimer.value !== null) {\n clearInterval(pauseCycleTimer.value);\n }\n pauseCycleTimer.value = setInterval(\n () => {\n if (!isUnmounted && player) {\n player.pause?.();\n if (props.debug) {\n console.log(\"pauseMode: 每60分钟定时暂停\");\n }\n }\n },\n 1000 * 60 * 10,\n );\n }\n } else {\n destroy();\n }\n }\n};\n\nconst playerPause = () => {\n if (props.debug) {\n console.log(\"暂停\");\n }\n player?.pause?.();\n};\n\nconst playerScreenShot = () => {\n if (props.debug) {\n console.log(\"截图\");\n }\n player?.screenshot?.(\n `${props.areaName}_${new Date().getTime()}`,\n \"png\",\n 0.5,\n \"download\",\n );\n};\n\nconst playerFullscreen = (fullscreen: boolean) => {\n if (props.debug) {\n console.log(\"全屏\");\n }\n if (typeof document === \"undefined\") return;\n // 仅触发浏览器全屏切换,实际重建交由 fullscreenchange 事件处理,\n // 避免固定延迟下浏览器尚未完成全屏切换导致尺寸计算错误\n if (fullscreen) {\n playerRef.value?.requestFullscreen?.();\n } else {\n document.exitFullscreen?.();\n }\n};\ndefineExpose({\n play,\n destroy,\n getPlayer: () => player,\n pause: playerPause,\n screenshot: playerScreenShot,\n fullscreen: playerFullscreen,\n isMute: () => {\n return player?.isMute?.();\n },\n setMute: (mute: number) => {\n player?.setMute?.(mute);\n },\n});\n\n/**\n * 格式化URL,确保使用完整的URL\n * @param url - 原始URL\n * @returns 格式化后的URL\n */\nconst formatUrl = (url: string): string => {\n if (!url) return \"\";\n\n // 如果已经是完整URL,直接返回\n if (\n url.startsWith(\"http://\") ||\n url.startsWith(\"https://\") ||\n url.startsWith(\"ws://\")\n ) {\n return url;\n }\n\n // 如果URL以//开头,自动补全协议(根据当前页面协议)\n if (url.startsWith(\"//\")) {\n if (typeof window !== \"undefined\" && window.location) {\n return `${window.location.protocol}${url}`;\n }\n // SSR环境下默认使用https\n return `https:${url}`;\n }\n\n // 检查是否在浏览器环境中,避免SSR环境下的location访问错误\n if (typeof window !== \"undefined\" && window.location) {\n // 如果是相对路径,添加当前域名\n return `${window.location.origin}${url.startsWith(\"/\") ? \"\" : \"/\"}${url}`;\n }\n\n // SSR 环境下返回相对路径\n return url;\n};\n\nasync function initPlayer(url: string) {\n if (props.debug) {\n console.log(\"初始化播放器\", url);\n }\n // 清除上一次可能残留的轮询定时器\n if (waitTimer !== null) {\n clearInterval(waitTimer);\n waitTimer = null;\n }\n removePlayerDom();\n if (url) {\n playUrl.value = formatUrl(url);\n if (props.debug) {\n console.log(\"格式化后的url\", playUrl.value);\n }\n if (getEasyPlayerPro()) {\n createPlayer();\n } else if (typeof window !== \"undefined\") {\n waitTimer = setInterval(() => {\n if (getEasyPlayerPro()) {\n clearInterval(waitTimer!);\n waitTimer = null;\n // 组件已卸载则不再创建播放器\n if (!isUnmounted) {\n createPlayer();\n }\n }\n }, 100);\n }\n }\n}\n\n/**\n * 移除播放器DOM\n */\nfunction removePlayerDom() {\n if (typeof document !== \"undefined\") {\n const dom = document.getElementById(id);\n dom && dom.remove();\n }\n}\n\n/**\n * 创建播放器DOM\n */\nfunction createPlayerDom(): Promise<HTMLDivElement> {\n removePlayerDom();\n return new Promise((resolve) => {\n if (typeof document === \"undefined\") {\n resolve(null!);\n return;\n }\n // 最大重试帧数,防止无限等待\n let retryCount = 0;\n const MAX_RETRY = 60; // 约 1 秒 (60 * 16ms)\n\n const tryCreate = () => {\n const rect = playerRef.value?.getBoundingClientRect();\n if (!rect || rect.width <= 0 || rect.height <= 0) {\n if (++retryCount < MAX_RETRY) {\n requestAnimationFrame(tryCreate);\n return;\n }\n // 超过最大重试次数,使用 100% 尺寸兜底\n console.warn(\"[EasyPlayer] 容器尺寸获取超时,使用默认尺寸\");\n }\n\n const dom = document.createElement(\"div\");\n dom.id = id;\n // 使用实际尺寸,若获取失败则用 100%\n const rectW = rect?.width ?? 0;\n const rectH = rect?.height ?? 0;\n console.log(\"🚀 ~ rectH:\", rectH);\n const w = rectW > 0 ? rectW : playerRef.value?.offsetWidth || 800;\n const h = rectH > 0 ? rectH : playerRef.value?.offsetHeight || 450;\n\n if (realFullscreen.value) {\n dom.style.width = `100vw`;\n dom.style.height =\n props.areaName || props.deviceSerial ? `calc(100vh - 32px)` : `100vh`;\n } else {\n dom.style.width = `${w}px`;\n dom.style.height =\n props.areaName || props.deviceSerial ? `${h - 32}px` : `${h}px`;\n }\n playerRef.value?.appendChild(dom);\n resolve(dom);\n };\n\n requestAnimationFrame(tryCreate);\n });\n}\n\nasync function createPlayer() {\n if (props.debug) {\n console.log(\"创建播放器\");\n }\n videoInfo.value = null;\n await createPlayerDom();\n // 每30秒重启一次播放器,防止播放器卡死\n if (restartTimer.value !== null) {\n clearInterval(restartTimer.value);\n restartTimer.value = null;\n }\n restartTimer.value = setInterval(\n () => {\n destroy(false);\n setTimeout(() => {\n startPlayer();\n }, 1000 * 20);\n },\n 1000 * 60 * 60,\n );\n startPlayer();\n}\n\nasync function startPlayer() {\n try {\n if (typeof window !== \"undefined\" && typeof document !== \"undefined\") {\n const EasyPlayerPro = getEasyPlayerPro();\n if (EasyPlayerPro) {\n player = new EasyPlayerPro(document.getElementById(id), {\n isLive: true, // 是否直播\n hasAudio: true, // 是否解析音频\n bufferTime: 0.2, // 直播监控缓存时长设为0,减少内存堆积\n stretch: true, // 加视频拉伸\n MSE: false,\n WCS: false,\n WASM: true,\n debug: false,\n maxDelay: 300, // 最大容忍延迟300ms,超时自动丢帧追实时画面\n reconnect: true, // 断线自动重连,单路故障不影响其他8路\n });\n // 创建成功,重置重试计数\n createRetryCount = 0;\n }\n }\n if (player) {\n player.play(playUrl.value);\n\n // 根据 pauseMode 处理暂停逻辑\n // pauseMode=2 或 3 时,初始默认暂停\n if (props.pauseMode === 2 || props.pauseMode === 3) {\n // 短暂延迟后暂停,确保播放器已开始播放再暂停\n setTimeout(() => {\n if (!isUnmounted && player) {\n player.pause?.();\n if (props.debug) {\n console.log(\"pauseMode: 初始默认暂停\");\n }\n }\n }, 500);\n }\n\n // pauseMode=3 时,每60分钟触发一次暂停\n if (props.pauseMode === 3) {\n if (pauseCycleTimer.value !== null) {\n clearInterval(pauseCycleTimer.value);\n }\n pauseCycleTimer.value = setInterval(\n () => {\n if (!isUnmounted && player) {\n player.pause?.();\n if (props.debug) {\n console.log(\"pauseMode: 每60分钟定时暂停\");\n }\n }\n },\n 1000 * 60 * 60,\n );\n }\n\n const timeoutHandler = () => {\n props.debug && console.log(\"加载超时\");\n emits(\"timeout\");\n playSuccess.value = false;\n destroy();\n initPlayer(playUrl.value);\n };\n\n const errorHandler = () => {\n props.debug && console.log(\"播放异常\");\n emits(\"error\");\n playSuccess.value = false;\n destroy();\n };\n\n const playHandler = () => {\n playSuccess.value = true;\n props.debug && console.log(\"播放\");\n emits(\"play\");\n };\n\n const pauseHandler = () => {\n props.debug && console.log(\"暂停\");\n emits(\"pause\");\n };\n\n const videoInfoHandler = (info: any) => {\n props.debug && console.log(\"视频信息\", info);\n videoInfo.value = info;\n emits(\"videoInfo\", info);\n };\n\n const muteHandler = (mute: false) => {\n props.debug && console.log(\"静音\");\n emits(\"mute\", mute);\n };\n\n player.on(\"timeout\", timeoutHandler);\n player.on(\"error\", errorHandler);\n player.on(\"play\", playHandler);\n player.on(\"pause\", pauseHandler);\n player.on(\"videoInfo\", videoInfoHandler);\n player.on(\"mute\", muteHandler);\n\n eventHandlers.value.set(\"timeout\", timeoutHandler);\n eventHandlers.value.set(\"error\", errorHandler);\n eventHandlers.value.set(\"play\", playHandler);\n eventHandlers.value.set(\"pause\", pauseHandler);\n eventHandlers.value.set(\"videoInfo\", videoInfoHandler);\n eventHandlers.value.set(\"mute\", muteHandler);\n }\n } catch (error) {\n const isWorkletError =\n error instanceof DOMException &&\n (error.name === \"AbortError\" ||\n String(error.message).includes(\"worklet\"));\n // worklet 加载偶发失败,自动重试\n if (isWorkletError && createRetryCount < MAX_CREATE_RETRY) {\n createRetryCount++;\n if (props.debug) {\n console.warn(\n `[EasyPlayer] AudioWorklet 加载失败(第 ${createRetryCount}/${MAX_CREATE_RETRY} 次),1秒后重试...`,\n error,\n );\n }\n destroy(false);\n setTimeout(() => {\n if (!isUnmounted) startPlayer();\n }, 1000);\n return;\n }\n console.error(\"创建播放器失败:\", error);\n setTimeout(() => {\n if (!isUnmounted) startPlayer();\n }, 2000);\n }\n}\n\nfunction destroy(flag = true) {\n if (player) {\n eventHandlers.value.forEach((handler, eventName) => {\n player.off(eventName, handler);\n });\n eventHandlers.value.clear();\n player.destroy();\n player = null;\n }\n\n if (flag) {\n // 清除定时重启播放器的定时器\n if (restartTimer.value !== null) {\n clearInterval(restartTimer.value);\n restartTimer.value = null;\n }\n // 清除定时暂停的定时器\n if (pauseCycleTimer.value !== null) {\n clearInterval(pauseCycleTimer.value);\n pauseCycleTimer.value = null;\n }\n removePlayerDom();\n }\n}\n</script>\n\n<template>\n <div\n ref=\"playerRef\"\n class=\"i-tzj-easyPlayer\"\n :class=\"customBar ? 'i-tzj-easyPlayer--custom' : ''\"\n >\n <!-- 播放器底部操作栏 -->\n <slot name=\"customBar\" />\n </div>\n</template>\n"],"names":["useSlots","computed","uuid","shallowRef","ref","onMounted","watch","onBeforeUnmount","_createElementBlock","_normalizeClass","_createCommentVNode","_renderSlot"],"mappings":"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"}
@@ -1530,6 +1530,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1530
1530
  createRetryCount: number;
1531
1531
  MAX_CREATE_RETRY: number;
1532
1532
  isUnmounted: boolean;
1533
+ getEasyPlayerPro: () => any;
1534
+ handleFullscreenChange: () => void;
1533
1535
  play: (url?: string) => void;
1534
1536
  playerPause: () => void;
1535
1537
  playerScreenShot: () => void;
@@ -3219,6 +3221,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
3219
3221
  createRetryCount: number;
3220
3222
  MAX_CREATE_RETRY: number;
3221
3223
  isUnmounted: boolean;
3224
+ getEasyPlayerPro: () => any;
3225
+ handleFullscreenChange: () => void;
3222
3226
  play: (url?: string) => void;
3223
3227
  playerPause: () => void;
3224
3228
  playerScreenShot: () => void;
@@ -3406,6 +3410,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
3406
3410
  createRetryCount: number;
3407
3411
  MAX_CREATE_RETRY: number;
3408
3412
  isUnmounted: boolean;
3413
+ getEasyPlayerPro: () => any;
3414
+ handleFullscreenChange: () => void;
3409
3415
  play: (url?: string) => void;
3410
3416
  playerPause: () => void;
3411
3417
  playerScreenShot: () => void;
@@ -4926,6 +4932,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
4926
4932
  createRetryCount: number;
4927
4933
  MAX_CREATE_RETRY: number;
4928
4934
  isUnmounted: boolean;
4935
+ getEasyPlayerPro: () => any;
4936
+ handleFullscreenChange: () => void;
4929
4937
  play: (url?: string) => void;
4930
4938
  playerPause: () => void;
4931
4939
  playerScreenShot: () => void;
@@ -6613,6 +6621,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
6613
6621
  createRetryCount: number;
6614
6622
  MAX_CREATE_RETRY: number;
6615
6623
  isUnmounted: boolean;
6624
+ getEasyPlayerPro: () => any;
6625
+ handleFullscreenChange: () => void;
6616
6626
  play: (url?: string) => void;
6617
6627
  playerPause: () => void;
6618
6628
  playerScreenShot: () => void;
@@ -1462,6 +1462,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1462
1462
  createRetryCount: number;
1463
1463
  MAX_CREATE_RETRY: number;
1464
1464
  isUnmounted: boolean;
1465
+ getEasyPlayerPro: () => any;
1466
+ handleFullscreenChange: () => void;
1465
1467
  play: (url?: string) => void;
1466
1468
  playerPause: () => void;
1467
1469
  playerScreenShot: () => void;
package/lib/index.js CHANGED
@@ -34,8 +34,10 @@ var index$k = require('./components/tenant-enterprise/index.js');
34
34
  var index$l = require('./components/text-button/index.js');
35
35
  var yunzhiyan = require('./components/tzj-player/src/yunzhiyan.js');
36
36
  var index$m = require('./components/tzj-player/index.js');
37
- var index$n = require('./hooks/useBaseTable/index.js');
38
- var index$o = require('./hooks/useECharts/index.js');
37
+ var geoMark = require('./components/geoMark/src/geoMark.js');
38
+ var index$n = require('./components/geoMark/index.js');
39
+ var index$o = require('./hooks/useBaseTable/index.js');
40
+ var index$p = require('./hooks/useECharts/index.js');
39
41
  var install = require('./utils/install.js');
40
42
  var provide = require('./utils/provide.js');
41
43
  var util = require('./utils/util.js');
@@ -86,8 +88,10 @@ exports.GetYunZhiYanOpenVoiceIntercom = yunzhiyan.GetYunZhiYanOpenVoiceIntercom;
86
88
  exports.GetYunZhiYanUserPlaySecretKey = yunzhiyan.GetYunZhiYanUserPlaySecretKey;
87
89
  exports.sign = yunzhiyan.sign;
88
90
  exports.ITzjPlayer = index$m.ITzjPlayer;
89
- exports.useBaseTable = index$n.useBaseTable;
90
- exports.useECharts = index$o.useECharts;
91
+ exports.GeoMarkProps = geoMark.GeoMarkProps;
92
+ exports.IGeoMark = index$n.IGeoMark;
93
+ exports.useBaseTable = index$o.useBaseTable;
94
+ exports.useECharts = index$p.useECharts;
91
95
  exports.withInstall = install.withInstall;
92
96
  exports.withInstallDirectives = install.withInstallDirectives;
93
97
  exports.DICT_STORE = provide.DICT_STORE;
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/lib/installer.js CHANGED
@@ -26,6 +26,7 @@ var index$j = require('./components/monitor-playback/index.js');
26
26
  var index$k = require('./components/tzj-player/index.js');
27
27
  var index$l = require('./components/date-picker/index.js');
28
28
  var index$m = require('./components/map/index.js');
29
+ var index$n = require('./components/geoMark/index.js');
29
30
 
30
31
  var __defProp = Object.defineProperty;
31
32
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
@@ -54,7 +55,8 @@ const component = [
54
55
  index$j.IMonitorPlayback,
55
56
  index$k.ITzjPlayer,
56
57
  index$l.IDatePicker,
57
- index$m.IMap
58
+ index$m.IMap,
59
+ index$n.IGeoMark
58
60
  ];
59
61
  const install = /* @__PURE__ */ __name(function(app, _options) {
60
62
  component.forEach((i) => app.use(i, _options));
@@ -1 +1 @@
1
- {"version":3,"file":"installer.js","sources":["../../../../packages/installer.ts"],"sourcesContent":["import type { App, Plugin } from \"vue\";\n\nimport {\n ICheckbox,\n IDatePicker,\n IDescriptionItem,\n IDescriptions,\n IDialog,\n IDivider,\n IDrawer,\n IForm,\n IIconSelect,\n IImageVerification,\n ILink,\n ILivePlayer,\n IMap,\n IMonitorPlayback,\n IPageHeader,\n IRadio,\n ISearch,\n ISegmented,\n ISelect,\n ISplitPane,\n ITable,\n ITenantEnterprise,\n ITextButton,\n ITextButtonGroup,\n ITzjPlayer,\n} from \"./components\";\n\nconst component = [\n IForm,\n ISelect,\n IRadio,\n ICheckbox,\n IDivider,\n IDrawer,\n IIconSelect,\n IImageVerification,\n ITextButton,\n ITextButtonGroup,\n IPageHeader,\n ISearch,\n ITable,\n ISplitPane,\n ITenantEnterprise,\n ISegmented,\n IDescriptions,\n IDescriptionItem,\n ILivePlayer,\n IDialog,\n ILink,\n IMonitorPlayback,\n ITzjPlayer,\n IDatePicker,\n IMap,\n] as Plugin[];\n\nexport const install = function (app: App, _options?: any) {\n component.forEach((i) => app.use(i, _options));\n};\n\nexport default {\n install,\n};\n"],"names":["IForm","ISelect","IRadio","ICheckbox","IDivider","IDrawer","IIconSelect","IImageVerification","ITextButton","ITextButtonGroup","IPageHeader","ISearch","ITable","ISplitPane","ITenantEnterprise","ISegmented","IDescriptions","IDescriptionItem","ILivePlayer","IDialog","ILink","IMonitorPlayback","ITzjPlayer","IDatePicker","IMap"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA,MAAM,SAAY,GAAA;AAAA,EAChBA,WAAA;AAAA,EACAC,eAAA;AAAA,EACAC,cAAA;AAAA,EACAC,iBAAA;AAAA,EACAC,gBAAA;AAAA,EACAC,eAAA;AAAA,EACAC,mBAAA;AAAA,EACAC,0BAAA;AAAA,EACAC,mBAAA;AAAA,EACAC,wBAAA;AAAA,EACAC,mBAAA;AAAA,EACAC,eAAA;AAAA,EACAC,cAAA;AAAA,EACAC,kBAAA;AAAA,EACAC,yBAAA;AAAA,EACAC,kBAAA;AAAA,EACAC,qBAAA;AAAA,EACAC,wBAAA;AAAA,EACAC,mBAAA;AAAA,EACAC,eAAA;AAAA,EACAC,aAAA;AAAA,EACAC,wBAAA;AAAA,EACAC,kBAAA;AAAA,EACAC,mBAAA;AAAA,EACAC;AACF,CAAA;AAEa,MAAA,OAAA,mBAAoB,MAAA,CAAA,SAAA,GAAA,EAAU,QAAgB,EAAA;AACzD,EAAA,SAAA,CAAU,QAAQ,CAAC,CAAA,KAAM,IAAI,GAAI,CAAA,CAAA,EAAG,QAAQ,CAAC,CAAA;AAC/C,CAFuB,EAAA,SAAA;AAIvB,gBAAe;AAAA,EACb;AACF,CAAA;;;;;"}
1
+ {"version":3,"file":"installer.js","sources":["../../../../packages/installer.ts"],"sourcesContent":["import type { App, Plugin } from \"vue\";\n\nimport {\n ICheckbox,\n IDatePicker,\n IDescriptionItem,\n IDescriptions,\n IDialog,\n IDivider,\n IDrawer,\n IForm,\n IGeoMark,\n IIconSelect,\n IImageVerification,\n ILink,\n ILivePlayer,\n IMap,\n IMonitorPlayback,\n IPageHeader,\n IRadio,\n ISearch,\n ISegmented,\n ISelect,\n ISplitPane,\n ITable,\n ITenantEnterprise,\n ITextButton,\n ITextButtonGroup,\n ITzjPlayer,\n} from \"./components\";\n\nconst component = [\n IForm,\n ISelect,\n IRadio,\n ICheckbox,\n IDivider,\n IDrawer,\n IIconSelect,\n IImageVerification,\n ITextButton,\n ITextButtonGroup,\n IPageHeader,\n ISearch,\n ITable,\n ISplitPane,\n ITenantEnterprise,\n ISegmented,\n IDescriptions,\n IDescriptionItem,\n ILivePlayer,\n IDialog,\n ILink,\n IMonitorPlayback,\n ITzjPlayer,\n IDatePicker,\n IMap,\n IGeoMark,\n] as Plugin[];\n\nexport const install = function (app: App, _options?: any) {\n component.forEach((i) => app.use(i, _options));\n};\n\nexport default {\n install,\n};\n"],"names":["IForm","ISelect","IRadio","ICheckbox","IDivider","IDrawer","IIconSelect","IImageVerification","ITextButton","ITextButtonGroup","IPageHeader","ISearch","ITable","ISplitPane","ITenantEnterprise","ISegmented","IDescriptions","IDescriptionItem","ILivePlayer","IDialog","ILink","IMonitorPlayback","ITzjPlayer","IDatePicker","IMap","IGeoMark"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,MAAM,SAAY,GAAA;AAAA,EAChBA,WAAA;AAAA,EACAC,eAAA;AAAA,EACAC,cAAA;AAAA,EACAC,iBAAA;AAAA,EACAC,gBAAA;AAAA,EACAC,eAAA;AAAA,EACAC,mBAAA;AAAA,EACAC,0BAAA;AAAA,EACAC,mBAAA;AAAA,EACAC,wBAAA;AAAA,EACAC,mBAAA;AAAA,EACAC,eAAA;AAAA,EACAC,cAAA;AAAA,EACAC,kBAAA;AAAA,EACAC,yBAAA;AAAA,EACAC,kBAAA;AAAA,EACAC,qBAAA;AAAA,EACAC,wBAAA;AAAA,EACAC,mBAAA;AAAA,EACAC,eAAA;AAAA,EACAC,aAAA;AAAA,EACAC,wBAAA;AAAA,EACAC,kBAAA;AAAA,EACAC,mBAAA;AAAA,EACAC,YAAA;AAAA,EACAC;AACF,CAAA;AAEa,MAAA,OAAA,mBAAoB,MAAA,CAAA,SAAA,GAAA,EAAU,QAAgB,EAAA;AACzD,EAAA,SAAA,CAAU,QAAQ,CAAC,CAAA,KAAM,IAAI,GAAI,CAAA,CAAA,EAAG,QAAQ,CAAC,CAAA;AAC/C,CAFuB,EAAA,SAAA;AAIvB,gBAAe;AAAA,EACb;AACF,CAAA;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yimou6/common-ui",
3
- "version": "1.13.18",
3
+ "version": "1.13.20",
4
4
  "description": "Vue3 Component Library",
5
5
  "author": "yimou6",
6
6
  "license": "MIT",
@@ -70,7 +70,9 @@
70
70
  "echarts": "^5.6.0",
71
71
  "element-plus": "2.9.9",
72
72
  "ezuikit-js": "8.1.13",
73
+ "ol": "^9.2.4",
73
74
  "vue": "^3.4.0",
75
+ "vue3-openlayers": "^6.5.0",
74
76
  "xgplayer": "^3.0.21",
75
77
  "xgplayer-flv": "^3.0.21",
76
78
  "xgplayer-hls": "^3.0.21",
@@ -0,0 +1 @@
1
+ @charset "UTF-8";.measure-result{background:rgba(255,255,255,.9);padding:5px 10px;border-radius:4px;box-shadow:0 2px 4px rgba(0,0,0,.2);font-size:14px;color:#333}.area-display{background:rgba(255,255,255,.9);padding:8px 12px;border-radius:4px;box-shadow:0 2px 6px rgba(0,0,0,.3);font-size:14px;color:#333;cursor:pointer;text-align:center}.area-display div:first-child{font-weight:700;margin-bottom:4px}.alarm-dialog{width:370px;height:280px;padding:20px}.alarm-dialog .alarm-dialog__title{color:#fff;font-size:20px;font-weight:700;display:flex;justify-content:space-between;align-items:center;padding-bottom:10px;border-bottom:1px solid rgba(245,63,63,.4);position:relative}.alarm-dialog .alarm-dialog__title .el-icon{cursor:pointer;color:#f53f3f;font-weight:700}.alarm-dialog .alarm-dialog__title:before{content:"";width:6px;height:3px;position:absolute;bottom:-2px;left:0;background-color:#f53f3f}.alarm-dialog .alarm-dialog__title:after{content:"";width:6px;height:3px;position:absolute;bottom:-2px;right:0;background-color:#f53f3f}.alarm-dialog .alarm-dialog__content{margin-top:20px;width:100%;height:180px;overflow:hidden}.alarm-dialog .alarm-dialog__content .alarm-desc{color:#fff;font-size:14px;width:100%}.alarm-dialog .alarm-dialog__content .alarm-desc-item{height:28px;display:flex;align-items:center;justify-content:flex-start}.alarm-dialog .alarm-dialog__content .alarm-desc span{padding-left:10px}.alarm-dialog .alarm-dialog__content .alarm-video{height:100%;width:100%}.alarm-dialog .alarm-dialog__content .alarm-video video{height:120px;width:100%}.alarm-dialog .alarm-dialog__content .alarm-video .alarm-video-desc{color:#fff;font-size:14px;width:100%}.alarm-dialog .alarm-dialog__content .alarm-video .alarm-video-desc-item{height:28px;display:flex;align-items:center;justify-content:flex-start}.alarm-dialog .alarm-dialog__content .alarm-video .alarm-video-desc-item span+span{margin-left:8px}.alarm-dialog .alarm-dialog__content .alarm-device{height:120px;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-row-gap:8px}.alarm-dialog .alarm-dialog__content .alarm-device .alarm-device-item{display:flex;height:50px;align-items:center;justify-content:flex-start}.alarm-dialog .alarm-dialog__content .alarm-device .alarm-device-item .el-image{height:50px;width:50px;margin-right:6px}.alarm-dialog .alarm-dialog__content .alarm-device .alarm-device-item>div div:nth-child(1){font-size:14px;color:#fff}.alarm-dialog .alarm-dialog__content .alarm-device .alarm-device-item>div div:nth-child(2){font-size:20px;color:#00d5ff;font-weight:700}.alarm-dialog .alarm-dialog__content .alarm-device-desc{color:#fff;font-size:14px;width:100%}.alarm-dialog .alarm-dialog__content .alarm-device-desc-item{height:28px;display:flex;align-items:center;justify-content:flex-start}.alarm-dialog .alarm-dialog__content .alarm-device-desc-item span+span{margin-left:8px}.alarm-window1{width:700px;height:260px;padding:20px;background-repeat:no-repeat;background-size:100% 100%}.alarm-window1 .alarm-window1__title{color:#fff;font-size:20px;font-weight:700;display:flex;justify-content:space-between;align-items:center;padding-bottom:10px;border-bottom:1px solid rgba(245,63,63,.4);position:relative}.alarm-window1 .alarm-window1__title .el-icon{cursor:pointer;color:#f53f3f;font-weight:700}.alarm-window1 .alarm-window1__title:before{content:"";width:6px;height:3px;position:absolute;bottom:-2px;left:0;background-color:#f53f3f}.alarm-window1 .alarm-window1__title:after{content:"";width:6px;height:3px;position:absolute;bottom:-2px;right:0;background-color:#f53f3f}.alarm-window1 .alarm-window1__content{margin-top:20px;width:300px;height:160px;background-color:rgba(0,0,0,.2)}.alarm-window1 .alarm-window2__info{width:360px;margin-left:20px}.alarm-window1 .alarm-window2__info .alarm-window2__title{font-size:20px;font-weight:700;color:#fff;padding-bottom:10px;border-bottom:1px solid #fff;background:linear-gradient(0deg,#f53f3f 0,#e1af00 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.alarm-window1 .alarm-window2__info .alarm-window2__list{display:flex;flex-direction:column;font-size:14px;color:#fff;margin:10px 0}.alarm-window1 .alarm-window2__info .alarm-tags{display:flex;flex-direction:row;justify-content:flex-start;align-items:flex-start;flex-wrap:wrap;margin-left:-10px;height:120px}.alarm-window1 .alarm-window2__info .alarm-tags .alarm-tag{background:#337ecc 100%;background:linear-gradient(90deg,#337ecc,rgba(51,126,204,.2));color:#fff;font-size:16px;padding:6px 14px;border-radius:4px;cursor:pointer;margin-left:10px}.alarm-window1 .alarm-window2__info .alarm-opera{display:flex;justify-content:space-between}.alarm-window1 .alarm-window2__info .alarm-opera .alarm-normal-btn{border:1px solid #409eff;border-radius:4px;width:110px;height:36px;display:flex;align-items:center;justify-content:center;font-size:16px;color:#fff;cursor:pointer}.alarm-window2{position:relative;width:800px;display:flex;justify-content:flex-start;padding:20px;background:rgba(4,50,86,.9);border:2px solid #409eff;box-sizing:border-box}.alarm-window2 .angle{width:25px;height:25px;border:2px solid #00f0ff;position:absolute}.alarm-window2 .angle.left-top{top:-2px;left:-2px;border-right:none;border-bottom:none}.alarm-window2 .angle.left-bottom{bottom:-2px;left:-2px;border-right:none;border-top:none}.alarm-window2 .angle.right-top{top:-2px;right:-2px;border-left:none;border-bottom:none}.alarm-window2 .angle.right-bottom{bottom:-2px;right:-2px;border-left:none;border-top:none}.alarm-window2 .el-icon{cursor:pointer;position:absolute;top:10px;right:10px;font-weight:700;font-size:20px;color:#fff}.alarm-window2 .alarm-window2__content{width:400px;height:260px;background-color:rgba(0,0,0,.2)}.alarm-window2 .alarm-window2__info{width:360px;margin-left:20px}.alarm-window2 .alarm-window2__info .alarm-window2__title{font-size:20px;font-weight:700;color:#fff;padding-bottom:10px;border-bottom:1px solid #fff;background:linear-gradient(0deg,#f53f3f 0,#e1af00 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.alarm-window2 .alarm-window2__info .alarm-window2__list{display:flex;flex-direction:column;font-size:14px;color:#fff;margin:10px 0}.alarm-window2 .alarm-window2__info .alarm-tags{display:flex;flex-direction:row;justify-content:flex-start;align-items:flex-start;flex-wrap:wrap;margin-left:-10px;height:120px}.alarm-window2 .alarm-window2__info .alarm-tags .alarm-tag{background:#337ecc 100%;background:linear-gradient(90deg,#337ecc,rgba(51,126,204,.2));color:#fff;font-size:16px;padding:6px 14px;border-radius:4px;cursor:pointer;margin-left:10px}.alarm-window2 .alarm-window2__info .alarm-opera{display:flex;justify-content:space-between}.alarm-window2 .alarm-window2__info .alarm-opera .alarm-normal-btn{border:1px solid #409eff;border-radius:4px;width:110px;height:36px;display:flex;align-items:center;justify-content:center;font-size:16px;color:#fff;cursor:pointer}.map-input2:focus-within .input-close-icon,.map-input2:hover .input-close-icon{display:block}.input-close-icon2{cursor:pointer;display:none}.map-container2{min-height:500px}.map-container2 .map-container-inner{position:relative}.map-container2 .map-container-inner #container{position:relative;width:100%;height:500px}.map-container2 .map-container-inner #container :deep(.amap-marker) img{width:25px;height:34px}.map-container2 .map-container-inner #map-search-result{display:none;position:absolute;right:-5px;top:0;width:30%;height:500px;overflow-y:auto}.district2{margin-left:10px;font-size:12px;color:#ccc}.bg-overlay2{position:relative;width:50px;height:50px;background:url(弹框.png);background-size:100% 100%;background-repeat:no-repeat;background-color:transparent}.t-bg-overlay{position:relative;width:350px;height:250px;background-size:100% 80%;background-repeat:no-repeat}.t-bg-overlay2{position:relative;width:100px;height:100px;background-size:100% 80%;background-repeat:no-repeat}.t-overlay-item{z-index:99999!important;height:10px;margin-top:30px;margin-left:38px;font-size:18px;color:#ff0;width:100%}.t-popper{height:350px!important}.t-fold{height:40px!important}.t-unfold{height:auto!important}.ol-attribution{display:none!important}.ol-zoom{display:none!important}.vc-sketch{position:absolute!important;z-index:999999999!important}.open-info-list{height:95%!important}.textx{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.text-gradient2{background:linear-gradient(to right,#fbff00,tomato,#ff8c00);background-clip:text;-webkit-background-clip:text;color:transparent;font-weight:700}.map-input:focus-within .input-close-icon,.map-input:hover .input-close-icon{display:block}.input-close-icon{cursor:pointer;display:none}.map-container{min-height:500px}.map-container .map-container-inner{position:relative}.map-container .map-container-inner #container{position:relative;width:100%;height:500px}.map-container .map-container-inner #container :deep(.amap-marker) img{width:25px;height:34px}.map-container .map-container-inner #map-search-result{display:none;position:absolute;right:-5px;top:0;width:30%;height:500px;overflow-y:auto}.district2{margin-left:10px;font-size:12px;color:#ccc}.bg-overlay2{position:relative;width:50px;height:50px;background:url(弹框.png);background-size:100% 100%;background-repeat:no-repeat;background-color:transparent}.map-input2:focus-within .input-close-icon,.map-input2:hover .input-close-icon{display:block}.input-close-icon2{cursor:pointer;display:none}.map-container2{min-height:500px}.map-container2 .map-container-inner{position:relative}.map-container2 .map-container-inner #container{position:relative;width:100%;height:500px}.map-container2 .map-container-inner #container :deep(.amap-marker) img{width:25px;height:34px}.map-container2 .map-container-inner #map-search-result{display:none;position:absolute;right:-5px;top:0;width:30%;height:500px;overflow-y:auto}.district2{margin-left:10px;font-size:12px;color:#ccc}.bg-overlay2{position:relative;width:50px;height:50px;background:url(弹框.png);background-size:100% 100%;background-repeat:no-repeat;background-color:transparent}
@@ -1 +1 @@
1
- .i-map__input:focus-within .i-map__input-close,.i-map__input:hover .i-map__input-close{display:block}.i-map__input-close{cursor:pointer;display:none}.i-map__container{height:100%}.i-map__container .i-map__container-inner{position:relative;height:calc(100% - 50px);min-height:500px}.i-map__container-inner{position:relative;height:100%}.i-map__view-wrapper{min-height:300px;height:300px}.i-map__tdt{width:100%;height:100%;min-height:500px}.i-map__tdt--view{width:100%;height:100%;min-height:unset}.i-map__search-result{display:none;position:absolute;right:0;top:0;width:30%;overflow-y:auto;background:#fff;box-shadow:-2px 0 8px rgba(0,0,0,.15);z-index:1000;border-radius:4px;max-height:500px}.i-map .i-map__container .i-map__container-inner .i-map__search-result{max-height:100%}.i-map__district{margin-left:10px;font-size:12px;color:#ccc}.i-map .tdt-control{display:none!important}
1
+ .i-map__input:focus-within .i-map__input-close,.i-map__input:hover .i-map__input-close{display:block}.i-map__input-close{cursor:pointer;display:none}.i-map__container{height:100%}.i-map__container .i-map__container-inner{position:relative;height:calc(100% - 50px);min-height:500px}.i-map__container-inner{position:relative;height:100%}.i-map__view-wrapper{min-height:300px;height:300px}.i-map__tdt{width:100%;height:100%;min-height:500px}.i-map__tdt--view{width:100%;height:100%;min-height:unset}.i-map__district{margin-left:10px;font-size:12px;color:#ccc}.i-map .tdt-control{display:none!important}