diff --git a/code/VideoAccess-VCMP/web/client/assets/images/openness/blue1.5.png b/code/VideoAccess-VCMP/web/client/assets/images/openness/blue1.5.png new file mode 100644 index 0000000..8cd3c59 Binary files /dev/null and b/code/VideoAccess-VCMP/web/client/assets/images/openness/blue1.5.png differ diff --git a/code/VideoAccess-VCMP/web/client/assets/images/openness/blue2.png b/code/VideoAccess-VCMP/web/client/assets/images/openness/blue2.png new file mode 100644 index 0000000..2401b2e Binary files /dev/null and b/code/VideoAccess-VCMP/web/client/assets/images/openness/blue2.png differ diff --git a/code/VideoAccess-VCMP/web/client/src/sections/openness/components/container.jsx b/code/VideoAccess-VCMP/web/client/src/sections/openness/components/container.jsx index c196a3b..9c93378 100644 --- a/code/VideoAccess-VCMP/web/client/src/sections/openness/components/container.jsx +++ b/code/VideoAccess-VCMP/web/client/src/sections/openness/components/container.jsx @@ -5,15 +5,15 @@ import { VideoPlay } from "$components"; import { useState } from 'react'; -const Container = ({ videoObj, pageSize }) => { +const Container = ({ videoObj, pageSize, showHeader, videoPlay }) => { const [videoWidth, setVideoWidth] = useState() const [videoHeight, setVideoHeight] = useState() // console.log(videoObj); useEffect(() => { const resize_ = () => { - setVideoWidth(document.getElementById('video' + videoObj.key).clientWidth) - setVideoHeight(document.getElementById('video' + videoObj.key).clientHeight) + setVideoWidth(document.getElementById('video' + videoObj.key).clientWidth) + setVideoHeight(document.getElementById('video' + videoObj.key).clientHeight) } resize_() window.addEventListener('resize', resize_); //只要窗口殴大小发生像素变化就会触发 @@ -25,11 +25,11 @@ const Container = ({ videoObj, pageSize }) => { useEffect(() => { setVideoWidth(document.getElementById('video' + videoObj.key).clientWidth) setVideoHeight(document.getElementById('video' + videoObj.key).clientHeight) - }, [pageSize]) + }, [pageSize, showHeader]) // console.log(videoWidth, videoHeight); return (
- {videoWidth && videoHeight ? + {videoWidth && videoHeight ? videoPlay ? { videoObj={videoObj.camera} videoStyle='true' containerId={videoObj.key} - local={true} /> : ""} + local={true} /> : + : ""}
{videoObj?.label}
) diff --git a/code/VideoAccess-VCMP/web/client/src/sections/openness/components/videoCard.jsx b/code/VideoAccess-VCMP/web/client/src/sections/openness/components/videoCard.jsx index 16de5bf..3f44c54 100644 --- a/code/VideoAccess-VCMP/web/client/src/sections/openness/components/videoCard.jsx +++ b/code/VideoAccess-VCMP/web/client/src/sections/openness/components/videoCard.jsx @@ -4,7 +4,7 @@ import { TreeSelect, Tree, Form, Button, Popover, Tag, Switch, Input, Row, Col } import Container from "./container"; -const VideoCard = ({ data, pageSize , key}) => { +const VideoCard = ({ data, pageSize ,showHeader, key,videoPlay}) => { let span = 8 @@ -33,6 +33,8 @@ const VideoCard = ({ data, pageSize , key}) => { diff --git a/code/VideoAccess-VCMP/web/client/src/sections/openness/components/videoScreen.jsx b/code/VideoAccess-VCMP/web/client/src/sections/openness/components/videoScreen.jsx index 3428566..37d20c7 100644 --- a/code/VideoAccess-VCMP/web/client/src/sections/openness/components/videoScreen.jsx +++ b/code/VideoAccess-VCMP/web/client/src/sections/openness/components/videoScreen.jsx @@ -3,14 +3,16 @@ import { connect } from 'react-redux'; import { TreeSelect, Tree, Form, Button, Popover, Tag, Switch, Input, Row, Pagination, Checkbox, InputNumber } from '@douyinfe/semi-ui'; import './videoScreen.less' import VideoCard from './videoCard' -import { version } from 'less'; +import { ReminderBox } from "../../../components/index"; +import PerfectScrollbar from "perfect-scrollbar"; let timing +let projectScrollbar; const VideoScreen = ({ treeData, filterGroup, videoPlay, template, headerName, showHeader }) => { // console.log({ 视频: treeData }); // console.log(filterGroup); // console.log(headerName); - // console.log(videoPlay); + console.log(videoPlay); // console.log(template); // console.log(showHeader); @@ -112,12 +114,25 @@ const VideoScreen = ({ treeData, filterGroup, videoPlay, template, headerName, s const [searchs, setSearchs] = useState({}) //搜索 const [polling, setPolling] = useState(false) //轮询 const [pollingTime, setPollingTime] = useState(1) //轮询时间 + const [reminder, setReminder] = useState(false); //提醒弹框 const api = useRef(); const pageRef = useRef(page); + const GONGGESCREEN = 'gonggeScreen' const chooseAll = useRef(true); + useEffect(() => { + projectScrollbar = new PerfectScrollbar("#tree", { + suppressScrollX: true, + }); + }, []) + useEffect(() => { + const domProject = document.getElementById("tree"); + if (domProject && projectScrollbar) { + projectScrollbar.update(); + } + }) useEffect(() => { console.log(45464); let query = [] @@ -213,19 +228,26 @@ const VideoScreen = ({ treeData, filterGroup, videoPlay, template, headerName, s }) console.log(videoData); - let nameData = videoData?.find(v => v?.label.includes(searchs.name)) - console.log(nameData); - - filterGroup - + if (searchs?.name) { + videoData = videoData?.filter(v => v.label.includes(searchs.name)) + } if (searchs?.field0) { - let videoId = [] //视频id - for (let i in searchs) { - console.log(i, searchs[i]); - - } - + videoData = videoData?.filter(({ cameraId }) => searchs?.field0.some(v => v == cameraId)) + } + if (searchs?.field1) { + videoData = videoData?.filter(({ cameraId }) => searchs?.field1.some(v => v == cameraId)) + } + if (searchs?.field2) { + videoData = videoData?.filter(({ cameraId }) => searchs?.field2.some(v => v == cameraId)) + } + if (searchs?.field3) { + videoData = videoData?.filter(({ cameraId }) => searchs?.field3.some(v => v == cameraId)) } + if (searchs?.field4) { + videoData = videoData?.filter(({ cameraId }) => searchs?.field4.some(v => v == cameraId)) + } + console.log(videoData); + setPlayData(videoData) }, [searchs]) @@ -237,21 +259,22 @@ const VideoScreen = ({ treeData, filterGroup, videoPlay, template, headerName, s if (timing) clearInterval(timing) if (polling) { timing = setInterval(() => { - let pages = pageRef.current + 1 + let pages = pageRef.current + 1 if (pages > Math.ceil(playData?.length / pageSize)) { setPage(1) - pageRef.current=1 + pageRef.current = 1 } else { setPage(pages) - pageRef.current=pages + pageRef.current = pages } }, pollingTimes * 1000 * 5) } - }, [polling, playData,pollingTime]) + }, [polling, playData, pollingTime]) + useEffect(() => { setPage(1) - pageRef.current=1 + pageRef.current = 1 }, [pageSize]) //确定查询条件下视频总数 @@ -274,7 +297,9 @@ const VideoScreen = ({ treeData, filterGroup, videoPlay, template, headerName, s //宫格设置点击 const flipScreens = (data) => { - console.log(data); + const remind = localStorage.getItem(GONGGESCREEN) || 'false' + console.log(remind); + console.log(true); switch (data) { case "单屏": setPageSize(1) @@ -284,9 +309,11 @@ const VideoScreen = ({ treeData, filterGroup, videoPlay, template, headerName, s break; case "6分屏": setPageSize(6) + if (remind == 'false') setReminder(true) break; case "12分屏": setPageSize(12) + if (remind == 'false') setReminder(true) break; default: break @@ -345,27 +372,34 @@ const VideoScreen = ({ treeData, filterGroup, videoPlay, template, headerName, s }} /> +
+ { + // console.log(e); + setLeftValue(e) + }} + onSelect={(e) => { + // console.log(e); + }} + style={{ color: '#FFFFFF' }} + /> +
- { - // console.log(e); - setLeftValue(e) - }} - onSelect={(e) => { - // console.log(e); - }} - style={{ color: '#FFFFFF' }} - /> { - setSelectAll(!selectAll) - chooseAll.current = !chooseAll.current + setSelectAll(checked?.target.checked) + if (checked?.target.checked) { + setLeftValue(treeData.map(v => v.value)) + } else { + setLeftValue([]) + } }} ria-label="Checkbox 示例" style={{ position: 'absolute', right: 10, bottom: 10 }} @@ -442,9 +476,9 @@ const VideoScreen = ({ treeData, filterGroup, videoPlay, template, headerName, s
{/* 视频 */}
- + {playData?.slice((page - 1) * pageSize, page * pageSize)?.map(v => { - return + return })}
{ setPage(currentPage) - pageRef.current= currentPage + pageRef.current = currentPage }} /> : ""}
@@ -499,7 +533,7 @@ const VideoScreen = ({ treeData, filterGroup, videoPlay, template, headerName, s setPolling(v) }} aria-label="a switch for demo" style={{ border: ' 1px solid #D9D9D9', }} checked={polling} /> 轮询间隔 - { setPollingTime(Number(value.replace(/[^0-9]/ig, ''))) }} /> @@ -520,6 +554,20 @@ const VideoScreen = ({ treeData, filterGroup, videoPlay, template, headerName, s
+ + { + setReminder(false) + }} + close={() => { + setReminder(false) + }} + /> ) diff --git a/code/VideoAccess-VCMP/web/client/src/sections/openness/components/videoScreen.less b/code/VideoAccess-VCMP/web/client/src/sections/openness/components/videoScreen.less index c4b9e35..bfb7c13 100644 --- a/code/VideoAccess-VCMP/web/client/src/sections/openness/components/videoScreen.less +++ b/code/VideoAccess-VCMP/web/client/src/sections/openness/components/videoScreen.less @@ -3,9 +3,13 @@ .semi-icon, .semi-checkbox-addon, //全选文字 .semi-form-field-label-text, + .semi-page-item, span { color: #fff; } + .semi-page-item-active{ + color: rgb(17, 17, 17); + } .semi-checkbox-inner-display { //树状多选框 border: 1px solid rgba(255, 255, 255, 0.488);