import React, { useState, useEffect } from "react"; import { connect } from "react-redux"; import { SideSheet, Tabs, TabPane, Button } from "@douyinfe/semi-ui"; import copy from "copy-to-clipboard"; import moment from "moment"; import PerfectScrollbar from "perfect-scrollbar"; let projectScrollbar; let equipmentScrollbar; function SideSheets (props) { const { dispatch, actions, user, loading, visible, close, cameraSetup, rowId, venderList, accessType, } = props; const { equipmentWarehouse } = actions; const [clickStyle, setclickStyle] = useState(); const [nvrDetails, setNvrDetails] = useState({ station: [] }); const [highStandard, setHighStandard] = useState(false); const list = ["项目名称", "关联结构物", "关联测点", "关联监测因素"]; const information = { nvr: [ { name: "基础信息", basics: [ { name: "设备名称:", key: "name" }, { name: "设备编号:", key: "serialNo" }, { name: "接入方式:", key: "accessWay" }, { name: "厂商:", key: "venderId" }, { name: "添加账号:", key: "createUser" }, { name: "添加时间:", key: "createTime" }, { name: "行政区划:", key: "regionCode" }, { name: "设备安装位置:", key: "latitude", difference: "line", }, ], }, { name: "接入信息", access: [ { name: "SIP服务编号:", key: "Serial" }, { name: "SIP域:", key: "Realm" }, { name: "SIP端口号:", key: "ListenAddr" }, { name: "通道数量:", key: "channelCount", difference: "difference" }, { name: "心跳周期:", key: "Expires" }, { name: "最大心跳次数:", key: "RemoveBanInterval" }, { name: "注册密码:", key: "Password" }, { name: "注册有效期:", key: "" }, { name: "接入识别模块:", key: "" }, ], }, { name: "摄像头信息", CameraInformation: [ { name: "通道1", value1: "145641201564-1", value2: "哦哦哦我我我喔噢喔喔我", }, { name: "通道2", value1: "145641201564-2", value2: "哦哦哦哦哦噢噢欧欧哦", }, ], }, ], camera: [ { name: "基础信息", basics: [ { name: "设备名称:", key: "name" }, { name: "SIP编号/设备编号:", key: nvrDetails.serialNo ? "serialNo" : "sip", }, { name: "接入方式:", key: "type" }, { name: "厂商:", key: "venderId" }, { name: "添加账号:", key: "createUser" }, { name: "添加时间:", key: "createTime" }, { name: "设备安装位置:", key: "latitude", difference: "line", }, ], }, { name: "复制直播地址", liveBroadcast: [ { name: "HLS地址", key: "hls" }, { name: "FLV地址", key: "flv" }, { name: "RTMP地址", key: "rtmp" }, { name: "EZOPEN地址", key: "ezopen" }, { name: "ONVIF地址", key: "onvif" }, ], }, { name: "复制回收地址", recovery: [ { name: "云储存地址", key: "cloud" }, { name: "本地储存地址", key: "local" }, ], }, ], }; const styles = { width: 180, height: 64, textAlign: "center", background: "url(/assets/images/background/backGround.png)", backgroundSize: "100% 100%", padding: "12px 17px 12px 17px", margin: "30px 0 0 10px", lineHeight: "24px", overflow: "hidden", textOverflow: "ellipsis", display: "-webkit-box", WebkitLineClamp: "2", WebkitBoxOrient: "vertical", zIndex: 5, }; useEffect(() => { dispatch( equipmentWarehouse[cameraSetup ? "getCameraDetails" : "getNvrDetails"]( rowId ) ).then((res) => { console.log(res.payload.data); setNvrDetails(res.payload.data); projectScrollbar = new PerfectScrollbar("#project_information", { suppressScrollX: true, }); equipmentScrollbar = new PerfectScrollbar("#equipment_information", { suppressScrollX: true, }); }); }, []); useEffect(() => { const domProject = document.getElementById("project_information"); if (domProject && projectScrollbar) { projectScrollbar.update(); } const domEquipment = document.getElementById("equipment_information"); if (domEquipment && equipmentScrollbar) { equipmentScrollbar.update(); } }); const statusNvr = nvrDetails.gbNvr const statusCamera = nvrDetails.gbCamera console.log(); function colorStatus (data) { switch (data) { case "ON": return "green" case "ONLINE": return "green" case "OFF": return "grey" default: return "blue" } } return ( 污水管理出出口 : <>智慧设备NVR } style={{ background: "#F9FBFF" }} size="large" onCancel={() => { close(); }} >
{list.map((item, index) => { return (
{item}
); })}
{nvrDetails ? nvrDetails.station.length == 0 ? "" : nvrDetails.station.map((item, index) => { return item.structure.projects.map((v, i) => { return (
{v.name}
{item.structure.name}
{item.name}
{item.factor.name}
); }); }) : ""}
{nvrDetails ? (cameraSetup ? information.camera : information.nvr).map( (item, index) => { let str = []; let high = nvrDetails.gbCamera ? nvrDetails.gbCamera.playUrl ? nvrDetails.gbCamera.playUrl.liveUrl ? nvrDetails.gbCamera.playUrl.liveUrl.hd : "" : "" : "" if (index > 0) { str.push( 无法显示 ); } str.push(
{item.name} {cameraSetup ? ( index == 1 && high ? (
) : ( "" ) ) : ( "" )}
); //基础信息 if (index == 0) { item.basics.map((item, index) => { if (item.difference == "line") { str.push(
{item.name} {nvrDetails.latitude ? `${nvrDetails[item.key]},${nvrDetails.longitude}` : "未知"}
); } else { str.push(
{item.name} {item.key == "type" ? nvrDetails.type ? accessType.find( (v) => v.key == nvrDetails.type ).name : "" : item.key == "venderId" ? nvrDetails.venderId ? venderList.find( (v) => v.id == nvrDetails.venderId ).name : "未知" : item.key == "createUser" ? nvrDetails.createUser ? nvrDetails.createUser.namePresent : "" : item.key == "createTime" ? moment(nvrDetails.createTime).format( "YYYY-MM-DD HH:MM:SS" ) : nvrDetails[item.key]}
); } return str; }); } //接入信息/复制直播地址 let broadcast = nvrDetails.gbCamera ? nvrDetails.gbCamera.playUrl ? nvrDetails.gbCamera.playUrl.liveUrl ? nvrDetails.gbCamera.playUrl.liveUrl[highStandard ? "hd" : "sd"] : "" : "" : "" if (index == 1) { if (cameraSetup) { if (broadcast) { for (let key in broadcast) { str.push(
{ copy(broadcast[key] ? broadcast[key] : "无相关地址"); setclickStyle(key); }} >
{key}
) } } else { str.push(
无相关信息
) } } else { item.access.map((item, index) => { str.push(
{item.name} {item.difference == "difference" ? nvrDetails[item.key] : nvrDetails.accessInfo ? nvrDetails.accessInfo[item.key] : ""}
); return str; }) } } //摄像头信息/复制回收地址 let recovery = nvrDetails.gbCamera ? nvrDetails.gbCamera.playUrl ? nvrDetails.gbCamera.playUrl.replayUrl : "" : "" if (index == 2) { if (cameraSetup) { if (recovery) { for (let key in recovery) { str.push(
{ copy(recovery[key] ? recovery[key] : "无相关地址"); // alert("复制成功"); setclickStyle(key); }} >
{`${key}`}
) } } else { str.push(
无相关信息
) } } else { let nvrCamera = nvrDetails.camera ? nvrDetails.camera : [] if (nvrCamera.length > 0) { nvrCamera.map((item, index) => { str.push(
{item.channelName}

{item.id}

{item.name}

); return str; }) } else { str.push(
无相关信息
) } } } return str; } ) : ""}
); } function mapStateToProps (state) { const { auth, global, members } = state; return { loading: members.isRequesting, user: auth.user, actions: global.actions, global: global, members: members.data, }; } export default connect(mapStateToProps)(SideSheets);