Merge branch 'qzc-dev'

lsf-dev
秦子超 2024-09-29 09:04:21 +08:00
commit e2105c1019
9 changed files with 284 additions and 370 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -9,7 +9,7 @@ function initState() {
AdcdLayer: false,//行政区划
AdcdBorderInLayer: true,//乡镇边界
AdcdAllLayer: false,//县行政区划图层
HeLiuZhuJiLayer:true,//12条河流注记
HeLiuZhuJiLayer:false,//12条河流注记
RealDrpLayer: false,//雨量监测
RealDrpAllLayer: false,//监测站网-雨情站点
HdswLayer: false,//河道水位监测

View File

@ -122,8 +122,8 @@ export const runtime = createModel<RootModel>()({
...state,
cameraTarget: {
bound: [
[114.966, 31.459, 0],
[114.976, 31.479, 0],
[114.746, 31.479, 0],
[114.776, 31.509, 0],
],
zoom: localStorage.getItem('mapZoom'),
pitch: config.homePitch,

View File

@ -103,6 +103,11 @@ const apiurl = {
gsPage: service_fxdd + "/stWaterR/list",//供水分页
yj_qxyj: service_fxdd + "/stQxWarnR/home/warn",//首页气象预警
xcxj_dcl: service_fxdd + "/inspect/detail/handle/list",//巡查巡检-待处理问题
xcxj_by: service_fxdd + "/inspect/task/month",//巡查巡检-本月巡查记录
xcxj_bn: service_fxdd + "/inspect/task/year",//巡查巡检-本年巡查记录
},
//防汛调度-小玉潭
fxdd_xyt: {

View File

@ -34,7 +34,7 @@ export default class Map2D extends BaseMap {
init() {
console.log("++++++++++初始化地图、图层++++++++++");
// const extent = [114.65, 30.85 , 115.48, 31.60]; //视图中心位置
const extent = [114.966, 31.459 , 114.976, 31.479]; //视图中心位置
const extent = [114.746, 31.479 , 114.776, 31.509]; //视图中心位置
console.log("@@@@ map init 38++++", extent);
// const fitE = [extent[0] + ew, extent[1] + eh, extent[2] - ew, extent[3] - eh];

View File

@ -109,7 +109,7 @@ export default class LayerMgr2D extends LayerMgr {
dispatch.map.setMap(this.map);
dispatch.map.setClickLoopBtn(false);
dispatch.map.setClickLoopBtn(false);
//离线地图
this.addLayer(new OfflineMap2D({ visible: visible[OfflineMap2D.LayerName], setting, dispatch }));
@ -117,20 +117,20 @@ export default class LayerMgr2D extends LayerMgr {
this.addLayer(new SatelliteImage2D({ visible: visible[SatelliteImage2D.LayerName], setting, dispatch }));
//乡镇边界
this.addLayer(new AdcdBorderInLayer2D({ visible: visible[AdcdBorderInLayer2D.LayerName], setting, dispatch }));
//咸丰县外的边界
//县外的边界
// this.addLayer(new BouaOutsideLayer2D({ visible: visible[BouaOutsideLayer2D.LayerName], setting, dispatch }));
//河流
this.addLayer(new HLLayer2D2({ visible: visible[HLLayer2D2.LayerName], setting, dispatch }));//河流线-卫星图
// this.addLayer(new HLLayer2D2({ visible: visible[HLLayer2D2.LayerName], setting, dispatch }));//河流线-卫星图 //缺失
this.addLayer(new HLLayer2D({ visible: visible[HLLayer2D.LayerName], setting, dispatch }));//河流线-矢量图
this.addLayer(new HL2Layer2D({ visible: visible[HL2Layer2D.LayerName], setting, dispatch }));//河流面
// this.addLayer(new HL2Layer2D({ visible: visible[HL2Layer2D.LayerName], setting, dispatch }));//河流面 //缺失
//省级公路
this.addLayer(new highroadLayer2D({ visible: visible[highroadLayer2D.LayerName], setting, dispatch }));
// this.addLayer(new highroadLayer2D({ visible: visible[highroadLayer2D.LayerName], setting, dispatch })); //缺失
//咸丰边界
this.addLayer(new BouaLayer2D({ visible: visible[BouaLayer2D.LayerName], setting, dispatch }));
// this.addLayer(new BouaLayer2D({ visible: visible[BouaLayer2D.LayerName], setting, dispatch }));//缺失
// this.addLayer(new BouaInLayer2D({ visible: visible[BouaInLayer2D.LayerName], setting, dispatch }));
// this.addLayer(new BouaOutLayer2D({ visible: visible[BouaOutLayer2D.LayerName], setting, dispatch }));

View File

@ -21,41 +21,52 @@ const Page = ({mySetTms}) => {
const dispatch = useDispatch();
let mapObj = useSelector(s => s.map.map)
const [ dataObj, setDataObj ] = useState({})
const [ open, setOpen ] = useState(false)
const [ key , setkey ] = useState('')
const [ tms , setTms ] = useState([
moment().add(-1,'days').format('YYYY-MM-DD HH:mm:ss'),
moment().format('YYYY-MM-DD HH:mm:ss'),
])
const [ data, setData ] = useState([])
const [ data2, setData2 ] = useState([])
const [ data3, setData3 ] = useState(0)
const columns1 = [
{ title: '巡查完成日期', key: 'stnm', dataIndex: 'stnm',align: "center", ellipsis: true },
{ title: '巡查人', key: 'drp', dataIndex: 'drp',align: "center" },
{ title: '异常项次', key: 'drp', dataIndex: 'drp',align: "center" },
{ title: '巡查完成日期', key: 'finishTime', dataIndex: 'finishTime',align: "center", ellipsis: true },
{ title: '巡查人', key: 'inspectUserName', dataIndex: 'inspectUserName',align: "center" },
{ title: '异常项次', key: 'problemNum', dataIndex: 'problemNum',align: "center" },
];
const columns2 = [
{ title: '上报时间', key: 'stnm', dataIndex: 'stnm',align: "center", ellipsis: true },
{ title: '巡检问题描述', key: 'drp', dataIndex: 'drp',align: "center" },
{ title: '上报时间', key: 'handleTime', dataIndex: 'handleTime',align: "center", ellipsis: true },
{ title: '巡检问题描述', key: 'problemDesc', dataIndex: 'problemDesc',align: "center" },
];
useEffect(()=>{
(async()=>{
const params = {
start:tms[0],
end:tms[1]
(
async()=>{
const { code, data } = await httppost2(apiurl.home.xcxj_dcl)
if(code!==200){
message.error('请求失败')
return
}
setData(data)
},
async()=>{
const { code, data } = await httppost2(apiurl.home.xcxj_by)
if(code!==200){
message.error('请求失败')
return
}
setData2(data)
},
async()=>{
const { code, data } = await httppost2(apiurl.home.xcxj_bn)
if(code!==200){
message.error('请求失败')
return
}
setData3(data)
}
const { code, data } = await httppost2(apiurl.home.yj_qxyj,params)
if(code!==200){
message.error('请求失败')
return
}
mySetTms([
moment(tms[0]),
moment(tms[1])
])
setDataObj(data)
})()
)()
},[])
@ -104,16 +115,16 @@ const Page = ({mySetTms}) => {
<div className="xunchaxunjian">
<div className="bodyBox">
<div className="bodyBoxItem">
<div className="num" style={{color:'#04D919'}}>{dataObj.qxWarn?.length||0}</div>
<div className="num" style={{color:'#04D919'}}>{data3||0}</div>
<div className="content">本月巡查</div>
</div>
<div className="bodyBoxItem">
<div className="num" style={{color:'#04D919'}}>{dataObj.shiftWarn?.length||0}</div>
<div className="num" style={{color:'#04D919'}}>{data2?.length||0}</div>
<div className="content">本年巡查</div>
<div></div>
</div>
<div className="bodyBoxItem">
<div className="num">{dataObj.pressWarn?.length||0}</div>
<div className="num">{data?.length||0}</div>
<div className="content">未处理异常</div>
<div></div>
</div>
@ -133,10 +144,7 @@ const Page = ({mySetTms}) => {
sticky
columns={columns1}
pagination={false}
dataSource={[
{stnm:'05-19 日常巡检',drp:10,data:{"type":"MultiLineString","coordinates":[[[108.946468916,29.839743716],[108.94648914,29.839752481],[108.946539808,29.839746046],[108.946613728,29.839728456],[108.946710354,29.839695317]]]}},
{stnm:'2',drp:11,data:{"type":"MultiLineString","coordinates":[[[108.81539631,29.812984419],[108.815424872,29.813001491],[108.815487593,29.813061075],[108.815576108,29.813157977],[108.815677919,29.813283716]]]}},
]}
dataSource={data2}
scroll={{ y: "300px"}}
onRow={
(data)=>({
@ -170,10 +178,7 @@ const Page = ({mySetTms}) => {
sticky
columns={columns2}
pagination={false}
dataSource={[
{stnm:'1',drp:10},
{stnm:'2',drp:11},
]}
dataSource={data}
scroll={{ y: "300px"}}
onRow={
(data)=>({

View File

@ -1,4 +1,5 @@
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';
@ -10,6 +11,7 @@ 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
@ -180,6 +182,7 @@ const Page = () => {
const [damList, setDamList ] = useState([])
const [videoList, setVideoList ] = useState([])
const [videoArr, setvideoArr] = useState({})
const [open, setOpen] = useState(false)
const hole = 3;//zmobj.gaorNum;
@ -235,7 +238,7 @@ const Page = () => {
}
const getVideoSrc = async (current) => {
const res = await httpget2(`${apiurl.gsxl.zfzl.videosrc}${'32023a7f27d8448fa10511f24e96acff'}`)
const res = await httpget2(`${apiurl.gsxl.zfzl.videosrc}${current}`)//32023a7f27d8448fa10511f24e96acff
if (res.code == 200 && res.data?.length !== 0) {
setvideoArr({src:res.data})
}else{
@ -338,11 +341,44 @@ const Page = () => {
}
</div>
</div>
<div className='sg_zmjk_right_more'>查看更多信息</div>
<div className='sg_zmjk_right_more' onClick={()=>setOpen(true)}>查看更多信息</div>
</dvi>
</div>
</div>
</div>
<Modal
open={open}
width={1000}
title=""
footer={null}
onCancel={() => {
setOpen(false)
}}
>
<div style={{height:'600px'}}>
<Tabs>
<Tabs.TabPane tab="基本信息" key="item-1">
<Descriptions bordered size="small" column={3} >
<Descriptions.Item label="启闭设备类型" style={{ width: '16.5%' }}>{{1:'卷扬式',2:'螺杆式',3:'凹轮式',4:'涡轮式',5:'丝杆式'}?.[data?.hdgrTp]||'-'}</Descriptions.Item>
<Descriptions.Item label="动力类型" style={{ width: '16.5%' }}>{{1:'手动',2:'电动',3:'手电两用'}?.[data?.pwrTp]||'-'}</Descriptions.Item>
<Descriptions.Item label="水闸类型" style={{ width: '16.5%' }}>{{1:'分(泄)洪闸',2:'节制闸',3:'排(退)水闸',4:'引(进)水闸',5:'挡潮闸',6:'船闸',9:'其他'}?.[data?.wagaType]||'-'}</Descriptions.Item>
<Descriptions.Item label="进口高程">{data?.inEle||'-'} m</Descriptions.Item>
<Descriptions.Item label="出口高程">{data?.outEle||'-'} m</Descriptions.Item>
<Descriptions.Item label="闸门孔数">{data?.gaorNum||'-'} </Descriptions.Item>
<Descriptions.Item label="设计流量">{data?.dsfl||'-'} /s</Descriptions.Item>
<Descriptions.Item label="实达流量">{data?.stfl||'-'} /s</Descriptions.Item>
<Descriptions.Item label="闸门尺寸">{data?.gateSize||'-'} m*m</Descriptions.Item>
<Descriptions.Item label="工程等级">{{1:'',2:'Ⅱ',3:'Ⅲ',4:'Ⅳ',5:''}?.[data?.engGrad]||'-'}</Descriptions.Item>
<Descriptions.Item label="运行状况">{{1:'在用良好',2:'在用故障',3:'停用'}?.[data?.runStat]||'-'}</Descriptions.Item>
<Descriptions.Item label="建成时间">{data?.compDate||'-'}</Descriptions.Item>
</Descriptions>
</Tabs.TabPane>
<Tabs.TabPane tab="工程图片" key="item-2">
<Image width={800} src={url + data?.files?.filePath} alt='' />
</Tabs.TabPane>
</Tabs>
</div>
</Modal>
</>
);
}