四好公路
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

905 lines
48 KiB

import React, { useEffect, useState } from 'react';
import { connect } from 'react-redux';
import request from 'superagent'
import Hua from '../footer/leadership/centerleft/hudong'
import moment from 'moment';
import { OlMapRequest } from '$utils'
import { useRef } from 'react';
import { getReportList } from '../../../fillion/actions/patrol'
import AutoRollComponent from '../footer/build/AutoRollComponent'
import { Carousel } from 'antd'
import { CloseOutlined } from '@ant-design/icons'
export const busWillRun = [
{ text: '非运营', value: '0' },
{ text: '运营', value: '1' },
{ text: '维修', value: '2' },
{ text: '保养', value: '3' },
{ text: '专车', value: '4' },
{ text: '机动车', value: '5' },
{ text: '包车', value: '6' },
{ text: '班车', value: '7' },
{ text: '检车', value: '8' },
]
const codeMap = {
x: 'gpsxd',
y: 'gpsyd',
c: 'gpscd',
}
const OlMap = (props) => {
const { dispatch, actions, user, olMapArcgisHost, olMapGeoDataHost, patrolList, roadProjectList, tab, busRunTime, busLine, projectList } = props
const [olMapOpenData, setOlMapOpenData] = useState([])
const [olMap, setOlMap] = useState()
const [curClickCoordinate, setCurClickCoordinate] = useState([])
const [pointItem, setPointItem] = useState({})
//
const [busRunData, setBusRunData] = useState([])
const [reportRoadData, setReportRoadData] = useState([])
//
const curTab = useRef(tab)
useEffect(() => {
curTab.current = tab
setOlMapOpenData([])
setPointItem({})
setReportRoadData([])
if (olMap) {
olMap.closeOverlay('clickOpen')
olMap.closeOverlay('pointClickOpen')
olMap.removeGeometryLayer('geometry0')
if (tab != 'conserve') {
patrolList.forEach((d, index) => {
olMap.removeGeometryLayer('geometry_patrol_' + index)
})
}
if (tab != 'build') {
roadProjectList.forEach((d, index) => {
olMap.removeGeometryLayer('geometry_road_' + index)
olMap.removeGeometryLayer('geometry_road_' + d.id)
})
}
if (tab != 'operation') {
busRunData.forEach((d, index) => {
olMap.removeGeometryLayer('geometry_bus_' + index)
})
}
}
}, [tab])
useEffect(() => {
if (olMapGeoDataHost) {
let config = {
layerName: 'nanchang',
center: [116.08706, 28.602018], // 中心坐标
zoom: 10, // 缩放
minZoom: 8,
maxZoom: 21,
isMoveSelect: false, // 鼠标滑过是否选中
projection: 'EPSG:4326' // 坐标系
}
let arcgisUrls = {
nanchang: {
url: `${olMapArcgisHost || 'http://36.2.6.33:6080'}/arcgis/rest/services/PBDT/nachang/MapServer`,
},
}
let option = {
target: 'olMap', // 元素ID
config: config,
arcgisUrls, // 动态底图图层
onEvent: {
// 选中回调
onSelectClick: function (p) {
// console.log(p)
},
// 鼠标滑过回调
onPointerMove: function (p) {
// console.log(p)
},
}
}
let olMapTool = new OlMapTool(option)
olMapTool.map.on('dblclick', function (p) {
// console.log(p)
})
olMapTool.map.on('singleclick', function (p) {
setOlMapOpenData([])
setPointItem({})
setReportRoadData([])
olMapTool.closeOverlay('clickOpen')
olMapTool.closeOverlay('pointClickOpen')
olMapTool.removeGeometryLayer('geometry0')
setCurClickCoordinate(p.coordinate)
if (curTab.current == 'build') {
return
}
// 请求路线坐标
request.post(`${olMapGeoDataHost || 'http://36.2.6.32:8811'}/geoserver-pg/rest/bufferSearch`)
.type('form')
.send({
params: `{"layerName":"view_by_line","pageSize":1,"pageNum":1,"filter":"","isReturnGeometry":"true","spatialRel":"INTERSECTS","orderByFields":" sort1, sort2, lxbm, sxxfx, qdzh asc", "spatialFilter":"point(${p.coordinate[0]} ${p.coordinate[1]})","distance":20}`
})
.then(res => {
if (res.status == 200 && res.body && res.body.code == 1) {
const data = res.body.data
const { datalist } = data
let index = 0
for (let d of datalist.list) {
olMapTool.addGeometryJMLayer({
features: [
{
geometry: d.shape,
geometryType: 'LineString',
// geometryType: 'Point',
},
],
style: { stroke: { width: 5, color: '#9933FF' } },
selectStyle: { stroke: { width: 8, color: '#9933FF' } },
layerName: 'geometry' + index++
});
const config = {
id: 'clickOpen',
offset: [0, 25], // 偏移
position: p.coordinate, // 坐标
autoPan: true,
autoPanMargin: 100,
positioning: 'top-right'
}
// 注意 现在只取第一条数据 所以能在这里请求
// 这里请求的是路线的信息
request.post(`${olMapGeoDataHost || 'http://36.2.6.32:8811'}/geoserver-pg/rest/search`)
.type('form')
.send({
params: `{"layerName":"${d.tablename.toLowerCase()}","filter":"(roadcode = '${d.roadcode}')","spatialFilter":"","isReturnGeometry":"false","orderByFields":"roadcode, roadstart asc","spatialRel":"INTERSECTS","pageNum":1,"pageSize":1}`
})
.then(detailRes => {
if (detailRes.status == 200 && detailRes.body && detailRes.body.code == 1) {
const detailData = detailRes.body.data
const { datalist: detailDatalist } = detailData
for (let de of detailDatalist.list) {
setOlMapOpenData([{
n: '路段编码',
v: de['roadcode'],
}, {
n: '路段名称',
v: de['roadname'],
}, {
n: '起点名称',
v: de['f006'],
}, {
n: '起点桩号',
v: de['roadstart'],
}, {
n: '止点名称',
v: de['f010'],
}, {
n: '止点桩号',
v: de['roadends'],
}, {
n: '路段里程',
v: de['f067']
// !isNaN(de['roadends']) && !isNaN(de['roadstart']) ?
// de['roadends'] - de['roadstart']
// : '-',
}, {
n: '技术等级',
v: de['f014'],
map: [{ text: '高速公路', value: '1' }, { text: '一级公路', value: '2' }, { text: '二级公路', value: '3' }, { text: '三级公路', value: '4' }, { text: '四级公路', value: '5' }, { text: '等外公路', value: '6' }],
}, {
n: '路面类型',
v: de['f016'],
map: [{ text: '沥青混凝土', value: '11' }, { text: '水泥混凝土', value: '12' }, { text: '沥青贯入式', value: '21' }, { text: '沥青碎石', value: '22' }, { text: '沥青表面处治', value: '23' }, { text: '砂石路面', value: '31' }, { text: '石质路面', value: '32' }, { text: '渣石路面', value: '33' }, { text: '砖铺路面', value: '34' }, { text: '砼预制块', value: '35' }, { text: '无路面', value: '36' }]
},])
break
}
}
})
olMapTool.addOverlay('clickOpen', config)
break
}
}
})
})
setOlMap(olMapTool)
}
}, [olMapGeoDataHost])
useEffect(() => {
if (patrolList.length && olMap && tab == 'conserve') {
busRunData.forEach((d, index) => {
olMap.removeGeometryLayer('geometry_bus_' + index)
})
patrolList.forEach((d, index) => {
olMap.addGeometryLayer({
features: [
{
name: 'patrolPoint',
attributes: {
callbackParams: {
type: 'patrolPoint',
id: d.id,
},
callback: (p) => {
setPointItem(d)
olMap.addOverlay('pointClickOpen', {
id: 'pointClickOpen',
offset: [0, 4], // 偏移
position: [d.longitude, d.latitude], // 坐标
autoPan: true,
autoPanMargin: 100,
positioning: 'top-right'
})
// 请求路线坐标
if (d.code_road) {
let roadCodeStart = d.code_road[0]
let layerName = codeMap[roadCodeStart.toLowerCase()]
if (layerName) {
request.post(`${olMapGeoDataHost || 'http://36.2.6.32:8811'}/geoserver-pg/rest/search`)
.type('form')
.send({
params: `{"layerName":"${layerName}","filter":"(roadcode = '${d.code_road}')","spatialFilter":"","isReturnGeometry":"true","orderByFields":"roadcode, roadstart asc","spatialRel":"INTERSECTS","pageNum":1,"pageSize":99}`
})
.then(res => {
if (res.status == 200 && res.body && res.body.code == 1) {
const data = res.body.data
const { datalist } = data
if (datalist?.list?.length) {
let index = 0
for (let d of datalist.list) {
olMap.addGeometryJMLayer({
features: [
{
geometry: d.shape,
geometryType: 'LineString',
// geometryType: 'Point',
},
],
style: { stroke: { width: 5, color: '#9933FF' } },
selectStyle: { stroke: { width: 8, color: '#9933FF' } },
layerName: 'geometry' + index++
});
}
}
}
})
}
}
}
},
geometry: [d.longitude, d.latitude],
geometryType: 'Point',
},
],
style: {
icon: {
src: '/assets/images/gis/pointer.png',
scale: 1, // 图标引用
},
// stroke: { width: 1, color: '#ffff00' },
// circle: {
// radius: 12, // 直径
// fill: '#ff0000', // 颜色
// stroke: { width: 1, color: '#ffff00' },
// },
},
selectStyle: {
icon: {
src: '/assets/images/gis/pointer.png',
scale: 1, // 图标引用
},
// circle: {
// radius: 16, // 直径
// fill: '#ff0000', // 颜色
// stroke: { width: 2, color: '#ffff00' },
// },
// stroke: { width: 2, color: '#ffff00' },
},
layerName: 'geometry_patrol_' + index
});
});
}
}, [patrolList, olMap, tab])
useEffect(() => {
if (roadProjectList.length && olMap && tab == 'build') {
// roadProjectList.forEach((d, index) => {
// olMap.addGeometryLayer({
// features: [
// {
// name: 'roadPoint',
// attributes: {
// callbackParams: {
// type: 'roadPoint',
// id: d.id,
// },
// callback: (p) => {
// setPointItem(d)
// olMap.addOverlay('pointClickOpen', {
// id: 'pointClickOpen',
// offset: [0, 4], // 偏移
// position: [d.longitude, d.latitude], // 坐标
// // position: [115.944220000000, 28.545380000000],
// autoPan: true,
// autoPanMargin: 100,
// positioning: 'top-right'
// })
// // 查路线
// }
// },
// geometry: [d.longitude, d.latitude],
// // geometry: [115.944220000000, 28.545380000000],
// geometryType: 'Point',
// },
// ],
// style: {
// icon: {
// src: '/assets/images/gis/pointer.png',
// scale: 1, // 图标引用
// },
// },
// selectStyle: {
// icon: {
// src: '/assets/images/gis/pointer.png',
// scale: 1, // 图标引用
// },
// },
// layerName: 'geometry_road_' + index
// });
// });
}
}, [roadProjectList, olMap, tab])
useEffect(() => {
if (busRunTime && busRunTime.length) {
setBusRunData(busRunTime)
}
}, [busRunTime])
const drawBusRunPoint = () => {
patrolList.forEach((d, index) => {
olMap.removeGeometryLayer('geometry_patrol_' + index)
})
busRunData.forEach((d, index) => {
olMap.addGeometryLayer({
features: [
{
name: 'busPoint',
attributes: {
callbackParams: {
type: 'busPoint',
busNo: d.busNo,
},
callback: (p) => {
setPointItem(p)
setOlMapOpenData([{
n: '车牌号',
v: d.busNoChar
}, {
n: '司机',
v: d.employeeName
}, {
n: '工号',
v: d.opNo
}, {
n: '调度状态',
v: d.willRun,
map: busWillRun,
}, {
n: '实际发车时间',
v: d.lastDepTime
}, {
n: '定位时间',
v: d.siteTime
},])
olMap.addOverlay('clickOpen', {
id: 'clickOpen',
offset: [0, 4], // 偏移
position: [d.lng, d.lat], // 坐标
// position: [115.944220000000, 28.545380000000],
autoPan: true,
autoPanMargin: 100,
positioning: 'top-right'
})
}
},
geometry: [d.lng, d.lat],
// geometry: [115.944220000000, 28.545380000000],
geometryType: 'Point',
},
],
style: {
icon: {
src: '/assets/images/gis/bus.png',
scale: 0.7, // 图标引用
},
},
selectStyle: {
icon: {
src: '/assets/images/gis/bus.png',
scale: 0.8, // 图标引用
},
},
layerName: 'geometry_bus_' + index
});
});
}
useEffect(() => {
if (busRunData.length && olMap && tab == 'operation') {
if (!busLine.length) {
drawBusRunPoint()
}
}
}, [busRunData, olMap, tab])
useEffect(() => {
if (busLine && olMap && tab == 'operation') {
if (busLine.length) {
olMap.closeOverlay('clickOpen')
busRunData.forEach((d, index) => {
olMap.removeGeometryLayer('geometry_bus_' + index)
})
olMap.addGeometryLayer({
features: [
{
name: 'busLine',
attributes: {
},
geometry: busLine.map(b => {
return [b.pointLng, b.pointLat]
}),
// geometry: [115.944220000000, 28.545380000000],
geometryType: 'LineString',
style: { stroke: { width: 5, color: '#9933FF' } },
selectStyle: { stroke: { width: 8, color: '#9933FF' } },
},
],
style: { stroke: { width: 5, color: '#9933FF' } },
selectStyle: { stroke: { width: 8, color: '#9933FF' } },
layerName: 'geometry_bus_line'
});
olMap.setCenter([
(busLine[0].pointLng + busLine[busLine.length - 1].pointLng) / 2,
(busLine[0].pointLat + busLine[busLine.length - 1].pointLat) / 2
])
} else {
drawBusRunPoint()
}
} else if (tab != 'operation' && olMap) {
olMap.removeGeometryLayer('geometry_bus_line')
}
}, [busLine, olMap, tab])
useEffect(async () => {
if (olMap) {
if (tab == 'build') {
const roadRes = await Promise.all(projectList.map((d, index) => {
let roadCodeStart = d.roadCodeStart ? d.roadCodeStart[0] : 'N'
let layerName = codeMap[roadCodeStart.toLowerCase()]
if (layerName) {
return request.post(`${olMapGeoDataHost || 'http://36.2.6.32:8811'}/geoserver-pg/rest/search`)
.type('form')
.send({
params: `{"layerName":"${layerName}","filter":"(roadcode = '${d.roadCodeStart}')","spatialFilter":"","isReturnGeometry":"true","orderByFields":"roadcode, roadstart asc","spatialRel":"INTERSECTS","pageNum":1,"pageSize":99}`
})
} else {
return new Promise(resolve => setTimeout(() => resolve(), 0));
}
}))
let renderIndex = 0
for (let res of roadRes) {
const corData = projectList[renderIndex]
if (res) {
if (res.status == 200 && res.body && res.body.code == 1) {
const data = res.body.data
const { datalist } = data
if (datalist?.list?.length) {
let dataIndex = 0
for (let d of datalist.list) {
olMap.addGeometryJMLayer({
features: [
{
geometry: d.shape,
geometryType: 'LineString',
// geometryType: 'Point',
attributes: {
callbackParams: {},
callback: (p, x) => {
let extent = p?.selected[0]?.values_?.geometry?.flatCoordinates
let coordinate = []
if (extent && extent.length) {
let coordinateIndex = Math.ceil((extent.length - 1) / 2)
if (coordinateIndex % 2) {
coordinateIndex -= 1
}
coordinate = [extent[coordinateIndex], extent[coordinate + 1]]
}
if (coordinate.length) {
setReportRoadData([])
setPointItem(corData)
setOlMapOpenData([{
n: '项目名称',
v: corData.entryName
}, {
n: '项目规模(公里)',
v: corData.projectMileage
}, {
n: '项目投资(万元)',
v: corData.investment
}, {
n: '业主单位',
v: corData.buildUnit,
}, {
n: '施工单位',
v: corData.constructionUnit
}, {
n: '开工日期',
v: corData.startTime ? moment(corData.startTime).format('YYYY-MM-DD') : ''
},])
olMap.addOverlay('clickOpen', {
id: 'clickOpen',
offset: [0, 4], // 偏移
position: coordinate, // 坐标
// position: [115.944220000000, 28.545380000000],
autoPan: true,
autoPanMargin: 100,
positioning: 'top-right'
})
}
}
},
},
],
style: { stroke: { width: 5, color: '#9933FF' } },
selectStyle: { stroke: { width: 8, color: '#9933FF' } },
layerName: 'geometry_build_road_' + renderIndex
});
}
}
}
}
if (corData.roadCodeStart) {
// 画对应的巡查上报的点
const corProjectRoadReport = roadProjectList.find(d => d.project_name == corData.entryName)
if (corProjectRoadReport) {
const d = corProjectRoadReport
olMap.addGeometryLayer({
features: [
{
name: 'roadPoint',
attributes: {
callbackParams: {
type: 'roadPoint',
id: d.id,
},
callback: (p) => {
setPointItem(d)
setReportRoadData([])
olMap.addOverlay('pointClickOpen', {
id: 'pointClickOpen',
offset: [0, 4], // 偏移
position: [d.longitude, d.latitude], // 坐标
// position: [115.944220000000, 28.545380000000],
autoPan: true,
autoPanMargin: 100,
positioning: 'top-right'
})
}
},
geometry: [d.longitude, d.latitude],
// geometry: [115.944220000000, 28.545380000000],
geometryType: 'Point',
},
],
style: {
icon: {
src: '/assets/images/gis/pointer.png',
scale: 1, // 图标引用
},
},
selectStyle: {
icon: {
src: '/assets/images/gis/pointer.png',
scale: 1, // 图标引用
},
},
layerName: 'geometry_road_' + d.id
});
}
}
renderIndex++
}
} else {
projectList.forEach((d, index) => {
olMap.removeGeometryLayer('geometry_build_road_' + index)
})
}
}
}, [projectList, olMap, tab])
const isRoadProject = pointItem.report_type == 'road'
// const isBusPoint = pointItem.busNoChar
return (
<div id="olMap" style={{ position: 'absolute', height: '100%', width: "100%" }}>
<div slot="overlays" style={{ display: 'none', }}>
<div id="clickOpen"
style={{
backgroundImage: `url(../../../../../assets/images/leadership/beijinglan.png)`,
minWidth: 340,
backgroundPosition: 'center',
backgroundSize: '100% 100%',
minHeight: 180,
padding: '24px',
backgroundRepeat: 'no-repeat',
color: '#fff',
overflow: 'auto',
}}>
{
olMapOpenData.map(s => {
return (
<div style={{ display: 'flex' }}>
<div style={{ width: 100, textAlign: 'right' }}>{s.n} </div>
<div style={{ flex: 1 }}>
{
s.map ?
s.map.find(sm => sm.value == s.v)?.text
: s.v || s.v == 0 ?
s.v
: '-'
}
</div>
</div>
)
})
}
{
pointItem.roadCodeStart ?
<a style={{ float: 'right' }} onClick={() => {
dispatch(getReportList({
reportType: 'road',
keyword: pointItem.entryName
})).then(res => {
if (res.success) {
let data = res.payload.data || []
if (!data.length) {
message.warning('暂无上报记录')
} else {
setReportRoadData(data)
}
}
})
}}>上报记录</a>
: ''
}
</div>
</div>
<div slot="overlays" style={{ display: 'none', }}>
<div id="pointClickOpen" style={{
width: "400px", zIndex: 100, right: "24%", marginTop: "0", top: "25%", backgroundImage: `url(../../../../../assets/images/leadership/beijinglan.png)`, backgroundPosition: 'center',
backgroundSize: '100% 100%',
padding: '24px',
backgroundRepeat: 'no-repeat',
}}>
{/* <img src='/assets/images/leadership/beijinglan.png' style={{ width: "100%", height: "100%" }} /> */}
<div style={{ display: "flex", }}>
<div style={{ width: "50%", height: "100%", }}>
{
pointItem.id ?
<Hua key={pointItem.id} shuzu={
isRoadProject ?
[{
"imgs": pointItem.scene_pic && pointItem.scene_pic.length ?
pointItem.scene_pic[0] : ""
}] :
[{
"imgs": pointItem.conserve_after_pic && pointItem.conserve_after_pic.length ?
pointItem.conserve_after_pic[0] : ""
}, {
"imgs": pointItem.conserve_before_pic && pointItem.conserve_before_pic.length ?
pointItem.conserve_before_pic[0] : ""
}, {
"imgs": pointItem.conserve_underway_pic && pointItem.conserve_underway_pic.length ?
pointItem.conserve_underway_pic[0] : ""
}]}
/>
: ''
}
</div>
<div style={{ width: "50%", left: "50%", }}>
<p style={{ marginTop: "20px", color: "#FFFFFF", fontSize: "16px", fontFamily: "YouSheBiaoTiHei" }}>
{
isRoadProject ?
pointItem.user_name || '--'
:
<>
{
pointItem.road_section_start ? pointItem.road_section_start : ""
}{
pointItem.road_section_start && pointItem.road_section_end ? "——" : ""
}{
pointItem.road_section_end ? pointItem.road_section_end : ""
}{
pointItem.road_section_start || pointItem.road_section_end ? "" : "--"
}
</>
}
</p>
{
isRoadProject ?
<p style={{ color: "rgba(216,240,255,0.8)", fontSize: "14px", fontFamily: "PingFangSC-Regular, PingFang SC" }}>
{
isRoadProject ? '上报内容' : '养护内容'
}
<span style={{ color: "#EEF4FF", marginLeft: "30px", fontFamily: " PingFangSC-Medium, PingFang SC", overflowWrap: 'break-word' }}>
{
pointItem.content ? pointItem.content : "--"
}
</span>
</p> : ''
}
{
isRoadProject ? '' :
<p style={{ color: "rgba(216,240,255,0.8)", fontSize: "14px", fontFamily: "PingFangSC-Regular, PingFang SC" }}>
负责人
<span style={{ color: "#EEF4FF", marginLeft: "45px", fontFamily: " PingFangSC-Medium, PingFang SC" }}>
{
pointItem.user_name ? pointItem.user_name : "--"
}
</span>
</p>
}
<p style={{ color: "rgba(216,240,255,0.8)", fontSize: "14px", fontFamily: "PingFangSC-Regular, PingFang SC" }}>
日期
<span style={{ color: "#EEF4FF", marginLeft: "60px", fontFamily: " PingFangSC-Medium, PingFang SC" }}>
{
pointItem.time ? moment(pointItem.time).format("YYYY-MM-DD") : "--"
}
</span>
</p>
</div>
</div>
{
isRoadProject && pointItem.project ?
<div style={{ paddingTop: 24 }}>
{[{
n: '项目名称',
k: 'entryName',
}, {
n: '项目规模(公里)',
k: 'projectMileage',
}, {
n: '项目投资(万元)',
k: 'investment',
}, {
n: '开工时间',
k: 'startTime',
},].map(s => {
return (
<p style={{ color: "rgba(216,240,255,0.8)", fontSize: "14px", fontFamily: "PingFangSC-Regular, PingFang SC" }}>
{s.n}
<span style={{ color: "#EEF4FF", marginLeft: "45px", fontFamily: " PingFangSC-Medium, PingFang SC" }}>
{
s.k == 'startTime' ?
pointItem.project[s.k] ? moment(pointItem.project[s.k]).format("YYYY-MM-DD") : "--"
:
pointItem.project[s.k] || "--"
}
</span>
</p>
)
})}
</div>
: ''
}
</div>
</div>
{/* 展示在建项目的上报记录 */}
{
tab == 'build' && reportRoadData.length ?
<div style={{
backgroundColor: 'rgba(0, 33, 98, 0.8)',
height: 'calc(100vh - 103px)',
top: 0,
width: 320,
position: 'absolute',
right: 485,
zIndex: 9999
}}>
<div>
<CloseOutlined style={{
fontSize: 'large',
color: "#fff",
margin: 12
}} onClick={() => {
setReportRoadData([])
}} />
</div>
<AutoRollComponent
content={reportRoadData.map(r => {
return (
<div style={{
display: 'flex', backgroundImage: 'url(/assets/images/leadership/beijinglan.png)',
backgroundSize: '100% 100%',
margin: 8
}}>
<div style={{
width: 80, margin: "4px 0px 0px 4px",
}}>
{
r.scenePic?.length > 0 ?
<Carousel autoplay >
{
r.scenePic?.map(v => <img className='picfileimg'
style={{ width: 80, display: 'inline-block', }}
src={
v.startsWith("http") ? v :
`${localStorage.getItem("qndmn")}/${v}`
}
width={`200px`}
/>)
}
</Carousel>
: ''
}
</div>
<div style={{ flex: 1, marginLeft: 4, marginTop: 4, display: "flex", flexDirection: "column", justifyContent: "space-around" }}>
<p style={{ color: "rgba(216,240,255,0.8)", fontSize: "14px", fontFamily: "PingFangSC-Regular, PingFang SC", display: "flex" }}>
上报时间:
<span style={{
color: "#EEF4FF", marginLeft: "10px", fontFamily: " PingFangSC-Medium, PingFang SC",
overflow: 'hidden', whiteSpace: "nowrap", textOverflow: "ellipsis"
}}>
{r.time ? moment(r.time).format("YYYY-MM-DD") : "--"}
</span>
</p>
<p style={{ color: "rgba(216,240,255,0.8)", fontSize: "14px", fontFamily: "PingFangSC-Regular, PingFang SC", display: "flex" }}>
上报内容:
<span title={r.content} style={{
color: "#EEF4FF", marginLeft: "10px", fontFamily: " PingFangSC-Medium, PingFang SC",
overflow: 'hidden', whiteSpace: "nowrap", textOverflow: "ellipsis", display: 'inline-block', width: 120
}}>
{r.content}
</span>
</p>
</div>
</div>
)
})}
containerStyle={{ position: "relative", height: "90%", }}
divHeight={'calc(100vh - 154px)'} divId={"chart-overview-report-list"}
/>
</div>
: ''
}
</div >
)
}
function mapStateToProps (state) {
const { auth, global, busRunTime, busLine, projectList } = state;
return {
user: auth.user,
actions: global.actions,
olMapArcgisHost: global.olMapArcgisHost,
olMapGeoDataHost: global.olMapGeoDataHost,
busRunTime: busRunTime.data || [],
busLine: busLine.data || [],
projectList: projectList.data || []
};
}
export default connect(mapStateToProps)(OlMap);