import React, { useEffect, useMemo, useState } from 'react' import { Modal, Tabs, Descriptions, Image } from 'antd'; import { Stage } from 'react-konva'; import Sider from './Sider'; import Topper1 from './Topper1'; import Topper2 from './Topper2'; import ZmColumns from './ZmColumns'; import { contextCoordinates } from './coordinates'; import { renAperture } from '../../../utils/utils'; import HFivePlayer from '../../../components/video1Plary' import './index.less'; import { httpget, httpget2, httppost2 } from '../../../utils/request'; import apiurl from '../../../service/apiurl'; const url = "http://223.75.53.141:9102/test.by-lyf.tmp" const CanvasW = 1080 const CanvasH = 640 const waterRatio = 0 const zmobj ={ "hpCode": "HP0074208040002120", "stcd": "4265630075", "ctrlType": "PLC", "ctrlProtocol": "PLC", "uprzStcd": null, "dwrzStcd": null, "flowStcd": null, "gaType": "waga", "ctrlPass": null, "maxHgt": 1.9, "minHgt": 0, "name": "五岭包节制闸", "ghtX": null, "ghtY": null, "irrCode": "D00000020", "irrName": "三干渠", "engCode": "ENG100076", "engName": "三干渠管理处", "orgCode": "A07", "gaorNum": 3, "wagaType": "节制闸", "plcType": null, "bim": 0, "vip": 0, "miu": null, "lgtd": 112.242945, "lttd": 30.848166, "runtime": [ null, { "stcd": "4265630075", "gateNumber": 1, "realAperture": 376, "setAperture": 0, "sensorLever": null, "altitudeLever": null, "remoteSignal": 0, "powerSignal": 0, "openingSignal": 0, "closeingSignal": 0, "errorSignal": 0, "openedSignal": 0, "closedSignal": 0, "tm": "2024-09-25 20:03:26", "_online": true }, { "stcd": "4265630075", "gateNumber": 2, "realAperture": 388, "setAperture": 0, "sensorLever": null, "altitudeLever": null, "remoteSignal": 0, "powerSignal": 0, "openingSignal": 0, "closeingSignal": 0, "errorSignal": 0, "openedSignal": 0, "closedSignal": 0, "tm": "2024-09-25 20:03:26", "_online": true }, { "stcd": "4265630075", "gateNumber": 3, "realAperture": 394, "setAperture": 0, "sensorLever": null, "altitudeLever": null, "remoteSignal": 0, "powerSignal": null, "openingSignal": 0, "closeingSignal": 0, "errorSignal": 0, "openedSignal": 0, "closedSignal": 0, "tm": "2024-09-25 20:03:26", "_online": true } ], "real": { "stcd": "4265630075", "stationName": "五岭包节制闸", "z1": null, "zz1": null, "z1tm": null, "z2": null, "zz2": null, "z2tm": null, "hq": null, "hqtm": null, "demtl": null }, "cctvs": [], "_idx": 88, "_fav": false, "_sort": 10086 } const runtime = [ null, { "stcd": "4265630075", "gateNumber": 1, "realAperture": 976, "setAperture": 0, "sensorLever": null, "altitudeLever": null, "remoteSignal": 0, "powerSignal": 0, "openingSignal": 0, "closeingSignal": 0, "errorSignal": 0, "openedSignal": 0, "closedSignal": 0, "tm": "2024-09-25 20:03:31" }, { "stcd": "4265630075", "gateNumber": 2, "realAperture": 388, "setAperture": 0, "sensorLever": null, "altitudeLever": null, "remoteSignal": 0, "powerSignal": 0, "openingSignal": 0, "closeingSignal": 0, "errorSignal": 0, "openedSignal": 0, "closedSignal": 0, "tm": "2024-09-25 20:03:31" }, { "stcd": "4265630075", "gateNumber": 3, "realAperture": 394, "setAperture": 0, "sensorLever": null, "altitudeLever": null, "remoteSignal": 0, "powerSignal": null, "openingSignal": 0, "closeingSignal": 0, "errorSignal": 0, "openedSignal": 0, "closedSignal": 0, "tm": "2024-09-25 20:03:31" } ] const myType = { // 闸前水位站 2闸后水位站 3流量站 '1':'闸前水位/水深(m)', '2':'闸后水位/水深(m)', '3':'流量 (m³/s)', } const Page = () => { const [itemIndex,setItemIndex] = useState(null) const [data,setData] = useState({}) const [list, setList ] = useState([]) const [damList, setDamList ] = useState([]) const [videoList, setVideoList ] = useState([]) const [videoArr, setvideoArr] = useState({}) const [open, setOpen] = useState(false) const hole = 3;//zmobj.gaorNum; const xunit = CanvasW / (2 + hole); const pts = contextCoordinates(xunit, hole); const eqpnoList = useMemo(() => damList ? new Array(damList.length).fill(0).map((o, index) => index) : [], [damList]); useEffect(()=>{ getList() },[]) const getList = async()=>{ const {code, data} = await httppost2(apiurl.zmjk.getList) if(code!==200){ return } const obj = data[0]||{} getInformation(obj.gateCode) getDamData(obj.stcd) getVideo(obj.gateCode) setData(obj) } const getInformation = async(gateCode)=>{ const {code, data} = await httpget2(apiurl.zmjk.getInformation,{gateCode}) if(code!==200){ return } setList(data) } const getDamData = async(stcd)=>{ const {code, data} = await httpget2(apiurl.zmjk.getDamData,{stcd}) if(code!==200){ return } const list = [] data.map((item)=>{ list.push({ ...item // ,realAperture:item.realAperture*1000 }) }) setDamList(list) } const getVideo = async(valveCode)=>{ const {code, data} = await httppost2(apiurl.zmjk.getVideo,{valveCode}) if(code!==200){ return } setVideoList(data) } const getVideoSrc = async (current) => { const res = await httpget2(`${apiurl.gsxl.zfzl.videosrc}${current}`)//32023a7f27d8448fa10511f24e96acff if (res.code == 200 && res.data?.length !== 0) { setvideoArr({src:res.data}) }else{ setvideoArr({}) } } return ( <>