import React, { useState ,useRef,useEffect} from 'react' import { connect } from "react-redux"; import { Modal,Spin } from '@douyinfe/semi-ui'; import { IconChevronLeft,IconChevronRight } from '@douyinfe/semi-icons'; import FluoriteCamera from "./fluoriteCamera"; import NvrCamera from './nvrCamera'; import IpcCamera from './ipcCamera'; import CascadeCamera from './cascadeCamera'; import "./cameraModal.less"; function cameraModal(props){ const {modalName,visible,close}=props const fluoriteRef = useRef(); const ipcRef = useRef(); const cascadeRef = useRef(); const [isloading,setloading] = useState(false);//是否显示loading const [loadingTip,setloadingTip] = useState('获取中...请稍后...');//loading tip的值 const [okText,setokText] = useState('确定')//ok弹框text 右边 const [cancelText,setcancelText] = useState('取消')//取消弹框text 左边 const opts ={//添加完成确认后通知 title:'Hi', content:'添加成功', duration:3 } const [clickNum,setclickNum] = useState(1);//点击的第几个 const cameraList=[//循环摄像头列表 { id:1, img:'/assets/images/background/ysy.png', title:'萤石云平台摄像头', text:'通过萤石云平台rtmp地址配置完成推流的平台摄像头。' },{ id:2, img:'/assets/images/background/nvr.png', title:'NVR摄像头', text:'通过连接NVR(网络硬盘录像机)进行视频流推送的摄像头' },{ id:3, img:'/assets/images/background/ipc.png', title:'IPC网络摄像头', text:'通过网络与监控设备直连完成视频流推送的摄像头设备' },{ id:4, img:'/assets/images/background/cascade.png', title:'级联摄像头', text:'通过GB/T28181协议级联的平台摄像头,常用于平台对接推送' }, ] const [showcameraList,setcameraList]=useState(cameraList.slice(0,3));//轮播图 function handleOk() {//点击弹框确定 右边按钮 if(clickNum==1){ console.log('1111111111111'); }else if(clickNum==2){ console.log('22222222222222'); }else if(clickNum==3){ console.log('33333333333333'); }else if(clickNum==4){ console.log('44444444444444'); } // Notification.success(opts) // close(); } function handleAfterClose(){//在关闭之后 } function handleCancel() {//点击弹框取消 左边按钮 close(); } function handleChoose(id){//选择摄像头接入类型 setclickNum(id); } function turnLift(){//轮播图向左 setcameraList(cameraList.slice(0,3)) } function turnRight(){//轮播图向右 setcameraList(cameraList.slice(1,4)) } function onReset(){ if(clickNum==1){ fluoriteRef.current.resetFluoriteCamera() }else if(clickNum==3){ ipcRef.current.resetIpcCamera() }else if(clickNum==4){ } } function toTest(){ if(clickNum==1){ fluoriteRef.current.fluoriteCameraForm().then(values=>{//表单校验成功 console.log('111111111',values); }) .catch(errors=>{//表单校验失败 console.log('errors',errors); }) }else if(clickNum==3){ ipcRef.current.ipcCameraForm().then(values=>{//表单校验成功 console.log('111111111',values); }) .catch(errors=>{//表单校验失败 console.log('errors',errors); }) }else if(clickNum==4){ cascadeRef.current.cascadeCameraForm() .then(values=>{//表单校验成功 let chooseList=[] let nvrCameraList=[{ id:10, name:'南昌县1', number:'111111111111111111', support:false, change:false, },{ id:20, name:'南昌县2', number:'222222222222222222', support:false, change:false, },{ id:30, name:'南昌县3', number:'333333333333333333', support:false, change:false, },{ id:40, name:'南昌县4', number:'444444444444444444', support:false, change:false, }] cascadeRef.current.setNVRcameraList(nvrCameraList) for (let index = 0; index < nvrCameraList.length; index++) { chooseList.push(nvrCameraList[index].id) } cascadeRef.current.setNvrCheckList(chooseList) cascadeRef.current.setIsAllChoose(true) }) .catch(errors=>{//表单校验失败 console.log('errors',errors); }) } } return ( <>
接入类型
{showcameraList.map((item,index)=>(
handleChoose(item.id)}>
设置
{item.title}
{item.text}
{clickNum===item.id?
1
:''}
))}
配置属性
{clickNum!==2?
1 重置
1 测试
:''}
{clickNum==1? :clickNum==2? :clickNum==3? :}
); } function mapStateToProps(state) { const { auth, global, members } = state; return { loading: members.isRequesting, user: auth.user, actions: global.actions, members: members.data, }; } export default connect(mapStateToProps)(cameraModal);