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(true); const [solid, setSolid] = useState("solid"); const [light, setLight] = useState("light"); 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) => { setNvrDetails(res.payload.data); console.log(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 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 = []; if (index > 0) { str.push( 无法显示 ); } str.push(
{item.name} {cameraSetup ? ( index == 1 ? (
) : ( "" ) ) : ( "" )}
); //基础信息 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; }); } //接入信息/复制直播地址 if (index == 1) { (cameraSetup ? item.liveBroadcast : item.access).map( (item, index) => { if (cameraSetup) { nvrDetails.videoUrl ? nvrDetails.videoUrl.liveUrl ? str.push(
{ if (highStandard) { copy(nvrDetails.videoUrl.liveUrl.hd[item.key]); } else { copy(nvrDetails.videoUrl.liveUrl.sd[item.key]); } setclickStyle(item.name); }} >
{item.name}
) : "" : ""; } else { str.push(
{item.name} {item.difference == "difference" ? nvrDetails[item.key] : nvrDetails.accessInfo ? nvrDetails.accessInfo[item.key] : ""}
); } return str; } ); } //摄像头信息/复制回收地址 if (index == 2) { (cameraSetup ? item.recovery : nvrDetails.camera ? nvrDetails.camera : []).map( (item, index) => { if (cameraSetup) { nvrDetails.videoUrl?nvrDetails.videoUrl.replayUrl? str.push(
{ copy(nvrDetails.videoUrl.replayUrl[item.key]); // alert("复制成功"); setclickStyle(item.name); }} >
{item.name}
):"":""; } else { str.push(
{item.channelName}

{item.id}

{item.name}

); } return str; } ); } 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);