Commit ced6ead659a9a04324940cd830fa30afa8a55bd5

Authored by ww
1 parent 41f78aba

perf: fix camera manage mode split container has some problem

@@ -26,7 +26,6 @@ @@ -26,7 +26,6 @@
26 muted: true, 26 muted: true,
27 liveui: true, 27 liveui: true,
28 controls: true, 28 controls: true,
29 - fluid: true,  
30 }; 29 };
31 return { ...defaultOptions, ...options }; 30 return { ...defaultOptions, ...options };
32 }); 31 });
@@ -65,4 +64,12 @@ @@ -65,4 +64,12 @@
65 64
66 <style lang="less"> 65 <style lang="less">
67 @prefix-cls: ~'@{namespace}-basic-video-play'; 66 @prefix-cls: ~'@{namespace}-basic-video-play';
  67 +
  68 + .@{prefix-cls} {
  69 + .vjs-error-display {
  70 + .vjs-modal-dialog-content::after {
  71 + content: '无法加载视频,原因可能是服务器或网络故障,也可能是格式不支持.';
  72 + }
  73 + }
  74 + }
68 </style> 75 </style>
@@ -15,6 +15,7 @@ @@ -15,6 +15,7 @@
15 import { buildUUID } from '/@/utils/uuid'; 15 import { buildUUID } from '/@/utils/uuid';
16 import { BasicVideoPlay, getVideoTypeByUrl } from '/@/components/Video'; 16 import { BasicVideoPlay, getVideoTypeByUrl } from '/@/components/Video';
17 import { VideoJsPlayerOptions } from 'video.js'; 17 import { VideoJsPlayerOptions } from 'video.js';
  18 + import { getBoundingClientRect } from '/@/utils/domUtils';
18 19
19 type CameraRecordItem = CameraRecord & { 20 type CameraRecordItem = CameraRecord & {
20 canPlay?: boolean; 21 canPlay?: boolean;
@@ -159,6 +160,19 @@ @@ -159,6 +160,19 @@
159 onMounted(() => { 160 onMounted(() => {
160 getCameraList(); 161 getCameraList();
161 }); 162 });
  163 +
  164 + const listEl = ref();
  165 + onMounted(() => {
  166 + const clientHeight = document.documentElement.clientHeight;
  167 + const rect = getBoundingClientRect(unref(listEl)!.$el!) as DOMRect;
  168 + // list pading top 8 maring-top 8 extra slot 56
  169 + const listContainerMarginBottom = 16;
  170 + const listContainerHeight = clientHeight - rect.top - listContainerMarginBottom;
  171 + const listContainerEl = (unref(listEl)!.$el as HTMLElement).querySelector(
  172 + '.ant-spin-container'
  173 + ) as HTMLElement;
  174 + listContainerEl && (listContainerEl.style.height = listContainerHeight + 'px');
  175 + });
162 </script> 176 </script>
163 177
164 <template> 178 <template>
@@ -221,6 +235,7 @@ @@ -221,6 +235,7 @@
221 </div> 235 </div>
222 <section ref="videoContainer" class="flex-auto"> 236 <section ref="videoContainer" class="flex-auto">
223 <List 237 <List
  238 + ref="listEl"
224 :loading="loading" 239 :loading="loading"
225 :data-source="cameraList" 240 :data-source="cameraList"
226 class="bg-light-50 w-full h-full dark:bg-dark-900 split-mode-list" 241 class="bg-light-50 w-full h-full dark:bg-dark-900 split-mode-list"
@@ -275,24 +290,6 @@ @@ -275,24 +290,6 @@
275 height: 100%; 290 height: 100%;
276 } 291 }
277 292
278 - .split-screen-mode:deep(.d-player-wrap) {  
279 - width: 100%;  
280 - height: 100%;  
281 - }  
282 -  
283 - .split-screen-mode:deep(.ant-tabs-tab-active) {  
284 - border-bottom: 1px solid #eee;  
285 - }  
286 -  
287 - .split-screen-mode:deep(video) {  
288 - position: absolute;  
289 - height: calc(100%) !important;  
290 - }  
291 -  
292 - .split-screen-mode:deep(.d-player-control) {  
293 - z-index: 99;  
294 - }  
295 -  
296 .video-container { 293 .video-container {
297 .video-container-mask { 294 .video-container-mask {
298 opacity: 0; 295 opacity: 0;
@@ -306,8 +303,6 @@ @@ -306,8 +303,6 @@
306 } 303 }
307 304
308 .video-container-error-msk { 305 .video-container-error-msk {
309 - // opacity: 0;  
310 - // visibility: hidden;  
311 color: #000; 306 color: #000;
312 } 307 }
313 } 308 }
@@ -325,7 +320,6 @@ @@ -325,7 +320,6 @@
325 320
326 .split-mode-list:deep(.ant-col) { 321 .split-mode-list:deep(.ant-col) {
327 width: 100%; 322 width: 100%;
328 - // height: var(--height);  
329 height: 100%; 323 height: 100%;
330 } 324 }
331 </style> 325 </style>