@yimou6/common-ui 1.11.13 → 1.11.14

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 (27) hide show
  1. package/cdn/index.cdn.js +11 -11
  2. package/cdn/index.cdn.js.map +1 -1
  3. package/cdn/index.cdn.mjs +11 -11
  4. package/cdn/index.cdn.mjs.map +1 -1
  5. package/es/components/tenant-enterprise/src/tenant-enterprise.vue2.mjs +2 -2
  6. package/es/components/tenant-enterprise/src/tenant-enterprise.vue2.mjs.map +1 -1
  7. package/es/components/tzj-player/index.d.ts +8 -0
  8. package/es/components/tzj-player/src/ctyun-player.vue.d.ts +1 -0
  9. package/es/components/tzj-player/src/easyPlayer.vue.d.ts +1 -0
  10. package/es/components/tzj-player/src/easyPlayer.vue2.mjs +29 -12
  11. package/es/components/tzj-player/src/easyPlayer.vue2.mjs.map +1 -1
  12. package/es/components/tzj-player/src/tzj-player.vue.d.ts +8 -0
  13. package/es/components/tzj-player/src/tzj-player.vue2.mjs +5 -4
  14. package/es/components/tzj-player/src/tzj-player.vue2.mjs.map +1 -1
  15. package/es/components/tzj-player/src/yunzhiyanPlayer.vue.d.ts +1 -0
  16. package/lib/components/tenant-enterprise/src/tenant-enterprise.vue2.js +2 -2
  17. package/lib/components/tenant-enterprise/src/tenant-enterprise.vue2.js.map +1 -1
  18. package/lib/components/tzj-player/index.d.ts +8 -0
  19. package/lib/components/tzj-player/src/ctyun-player.vue.d.ts +1 -0
  20. package/lib/components/tzj-player/src/easyPlayer.vue.d.ts +1 -0
  21. package/lib/components/tzj-player/src/easyPlayer.vue2.js +29 -12
  22. package/lib/components/tzj-player/src/easyPlayer.vue2.js.map +1 -1
  23. package/lib/components/tzj-player/src/tzj-player.vue.d.ts +8 -0
  24. package/lib/components/tzj-player/src/tzj-player.vue2.js +5 -4
  25. package/lib/components/tzj-player/src/tzj-player.vue2.js.map +1 -1
  26. package/lib/components/tzj-player/src/yunzhiyanPlayer.vue.d.ts +1 -0
  27. package/package.json +1 -1
@@ -1492,6 +1492,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1492
1492
  isFullscreen: import("vue").Ref<boolean, boolean>;
1493
1493
  videoInfo: import("vue").Ref<any, any>;
1494
1494
  realFullscreen: import("vue").Ref<boolean, boolean>;
1495
+ 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>>)>;
1495
1496
  play: (url?: string) => void;
1496
1497
  playerPause: () => void;
1497
1498
  playerScreenShot: () => void;
@@ -3195,6 +3196,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
3195
3196
  isFullscreen: import("vue").Ref<boolean, boolean>;
3196
3197
  videoInfo: import("vue").Ref<any, any>;
3197
3198
  realFullscreen: import("vue").Ref<boolean, boolean>;
3199
+ 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>>)>;
3198
3200
  play: (url?: string) => void;
3199
3201
  playerPause: () => void;
3200
3202
  playerScreenShot: () => void;
@@ -3417,6 +3419,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
3417
3419
  isFullscreen: import("vue").Ref<boolean, boolean>;
3418
3420
  videoInfo: import("vue").Ref<any, any>;
3419
3421
  realFullscreen: import("vue").Ref<boolean, boolean>;
3422
+ 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>>)>;
3420
3423
  play: (url?: string) => void;
3421
3424
  playerPause: () => void;
3422
3425
  playerScreenShot: () => void;
@@ -4935,6 +4938,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
4935
4938
  isFullscreen: import("vue").Ref<boolean, boolean>;
4936
4939
  videoInfo: import("vue").Ref<any, any>;
4937
4940
  realFullscreen: import("vue").Ref<boolean, boolean>;
4941
+ 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>>)>;
4938
4942
  play: (url?: string) => void;
4939
4943
  playerPause: () => void;
4940
4944
  playerScreenShot: () => void;
@@ -6636,6 +6640,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
6636
6640
  isFullscreen: import("vue").Ref<boolean, boolean>;
6637
6641
  videoInfo: import("vue").Ref<any, any>;
6638
6642
  realFullscreen: import("vue").Ref<boolean, boolean>;
6643
+ 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>>)>;
6639
6644
  play: (url?: string) => void;
6640
6645
  playerPause: () => void;
6641
6646
  playerScreenShot: () => void;
@@ -6861,6 +6866,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
6861
6866
  isFullscreen: import("vue").Ref<boolean, boolean>;
6862
6867
  videoInfo: import("vue").Ref<any, any>;
6863
6868
  realFullscreen: import("vue").Ref<boolean, boolean>;
6869
+ 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>>)>;
6864
6870
  play: (url?: string) => void;
6865
6871
  playerPause: () => void;
6866
6872
  playerScreenShot: () => void;
@@ -8379,6 +8385,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
8379
8385
  isFullscreen: import("vue").Ref<boolean, boolean>;
8380
8386
  videoInfo: import("vue").Ref<any, any>;
8381
8387
  realFullscreen: import("vue").Ref<boolean, boolean>;
8388
+ 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>>)>;
8382
8389
  play: (url?: string) => void;
8383
8390
  playerPause: () => void;
8384
8391
  playerScreenShot: () => void;
@@ -10080,6 +10087,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
10080
10087
  isFullscreen: import("vue").Ref<boolean, boolean>;
10081
10088
  videoInfo: import("vue").Ref<any, any>;
10082
10089
  realFullscreen: import("vue").Ref<boolean, boolean>;
10090
+ 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>>)>;
10083
10091
  play: (url?: string) => void;
10084
10092
  playerPause: () => void;
10085
10093
  playerScreenShot: () => void;
@@ -35,10 +35,11 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
35
35
  }, 300);
36
36
  vue.watch(
37
37
  () => [url.value, platformTypeName.value, accessToken.value],
38
- () => {
39
- updatePlayerComponent();
40
- },
41
- { deep: true }
38
+ ([newUrl, newPlatform, newToken], [oldUrl, oldPlatform, oldToken]) => {
39
+ if (newUrl !== oldUrl || newPlatform !== oldPlatform || newToken !== oldToken) {
40
+ updatePlayerComponent();
41
+ }
42
+ }
42
43
  );
43
44
  const PLATFORM_COMPONENTS = {
44
45
  \u4E91\u667A\u773C: yunzhiyanPlayer_vue_vue_type_script_setup_true_lang.default,
@@ -1 +1 @@
1
- {"version":3,"file":"tzj-player.vue2.js","sources":["../../../../../../../packages/components/tzj-player/src/tzj-player.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, shallowRef, toRefs, watch } from \"vue\";\nimport { debounce } from \"lodash-es\";\nimport CtyunPlayer from \"./ctyun-player.vue\";\nimport EasyPlayer from \"./easyPlayer.vue\";\n// import XgPlayer from \"./xgplayer.vue\";\nimport {\n getVideoType,\n isSupportedProtocol,\n TzjPlayerProps,\n} from \"./tzj-player\";\nimport YsPlayer from \"./ysPlayer.vue\";\nimport ErrorPage from \"./errorPage.vue\";\nimport YunzhiyanPlayer from \"./yunzhiyanPlayer.vue\";\n\ndefineOptions({\n name: \"ITzjPlayer\",\n});\n\nconst props = defineProps(TzjPlayerProps);\nconst { url, platformTypeName, accessToken } = toRefs(props);\n\nconst compRef = shallowRef();\n\n// 防抖处理组件渲染更新,避免频繁切换播放器类型\nconst updatePlayerComponent = debounce(() => {\n // 强制更新组件,销毁旧实例\n if (compRef.value) {\n compRef.value.destroy?.();\n }\n}, 300);\n\n// 监听URL变化,使用防抖处理\nwatch(\n () => [url.value, platformTypeName.value, accessToken.value],\n () => {\n // 更新播放器组件\n updatePlayerComponent();\n },\n { deep: true },\n);\n\n/**\n * 平台类型映射表,提升可维护性\n */\nconst PLATFORM_COMPONENTS = {\n 云智眼: YunzhiyanPlayer,\n 萤石云: YsPlayer,\n 天翼云: CtyunPlayer,\n // hls: XgPlayer,\n} as const;\n\n/**\n * 计算当前播放器组件类型\n * 使用计算属性避免重复计算,提升性能\n */\nconst playerComponent = computed(() => {\n // 优先使用指定的平台类型\n if (platformTypeName.value) {\n return (\n PLATFORM_COMPONENTS[\n platformTypeName.value as keyof typeof PLATFORM_COMPONENTS\n ] || EasyPlayer\n );\n }\n\n // 未指定平台类型时,根据URL自动判断\n if (!url.value) {\n return null;\n }\n\n // 检查协议支持性\n if (!isSupportedProtocol(url.value)) {\n return null;\n }\n\n // ezopen协议使用萤石云播放器\n if (url.value.includes(\"ezopen\")) {\n return YsPlayer;\n }\n\n // 根据视频类型选择播放器\n const videoType = getVideoType(url.value);\n return videoType ? EasyPlayer : null;\n});\n\n/**\n * 计算错误状态信息\n * 统一错误状态管理,提升用户体验\n */\nconst errorState = computed(() => {\n // 云智眼平台不需要URL\n if (\n platformTypeName.value === \"云智眼\" ||\n platformTypeName.value === \"天翼云\"\n ) {\n return null;\n }\n\n // 检查URL是否存在\n if (!url.value) {\n return {\n type: \"no-url\",\n message: \"无视频地址\",\n };\n }\n\n // 检查协议支持性\n if (!isSupportedProtocol(url.value)) {\n return {\n type: \"unsupported-protocol\",\n message: \"不支持该视频协议\",\n };\n }\n\n // 萤石云平台需要accessToken\n if (\n (platformTypeName.value === \"萤石云\" || url.value.includes(\"ezopen\")) &&\n !accessToken.value\n ) {\n return {\n type: \"no-token\",\n message: \"缺少访问令牌\",\n };\n }\n\n return null;\n});\n\n/**\n * 计算是否显示播放器组件\n */\nconst shouldShowPlayer = computed(() => {\n return !errorState.value && playerComponent.value;\n});\n\n/**\n * 暴露的方法,增加错误处理\n */\ndefineExpose({\n /**\n * 播放视频\n * @param options 播放选项\n */\n play(options?: any) {\n if (!compRef.value) {\n props.debug && console.warn(\"[TzjPlayer] 播放器组件未初始化\");\n return;\n }\n compRef.value?.play(options);\n },\n\n /**\n * 销毁播放器\n */\n destroy() {\n if (!compRef.value) {\n props.debug && console.warn(\"[TzjPlayer] 播放器组件未初始化\");\n return;\n }\n compRef.value?.destroy();\n },\n\n /**\n * 调整播放器尺寸\n */\n resize() {\n if (!compRef.value) {\n props.debug && console.warn(\"[TzjPlayer] 播放器组件未初始化\");\n return;\n }\n compRef.value?.resize();\n },\n\n /**\n * 获取当前播放器类型\n */\n getPlayerType() {\n return playerComponent.value?.name || null;\n },\n\n /**\n * 获取错误状态\n */\n getErrorState() {\n return errorState.value;\n },\n});\n</script>\n\n<template>\n <div class=\"i-tzj-player\">\n <!-- 错误状态显示 -->\n <error-page\n :videoName=\"areaName || deviceSerial\"\n :message=\"errorState.message\"\n v-if=\"errorState\"\n />\n\n <!-- 播放器组件 -->\n <component\n :is=\"playerComponent\"\n v-else-if=\"shouldShowPlayer\"\n ref=\"compRef\"\n v-bind=\"props\"\n />\n\n <!-- 无可用播放器 -->\n <error-page :videoName=\"areaName || deviceSerial\" message=\"无信号\" v-else />\n </div>\n</template>\n"],"names":["toRefs","shallowRef","debounce","watch","YunzhiyanPlayer","YsPlayer","CtyunPlayer","computed","EasyPlayer","isSupportedProtocol","getVideoType","_openBlock","_createElementBlock","_createCommentVNode","_createBlock","ErrorPage","areaName","deviceSerial","_Fragment","_resolveDynamicComponent","_mergeProps","_createVNode"],"mappings":"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"}
1
+ {"version":3,"file":"tzj-player.vue2.js","sources":["../../../../../../../packages/components/tzj-player/src/tzj-player.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, shallowRef, toRefs, watch } from \"vue\";\nimport { debounce } from \"lodash-es\";\nimport CtyunPlayer from \"./ctyun-player.vue\";\nimport EasyPlayer from \"./easyPlayer.vue\";\n// import XgPlayer from \"./xgplayer.vue\";\nimport {\n getVideoType,\n isSupportedProtocol,\n TzjPlayerProps,\n} from \"./tzj-player\";\nimport YsPlayer from \"./ysPlayer.vue\";\nimport ErrorPage from \"./errorPage.vue\";\nimport YunzhiyanPlayer from \"./yunzhiyanPlayer.vue\";\n\ndefineOptions({\n name: \"ITzjPlayer\",\n});\n\nconst props = defineProps(TzjPlayerProps);\nconst { url, platformTypeName, accessToken } = toRefs(props);\n\nconst compRef = shallowRef();\n\n// 防抖处理组件渲染更新,避免频繁切换播放器类型\nconst updatePlayerComponent = debounce(() => {\n // 强制更新组件,销毁旧实例\n if (compRef.value) {\n compRef.value.destroy?.();\n }\n}, 300);\n\n// 监听URL变化,使用防抖处理\nwatch(\n () => [url.value, platformTypeName.value, accessToken.value],\n ([newUrl, newPlatform, newToken], [oldUrl, oldPlatform, oldToken]) => {\n // 只有当值真正发生变化时才更新\n if (\n newUrl !== oldUrl ||\n newPlatform !== oldPlatform ||\n newToken !== oldToken\n ) {\n // 更新播放器组件\n updatePlayerComponent();\n }\n },\n);\n\n/**\n * 平台类型映射表,提升可维护性\n */\nconst PLATFORM_COMPONENTS = {\n 云智眼: YunzhiyanPlayer,\n 萤石云: YsPlayer,\n 天翼云: CtyunPlayer,\n // hls: XgPlayer,\n} as const;\n\n/**\n * 计算当前播放器组件类型\n * 使用计算属性避免重复计算,提升性能\n */\nconst playerComponent = computed(() => {\n // 优先使用指定的平台类型\n if (platformTypeName.value) {\n return (\n PLATFORM_COMPONENTS[\n platformTypeName.value as keyof typeof PLATFORM_COMPONENTS\n ] || EasyPlayer\n );\n }\n\n // 未指定平台类型时,根据URL自动判断\n if (!url.value) {\n return null;\n }\n\n // 检查协议支持性\n if (!isSupportedProtocol(url.value)) {\n return null;\n }\n\n // ezopen协议使用萤石云播放器\n if (url.value.includes(\"ezopen\")) {\n return YsPlayer;\n }\n\n // 根据视频类型选择播放器\n const videoType = getVideoType(url.value);\n return videoType ? EasyPlayer : null;\n});\n\n/**\n * 计算错误状态信息\n * 统一错误状态管理,提升用户体验\n */\nconst errorState = computed(() => {\n // 云智眼平台不需要URL\n if (\n platformTypeName.value === \"云智眼\" ||\n platformTypeName.value === \"天翼云\"\n ) {\n return null;\n }\n\n // 检查URL是否存在\n if (!url.value) {\n return {\n type: \"no-url\",\n message: \"无视频地址\",\n };\n }\n\n // 检查协议支持性\n if (!isSupportedProtocol(url.value)) {\n return {\n type: \"unsupported-protocol\",\n message: \"不支持该视频协议\",\n };\n }\n\n // 萤石云平台需要accessToken\n if (\n (platformTypeName.value === \"萤石云\" || url.value.includes(\"ezopen\")) &&\n !accessToken.value\n ) {\n return {\n type: \"no-token\",\n message: \"缺少访问令牌\",\n };\n }\n\n return null;\n});\n\n/**\n * 计算是否显示播放器组件\n */\nconst shouldShowPlayer = computed(() => {\n return !errorState.value && playerComponent.value;\n});\n\n/**\n * 暴露的方法,增加错误处理\n */\ndefineExpose({\n /**\n * 播放视频\n * @param options 播放选项\n */\n play(options?: any) {\n if (!compRef.value) {\n props.debug && console.warn(\"[TzjPlayer] 播放器组件未初始化\");\n return;\n }\n compRef.value?.play(options);\n },\n\n /**\n * 销毁播放器\n */\n destroy() {\n if (!compRef.value) {\n props.debug && console.warn(\"[TzjPlayer] 播放器组件未初始化\");\n return;\n }\n compRef.value?.destroy();\n },\n\n /**\n * 调整播放器尺寸\n */\n resize() {\n if (!compRef.value) {\n props.debug && console.warn(\"[TzjPlayer] 播放器组件未初始化\");\n return;\n }\n compRef.value?.resize();\n },\n\n /**\n * 获取当前播放器类型\n */\n getPlayerType() {\n return playerComponent.value?.name || null;\n },\n\n /**\n * 获取错误状态\n */\n getErrorState() {\n return errorState.value;\n },\n});\n</script>\n\n<template>\n <div class=\"i-tzj-player\">\n <!-- 错误状态显示 -->\n <error-page\n :videoName=\"areaName || deviceSerial\"\n :message=\"errorState.message\"\n v-if=\"errorState\"\n />\n\n <!-- 播放器组件 -->\n <component\n :is=\"playerComponent\"\n v-else-if=\"shouldShowPlayer\"\n ref=\"compRef\"\n v-bind=\"props\"\n />\n\n <!-- 无可用播放器 -->\n <error-page :videoName=\"areaName || deviceSerial\" message=\"无信号\" v-else />\n </div>\n</template>\n"],"names":["toRefs","shallowRef","debounce","watch","YunzhiyanPlayer","YsPlayer","CtyunPlayer","computed","EasyPlayer","isSupportedProtocol","getVideoType","_openBlock","_createElementBlock","_createCommentVNode","_createBlock","ErrorPage","areaName","deviceSerial","_Fragment","_resolveDynamicComponent","_mergeProps","_createVNode"],"mappings":"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"}
@@ -1434,6 +1434,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1434
1434
  isFullscreen: import("vue").Ref<boolean, boolean>;
1435
1435
  videoInfo: import("vue").Ref<any, any>;
1436
1436
  realFullscreen: import("vue").Ref<boolean, boolean>;
1437
+ 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>>)>;
1437
1438
  play: (url?: string) => void;
1438
1439
  playerPause: () => void;
1439
1440
  playerScreenShot: () => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yimou6/common-ui",
3
- "version": "1.11.13",
3
+ "version": "1.11.14",
4
4
  "description": "Vue3 Component Library",
5
5
  "author": "yimou6",
6
6
  "license": "MIT",