feat(): 图层增加

lsf-dev
李神峰 2025-05-28 17:05:53 +08:00
parent 060ffc0c05
commit 6cb42396b3
21 changed files with 649 additions and 709 deletions

BIN
public/assets/gqbg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
public/assets/gwbg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 618 KiB

BIN
public/assets/xxzl.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View File

@ -350,7 +350,7 @@ const map = {
Object.keys(DCPJ_TYPES).forEach(key => {
layerVisible['Dcpj_' + key + 'Layer'] = false;
});
} else if (id === 303) {
} else if (id === 303 || id === 305 || id === 306) {
layerVisible = {
RealDrpLayer: false,
RealHDLayer: false,
@ -448,6 +448,20 @@ const map = {
map.setLayoutProperty('热力图', 'visibility', 'none');
}
if (id === 306) {
dispatch.map.setLayerSetting({ dom: false });
map.setLayoutProperty('管网图', 'visibility', 'visible');
} else {
// dispatch.map.setLayerSetting({dom: true});
map.setLayoutProperty('管网图', 'visibility', 'none');
}
if (id === 503) {
dispatch.map.setLayerSetting({ dom: false });
map.setLayoutProperty('灌区图', 'visibility', 'visible');
} else {
// dispatch.map.setLayerSetting({dom: true});
map.setLayoutProperty('灌区图', 'visibility', 'none');
}
if (id != 504) {
dispatch.runtime.setYyfa({})
}

View File

@ -162,13 +162,17 @@ export default function calcLayout(view, rightStack, hidePanels) {
}else if (view === 506) {
left = [
{ key: '天气' },
{ key: '水政统计', style: { height: '40%', flexGrow: 1 } },
{ key: '水政统计', style: { height: '60%'} },
]
leftFullHeight = true;
}else if (view === 507) {
left = [
{ key: '天气'},
{ key: '天气' },
{ key: '信息总览', style: { height: '60%'} },
]
leftFullHeight = true;
}
if (rightEx) {

View File

@ -96,6 +96,8 @@ export const InfoPops = ({ type, properties, dispatch }) => {
return <LlsbPop record={properties} dispatch={dispatch} />
}else if (type === '监测站') {
return <ScjcPop record={properties} dispatch={dispatch} />
}else if (type === 'shuichang') {
return <ScjcPop record={properties} dispatch={dispatch} />
}
return null;

View File

@ -20,6 +20,28 @@ export default {
'paint': {
'raster-opacity': 1,
}
},
gqmap: {
'id': '灌区图',
'type': 'raster',
'source': 'gqmapImg',
'layout': {
'visibility':'none'
},
'paint': {
'raster-opacity': 1,
}
},
gwmap: {
'id': '管网图',
'type': 'raster',
'source': 'gwImg',
'layout': {
'visibility':'none'
},
'paint': {
'raster-opacity': 1,
}
},
water: {
'id': '水系',

View File

@ -123,6 +123,8 @@ class LayerMgr {
layers: [
base.background,
base.heatmap,
base.gwmap,
base.gqmap,
this.layerMap.TerrainLayer.getStyle(0),
this.layerMap.TerrainLayer.getStyle(1),

View File

@ -44,326 +44,11 @@ const ShapeStyle = {
};
const page1 = [
{
"stcd": "716164901",
"type": "sk",
"hasRz": true,
"stnm": "界岭水库",
"adcd": "421181107000",
"wscd": null,
"importancy": 0,
"lgtd": 115.450833,
"lttd": 31.302222,
"elev": 0,
"damel": 385.6,
"dsflz": 384.01,
"fsltdz": 382.84,
"ddz": 370.4,
"zcxsw": 382.84,
"drpTm": "2025-04-11T05:00:00.000Z",
"today": 0,
"h1": 0,
"h3": 0,
"h6": 0,
"h12": 0,
"h24": 0,
"h48": 0,
"drpState": 2,
"rz": 378.57,
"w": 0.77,
"a_fsltdz": -4.269999999999982,
"rzTm": "2025-04-11T05:00:00.000Z",
"rzWarning": 0,
"rzState": 2,
"pic": [
{
"stcd": "716164901",
"tm": "2023-03-12T07:03:00.000Z",
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716164901/20230312150300.jpg"
},
{
"stcd": "716164901",
"tm": "2023-03-12T07:16:00.000Z",
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716164902/20230312151600.jpg"
}
],
"aRz": -4.27
},
{
"stcd": "716165051",
"type": "sk",
"hasRz": true,
"stnm": "蛤蟆石水库",
"adcd": "421181107000",
"wscd": null,
"importancy": 0,
"lgtd": 115.452778,
"lttd": 31.258056,
"elev": 0,
"damel": 189.9,
"dsflz": 187,
"fsltdz": 184.52,
"ddz": 174.9,
"zcxsw": 184.52,
"drpTm": "2025-04-11T05:00:00.000Z",
"today": 0,
"h1": 0,
"h3": 0,
"h6": 0,
"h12": 0,
"h24": 0,
"h48": 0,
"drpState": 2,
"rz": 181.33,
"w": 0.657,
"a_fsltdz": -3.1899999999999977,
"rzTm": "2025-04-11T05:00:00.000Z",
"rzWarning": 0,
"rzState": 2,
"pic": [
{
"stcd": "716165051",
"tm": "2023-03-12T07:21:00.000Z",
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716165051/20230312152100.jpg"
},
{
"stcd": "716165051",
"tm": "2023-03-12T07:16:00.000Z",
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716165052/20230312151600.jpg"
}
],
"aRz": -3.19
},
{
"stcd": "716165101",
"type": "sk",
"hasRz": true,
"stnm": "游家冲水库",
"adcd": "421181107000",
"wscd": null,
"importancy": 0,
"lgtd": 115.295556,
"lttd": 31.202778,
"elev": 0,
"damel": 476.62,
"dsflz": 475.08,
"fsltdz": 473.2,
"ddz": 456.8,
"zcxsw": 473.2,
"drpTm": "2025-04-11T06:00:00.000Z",
"today": 0,
"h1": 0,
"h3": 0,
"h6": 0,
"h12": 0,
"h24": 0,
"h48": 0,
"drpState": 2,
"rz": 464.51,
"w": 0.668,
"a_fsltdz": -8.689999999999998,
"rzTm": "2025-04-11T06:00:00.000Z",
"rzWarning": 0,
"rzState": 2,
"pic": [
{
"stcd": "716165101",
"tm": "2023-03-12T07:03:00.000Z",
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716165101/20230312150300.jpg"
},
{
"stcd": "716165101",
"tm": "2023-03-12T07:20:00.000Z",
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716165102/20230312152000.jpg"
}
],
"aRz": -8.69
},
{
"stcd": "716167061",
"type": "sk",
"hasRz": true,
"stnm": "花桥水库",
"adcd": "421181107000",
"wscd": null,
"importancy": 0,
"lgtd": 115.444444,
"lttd": 31.274444,
"elev": 0,
"damel": 18,
"dsflz": 14.58,
"fsltdz": 269.4,
"ddz": 4.5,
"zcxsw": 269.4,
"drpTm": "2025-03-22T08:00:00.000Z",
"today": 0,
"h1": 0,
"h3": 0,
"h6": 0,
"h12": 0,
"h24": 0,
"h48": 0,
"drpState": 2,
"rz": 265.86,
"w": 0.31,
"a_fsltdz": -3.5399999999999636,
"rzTm": "2025-03-22T08:00:00.000Z",
"rzWarning": 0,
"rzState": 2,
"pic": [
{
"stcd": "716167061",
"tm": "2025-03-06T04:13:00.000Z",
"url": "http://223.75.53.106:8891/skjgimages/2025/0306/716167061/20250306121300.jpg"
},
{
"stcd": "716167061",
"tm": "2025-03-06T04:14:00.000Z",
"url": "http://223.75.53.106:8891/skjgimages/2025/0306/716167062/20250306121400.jpg"
}
],
"aRz": -3.54
},
{
"stcd": "716130461",
"type": "sk",
"hasRz": true,
"stnm": "垅下水库",
"adcd": "421181107000",
"wscd": null,
"importancy": 0,
"lgtd": 115.364722,
"lttd": 31.218056,
"elev": 0,
"damel": 24.1,
"dsflz": 22.69,
"fsltdz": 303.2,
"ddz": 7.4,
"zcxsw": 303.2,
"drpTm": "2025-04-11T05:00:00.000Z",
"today": 0,
"h1": 0,
"h3": 0,
"h6": 0,
"h12": 0,
"h24": 0,
"h48": 0,
"drpState": 2,
"rz": 302.02,
"w": 0.212,
"a_fsltdz": -1.1800000000000068,
"rzTm": "2025-04-11T05:00:00.000Z",
"rzWarning": 0,
"rzState": 2,
"pic": [
{
"stcd": "716130461",
"tm": "2023-03-12T07:03:00.000Z",
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716130461/20230312150300.jpg"
},
{
"stcd": "716130461",
"tm": "2023-03-12T07:11:00.000Z",
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716130462/20230312151100.jpg"
}
],
"aRz": -1.18
},
{
"stcd": "716124861",
"type": "sk",
"hasRz": true,
"stnm": "鲤鱼河水库",
"adcd": "421181003000",
"wscd": null,
"importancy": 0,
"lgtd": 114.968056,
"lttd": 31.204722,
"elev": 0,
"damel": 81.1,
"dsflz": 79.02,
"fsltdz": 78.4,
"ddz": 71.4,
"zcxsw": 78.4,
"drpTm": "2025-04-11T05:00:00.000Z",
"today": 0,
"h1": 0,
"h3": 0,
"h6": 0,
"h12": 0,
"h24": 0,
"h48": 0,
"drpState": 2,
"rz": 75.79,
"w": 0.3,
"a_fsltdz": -2.6099999999999994,
"rzTm": "2025-04-11T05:00:00.000Z",
"rzWarning": 0,
"rzState": 2,
"pic": [
{
"stcd": "716124861",
"tm": "2023-03-12T07:02:07.000Z",
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716124861/20230312150207.jpg"
},
{
"stcd": "716124861",
"tm": "2023-03-12T07:03:44.000Z",
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716124862/20230312150344.jpg"
}
],
"aRz": -2.61
},
{
"stcd": "716112801",
"type": "sk",
"hasRz": true,
"stnm": "黑龙潭水库",
"adcd": "421181113000",
"wscd": null,
"importancy": 0,
"lgtd": 114.846944,
"lttd": 31.441944,
"elev": 0,
"damel": 135.91,
"dsflz": 134.31,
"fsltdz": 132.3,
"ddz": 119.6,
"zcxsw": 132.3,
"drpTm": "2025-04-11T06:00:00.000Z",
"today": 0,
"h1": 0,
"h3": 0,
"h6": 0,
"h12": 0,
"h24": 0,
"h48": 0,
"drpState": 2,
"rz": 125.17,
"w": 1.092,
"a_fsltdz": -7.13000000000001,
"rzTm": "2025-04-11T06:00:00.000Z",
"rzWarning": 0,
"rzState": 2,
"pic": [
{
"stcd": "716112801",
"tm": "2023-11-03T05:05:00.000Z",
"url": "http://223.75.53.106:8891/skjgimages/2023/1103/716112801/20231103130500.jpg"
},
{
"stcd": "716112801",
"tm": "2023-11-03T05:12:00.000Z",
"url": "http://223.75.53.106:8891/skjgimages/2023/1103/716112802/20231103131200.jpg"
}
],
"aRz": -7.13
},
{
"stcd": "716113001",
"type": "sk",
"hasRz": true,
"stnm": "朝阳水库",
"stnm": "监测点9",
"adcd": "421181113000",
"wscd": null,
"importancy": 0,
@ -405,361 +90,13 @@ const page1 = [
"aRz": -94.17
},
{
"stcd": "716121901",
"type": "sk",
"hasRz": true,
"stnm": "地畈水库",
"adcd": "421181113000",
"wscd": null,
"importancy": 0,
"lgtd": 114.883056,
"lttd": 31.417778,
"elev": 0,
"damel": 106.4,
"dsflz": 105.82,
"fsltdz": 105.09,
"ddz": 98.19,
"zcxsw": 105.09,
"drpTm": "2025-04-11T06:00:00.000Z",
"today": 0,
"h1": 0,
"h3": 0,
"h6": 0,
"h12": 0,
"h24": 0,
"h48": 0,
"drpState": 2,
"rz": 100.22,
"w": 0.036,
"a_fsltdz": -4.8700000000000045,
"rzTm": "2025-04-11T06:00:00.000Z",
"rzWarning": 0,
"rzState": 2,
"pic": [
{
"stcd": "716121901",
"tm": "2023-11-13T05:01:00.000Z",
"url": "http://223.75.53.106:8891/skjgimages/2023/1113/716121901/20231113130100.jpg"
},
{
"stcd": "716121901",
"tm": "2023-11-13T05:04:00.000Z",
"url": "http://223.75.53.106:8891/skjgimages/2023/1113/716121902/20231113130400.jpg"
}
],
"aRz": -4.87
},
{
"stcd": "716123561",
"type": "sk",
"hasRz": true,
"stnm": "大松树水库",
"adcd": "421181113000",
"wscd": null,
"importancy": 0,
"lgtd": 114.791389,
"lttd": 31.236944,
"elev": 0,
"damel": 10.54,
"dsflz": 9.12,
"fsltdz": 78.7,
"ddz": 6,
"zcxsw": 78.7,
"drpTm": "2025-04-11T06:00:00.000Z",
"today": 0,
"h1": 0,
"h3": 0,
"h6": 0,
"h12": 0,
"h24": 0,
"h48": 0,
"drpState": 2,
"rz": 76.51,
"w": 0.121,
"a_fsltdz": -2.1899999999999977,
"rzTm": "2025-04-11T06:00:00.000Z",
"rzWarning": 0,
"rzState": 2,
"pic": [
{
"stcd": "716123561",
"tm": "2023-11-14T06:04:00.000Z",
"url": "http://223.75.53.106:8891/skjgimages/2023/1114/716123561/20231114140400.jpg"
},
{
"stcd": "716123561",
"tm": "2023-10-23T07:41:00.000Z",
"url": "http://223.75.53.106:8891/skjgimages/2023/1023/716123562/20231023154100.jpg"
}
],
"aRz": -2.19
},
{
"stcd": "61612580",
"type": "sk",
"hasRz": true,
"stnm": "芭茅河水库",
"adcd": "421181110000",
"wscd": null,
"importancy": 0,
"lgtd": 115.101389,
"lttd": 31.307778,
"elev": 0,
"damel": 127.8,
"dsflz": 125.57,
"fsltdz": 122.44,
"ddz": 106.94,
"zcxsw": 122.44,
"drpTm": "2025-05-28T06:00:00.000Z",
"today": 8.5,
"h1": 8.5,
"h3": 8.5,
"h6": 8.5,
"h12": 8.5,
"h24": 8.5,
"h48": 8.5,
"drpState": 1,
"rz": 117.52,
"w": 6.011,
"a_fsltdz": -4.920000000000002,
"rzTm": "2025-05-28T06:00:00.000Z",
"rzWarning": 0,
"rzState": 1,
"aRz": -4.92
},
{
"stcd": "7CS000231",
"type": "sk",
"hasRz": true,
"stnm": "刘家冲水库",
"adcd": "421181100000",
"wscd": null,
"importancy": 0,
"lgtd": 115.048056,
"lttd": 31.335556,
"elev": 0,
"damel": 79.6,
"dsflz": 78.65,
"fsltdz": 72.05,
"ddz": 69.55,
"zcxsw": 72.05,
"drpTm": "2023-11-20T01:00:00.000Z",
"today": 0,
"h1": 0,
"h3": 0,
"h6": 0,
"h12": 0,
"h24": 0,
"h48": 0,
"drpState": 2,
"rz": 76.49,
"w": 0.049,
"a_fsltdz": 4.439999999999998,
"rzTm": "2025-04-11T06:00:00.000Z",
"rzWarning": 1,
"rzState": 2,
"pic": [
{
"stcd": "7CS000231",
"tm": "2023-11-20T01:04:18.000Z",
"url": "http://223.75.53.106:8891/skjgimages/2023/1120/7CS000231/20231120090418.jpg"
},
{
"stcd": "7CS000231",
"tm": "2023-11-20T01:07:54.000Z",
"url": "http://223.75.53.106:8891/skjgimages/2023/1120/7CS000232/20231120090754.jpg"
}
],
"aRz": 4.44
},
{
"stcd": "716111301",
"type": "sk",
"hasRz": true,
"stnm": "蛤蟆岗水库",
"adcd": "421181112000",
"wscd": null,
"importancy": 0,
"lgtd": 115.016667,
"lttd": 31.406111,
"elev": 0,
"damel": 173.1,
"dsflz": 171.11,
"fsltdz": 170,
"ddz": 154.5,
"zcxsw": 170,
"drpTm": "2025-04-11T05:00:00.000Z",
"today": 0,
"h1": 0,
"h3": 0,
"h6": 0,
"h12": 0,
"h24": 0,
"h48": 0,
"drpState": 2,
"rz": 165.85,
"w": 0.938,
"a_fsltdz": -4.150000000000006,
"rzTm": "2025-04-11T05:00:00.000Z",
"rzWarning": 0,
"rzState": 2,
"pic": [
{
"stcd": "716111301",
"tm": "2023-03-12T07:02:00.000Z",
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716111301/20230312150200.jpg"
},
{
"stcd": "716111301",
"tm": "2023-03-12T07:16:00.000Z",
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716111302/20230312151600.jpg"
}
],
"aRz": -4.15
},
{
"stcd": "716112161",
"type": "sk",
"hasRz": true,
"stnm": "白石河水库",
"adcd": "421181112000",
"wscd": null,
"importancy": 0,
"lgtd": 114.929444,
"lttd": 31.267222,
"elev": 0,
"damel": 121.3,
"dsflz": 117.78,
"fsltdz": 117,
"ddz": 107,
"zcxsw": 117,
"drpTm": "2025-04-11T05:00:00.000Z",
"today": 0,
"h1": 0,
"h3": 0,
"h6": 0,
"h12": 0,
"h24": 0,
"h48": 0,
"drpState": 2,
"rz": 112.76,
"w": 2.638,
"a_fsltdz": -4.239999999999995,
"rzTm": "2025-04-11T05:00:00.000Z",
"rzWarning": 0,
"rzState": 2,
"pic": [
{
"stcd": "716112161",
"tm": "2023-03-12T07:02:00.000Z",
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716112161/20230312150200.jpg"
},
{
"stcd": "716112161",
"tm": "2023-03-12T07:07:00.000Z",
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716112162/20230312150700.jpg"
}
],
"aRz": -4.24
},
{
"stcd": "716119601",
"type": "sk",
"hasRz": true,
"stnm": "江蔡河水库",
"adcd": "421181112000",
"wscd": null,
"importancy": 0,
"lgtd": 114.963333,
"lttd": 31.492778,
"elev": 0,
"damel": 286,
"dsflz": 284.36,
"fsltdz": 282.5,
"ddz": 275.4,
"zcxsw": 282.5,
"drpTm": "2025-03-12T03:00:00.000Z",
"today": 0,
"h1": 0,
"h3": 0,
"h6": 0,
"h12": 0,
"h24": 0,
"h48": 0,
"drpState": 2,
"rz": 276.13,
"w": 0.058,
"a_fsltdz": -6.3700000000000045,
"rzTm": "2025-03-12T03:00:00.000Z",
"rzWarning": 0,
"rzState": 2,
"pic": [
{
"stcd": "716119601",
"tm": "2025-03-12T03:03:37.000Z",
"url": "http://223.75.53.106:8891/skjgimages/2025/0312/716119601/20250312110337.jpg"
},
{
"stcd": "716119601",
"tm": "2025-03-12T03:05:01.000Z",
"url": "http://223.75.53.106:8891/skjgimages/2025/0312/716119602/20250312110501.jpg"
}
],
"aRz": -6.37
},
{
"stcd": "716122051",
"type": "sk",
"hasRz": true,
"stnm": "杨树庵水库",
"adcd": "421181112000",
"wscd": null,
"importancy": 0,
"lgtd": 114.429167,
"lttd": 31.406944,
"elev": 0,
"damel": 141.1,
"dsflz": 139.94,
"fsltdz": 138.8,
"ddz": 132.1,
"zcxsw": 138.8,
"drpTm": "2025-04-11T06:00:00.000Z",
"today": 0,
"h1": 0,
"h3": 0,
"h6": 0,
"h12": 0,
"h24": 0,
"h48": 0,
"drpState": 2,
"rz": 136.23,
"w": 0.057,
"a_fsltdz": -2.5700000000000216,
"rzTm": "2025-04-11T06:00:00.000Z",
"rzWarning": 0,
"rzState": 2,
"pic": [
{
"stcd": "716122051",
"tm": "2023-03-12T07:04:00.000Z",
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716122051/20230312150400.jpg"
},
{
"stcd": "716122051",
"tm": "2023-03-12T07:21:00.000Z",
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716122052/20230312152100.jpg"
}
],
"aRz": -2.57
},
{
"stcd": "716123001",
"type": "sk",
"hasRz": true,
"stnm": "正冲水库",
"stnm": "监测点8",
"adcd": "421181112000",
"wscd": null,
"importancy": 0,
@ -804,7 +141,7 @@ const page1 = [
"stcd": "716122901",
"type": "sk",
"hasRz": true,
"stnm": "李家冲水库",
"stnm": "监测点7",
"adcd": "421181112000",
"wscd": null,
"importancy": 0,
@ -849,7 +186,7 @@ const page1 = [
"stcd": "716123901",
"type": "sk",
"hasRz": true,
"stnm": "宗家冲水库",
"stnm": "监测点6",
"adcd": "421181112000",
"wscd": null,
"importancy": 0,
@ -894,7 +231,7 @@ const page1 = [
"stcd": "716115801",
"type": "sk",
"hasRz": true,
"stnm": "张家凹水库",
"stnm": "监测点5",
"adcd": "421181112000",
"wscd": null,
"importancy": 0,
@ -939,7 +276,7 @@ const page1 = [
"stcd": "716120401",
"type": "sk",
"hasRz": true,
"stnm": "江园水库",
"stnm": "监测点4",
"adcd": "421181112000",
"wscd": null,
"importancy": 0,
@ -984,7 +321,10 @@ const page1 = [
"stcd": "716116201",
"type": "sk",
"hasRz": true,
"stnm": "戴家冲水库",
"stnm": "监测点3",
press: '0.91',
flow: 200,
hg: 90,
"adcd": "421181112000",
"wscd": null,
"importancy": 0,
@ -1029,7 +369,10 @@ const page1 = [
"stcd": "716122701",
"type": "sk",
"hasRz": true,
"stnm": "石板冲水库",
press: '0.52',
flow: 200,
hg: 90,
"stnm": "监测点2",
"adcd": "421181112000",
"wscd": null,
"importancy": 0,
@ -1074,7 +417,9 @@ const page1 = [
"stcd": "716122601",
"type": "sk",
"hasRz": true,
"stnm": "山圣庵水库",
"stnm": "监测点1", press: '0.91',
flow: 200,
hg: 90,
"adcd": "421181112000",
"wscd": null,
"importancy": 0,
@ -1152,11 +497,11 @@ export default class ShuichangLayer extends BaseLayer {
}
featureClicked(properties, dispatch) {
// dispatch.runtime.setFeaturePop({
// type: InfoPopNames.PicStPop,
// properties,
// coordinates: [properties.lgtd, properties.lttd],
// offsetPop: true,
// });
dispatch.runtime.setFeaturePop({
type: 'shuichang',
properties,
coordinates: [properties.lgtd, properties.lttd],
offsetPop: true,
});
}
}

View File

@ -68,6 +68,36 @@ const sources = {
[114.7460271999999929, 30.8613739500000008], // 左下
],
},
//灌区图
"gqmapImg": {
'type': 'image',
'url': `${hash}/assets/gqbg.png`,
'coordinates': [
// 图片覆盖地图的四至点
[114.6710271999999929, 31.6068084090000987], // 左上
[115.4557823634995805, 31.6068084090000987], // 右上
[115.4907823634995805, 30.8713739500000008], // 右下
[114.7460271999999929, 30.8613739500000008], // 左下
],
},
// 管网图
"gwImg": {
'type': 'image',
'url': `${hash}/assets/gwbg.png`,
'coordinates': [
// 图片覆盖地图的四至点
[114.5510271999999929, 31.4068084090000987], // 左上
[115.5357823634995805, 31.4068084090000987], // 右上
[115.4947823634995805, 30.9713739500000288], // 右下
[114.9490271999999929, 30.8613739500000288], // 左下
],
},
"县界": {
"data": `${hash}/mapbox/geojson/县界.geojson`,
"type": "geojson"

View File

@ -84,7 +84,7 @@ import Yhfx from './panels/Yhfx'
import Bjtj from './panels/Bjtj'
import Szzddgxs from './panels/Szzddgxs'
import Szzddjq from './panels/Szzddjq'
import Gcxxzl from './panels/Gcxxzl'
export default function PanelIndex({ name, style, ...params }) {
if (name === '天气') {
return (
@ -257,6 +257,9 @@ export default function PanelIndex({ name, style, ...params }) {
} else if (name === '警情') {
return <Szzddjq style={style} />
}
else if (name === '信息总览') {
return <Gcxxzl style={style} />
}
return (

View File

@ -0,0 +1,149 @@
import { Button, makeStyles } from '@material-ui/core';
import { Email } from '@material-ui/icons';
import React from 'react';
import { useDispatch } from 'react-redux';
import config from '../../../../config';
import { bxstr, drpRealGet, skRealGet } from '../../../../models/_/real';
import { strNumber } from '../../../../utils/tools';
import { InfoPopNames } from '../../InfoPops';
const useStyles = makeStyles({
root: {
padding: '1.5rem 0.75rem 0.75rem 0.75rem',
color: 'rgb(224, 246, 247)',
fontSize: '0.9rem',
lineHeight: '1.8rem',
},
titleDate: {
fontSize: '1.2rem',
margin: '0.2rem',
color: '#00deff',
},
number: {
color: '#ffd220',
fontSize: '1.2rem',
margin: '0.2rem',
},
sttype: {
color: '#92f0ff',
},
stname: {
fontWeight: 'bold',
fontSize: '1rem',
margin: '0.25rem',
cursor: 'pointer'
},
grid: {
display: 'flex',
justifyContent: 'space-around',
marginBottom: '1rem',
textAlign: 'center',
'& .value': {
fontSize: '1.8rem',
color: '#6fe9fd',
lineHeight: '2rem'
},
'& .key': {
fontSize: '0.8rem',
color: '#aaa',
},
},
action: {
textAlign: 'right',
color: '#fff',
}
})
export default function OverallContent({ data }) {
const classes = useStyles();
const dispatch = useDispatch();
const {
drpInfo,
skInfo,
tm1, tm2,
} = data || {};
const { h24, h1, h3, h6 } = drpInfo || {};
const _showRecord = (record, poptype) => {
if (record) {
const { lgtd, lttd } = record;
if (lgtd && lttd) {
dispatch.runtime.setFeaturePop({ type: poptype, properties: record, coordinates: [lgtd, lttd] });
dispatch.runtime.setCameraTarget({
center: [lgtd, lttd],
zoom: 15,
pitch: config.poiPitch,
});
}
}
}
const showRecord = (obj) => {
if (!obj) {
return;
}
const { type } = obj;
if (type === 'sk') {
skRealGet(obj.stcd).then((record) => {
_showRecord(record, InfoPopNames.RealSkPop)
})
} else {
drpRealGet(obj).then((record) => {
_showRecord(record, InfoPopNames.RealDrpPop)
});
}
}
const doBx = () => {
bxstr().then((data) => {
dispatch.runtime.setInfoDlg({
layerId: 'OverallSmtp',
properties: { txt: data }
})
});
}
return (
<div className={classes.root}>
<div className={classes.grid} style={{flexWrap:'wrap',justifyContent:'start',columnGap:10}}>
<div style={{ padding: 15, background: "linear-gradient(to bottom, #001529, #003366)" }}>
<div className="key" style={{ color: '#fff', fontSize: 16 }}>累计巡查次数</div>
<div className="value" style={{ color: '#5ecd45' }}>32</div>
</div>
<div style={{ padding: 15, background: "linear-gradient(to bottom, #001529, #003366)" }}>
<div className="key" style={{ color: '#fff', fontSize: 16 }}>本月巡查次数</div>
<div className="value" style={{ color: '#5ecd45' }}>5</div>
</div>
<div style={{ padding: 15, background: "linear-gradient(to bottom, #001529, #003366)" }}>
<div className="key" style={{ color: '#fff', fontSize: 16 }}>累计事件数量</div>
<div
className="value"
style={{ cursor: 'pointer', color: '#5ecd45' }}
>
1
</div>
</div>
<div style={{ padding: 15, background: "linear-gradient(to bottom, #001529, #003366)" }}>
<div className="key" style={{ color: '#fff', fontSize: 16 }}>本月事件数量</div>
<div className="value" style={{ color: '#5ecd45' }}>50</div>
</div>
<div style={{ padding: 20, background: "linear-gradient(to bottom, #001529, #003366)" }}>
<div className="key" style={{ color: '#fff', fontSize: 16 }}>处理中事件</div>
<div className="value" style={{ color: '#ba292a' }}>24</div>
</div>
</div>
</div>
)
}

View File

@ -0,0 +1,62 @@
import React from 'react';
import { OverallPromise } from '../../../../models/_/real';
import useRequest from '../../../../utils/useRequest';
import PanelBox from '../../components/PanelBox';
import OverallContent from './OverallContent';
import Table from '@material-ui/core/Table';
import TableContainer from '@material-ui/core/TableContainer';
import TableBody from '@material-ui/core/TableBody';
import TableHead from '@material-ui/core/TableHead';
import TableRow from '@material-ui/core/TableRow';
import DpTableCell from '../../../../layouts/mui/DpTableCell';
import DpTableRow from '../../../../layouts/mui/DpTableRow';
export default function Overall({ style }) {
const { data } = useRequest(OverallPromise.get);
const showData = [
{
unit: '浮桥河灌区',
inspectionCount: '大型',
eventCount: 31.96,
processingCount: '--'
},
]
return (
<PanelBox
style={style}
title="信息总览"
color="green"
>
{/* <OverallContent data={data} /> */}
<img src={`${process.env.PUBLIC_URL}/assets/xxzl.jpg`} alt="" style={{width:421}}/>
<TableContainer style={{ height: '30%',marginTop:'10px' }}>
<Table size="small" stickyHeader>
<TableHead>
<TableRow >
<DpTableCell style={{ width: '25%' }} align="center">灌区名称</DpTableCell>
<DpTableCell style={{ width: '25%' }} align="center">灌区类型</DpTableCell>
<DpTableCell align="center" style={{ width: '25%' }}>灌溉面积(万亩)</DpTableCell>
<DpTableCell align="center" style={{ width: '25%' }}>受益人口</DpTableCell>
</TableRow>
</TableHead>
<TableBody>
{showData.map((row) => (
<DpTableRow key={row.id}>
<DpTableCell align="center">
<div
className="table-ellipsis cursor-pointer"
>{row.unit}</div>
</DpTableCell>
<DpTableCell align="center">{row.inspectionCount}</DpTableCell>
<DpTableCell align="center"><div className="table-ellipsis cursor-pointer">{row.eventCount}</div></DpTableCell>
<DpTableCell align="center">{row.processingCount}</DpTableCell>
{/* {rzRender(row.rz, row.grz)}
{rzRender(row.rz, row.wrz)} */}
</DpTableRow>
))}
</TableBody>
</Table>
</TableContainer>
</PanelBox>
)
}

View File

@ -0,0 +1,38 @@
.dppanel-overall {
padding: 0.75rem;
color: rgb(224, 246, 247);
font-size: 0.8rem;
line-height: 1.8rem;
.title-date {
font-size: 1.2rem;
margin: 0.2rem;
color: #00deff;
}
.number {
color: #ffd220;
font-size: 1.2rem;
margin: 0.2rem;
}
.sttype {
color: #92f0ff;
}
.stname {
font-weight: bold;
font-size: 1rem;
margin: 0.25rem;
}
.sycm {
height: 5rem;
padding-top: 0.75rem;
ul{ margin-left:-.5rem;margin-right:-.5rem; padding: .16rem 0;}
li{ float: left; width: 33.33%; text-align: center; position: relative}
li:before{ position:absolute; content: ""; height:30%; width: 1px; background: rgba(255,255,255,.1); right: 0; top: 15%;}
li:last-child:before{ width: 0;}
li h2{ font-size:2rem; color: #6fe9fd; margin: 0; font-family: 'electronicFont';margin-bottom: 0.5rem;}
li span{ font-size:1rem; color: #fff; opacity: .5;}
}
}

View File

@ -53,40 +53,40 @@ function HDReal({ style }) {
// }, [data, tableRzFilter]);
const randomMinutes = Math.floor(Math.random() * 60) + 1;
const format = 'YYYY-MM-DD HH:mm';
const showData = [
{
stnm: '监测点1',
press: '0.91',
flow: 200,
hg: 90,
"lttd": 30.8456 +0.2002,
"lgtd": 112.2321 +2.9619,
"lgtd": 114.891667,
"lttd": 31.346944,
},
{
{
stnm: '监测点2',
press: '0.52',
flow: 200,
hg: 90,
"lttd": 30.8446 +0.2002,
"lgtd": 112.203 +2.9619,
},{
hg: 90,
"lgtd": 114.908889,
"lttd": 31.334167,
}, {
stnm: '监测点3',
press: '0.52',
flow: 200,
hg: 20,
"lttd": 30.8866 +0.2002,
"lgtd": 112.2006 +2.9619,
hg: 20,
"lgtd": 115.024444,
"lttd": 31.232222,
}
]
const flyTo = (record) => {
const { lgtd, lttd } = record;
if (lgtd && lttd) {
dispatch.runtime.setFeaturePop({ type: '监测站', properties: record, coordinates: [lgtd, lttd] });
dispatch.runtime.setFeaturePop({ type: 'shuichang', properties: record, coordinates: [lgtd, lttd] });
dispatch.runtime.setCameraTarget({
center: [lgtd, lttd + config.poiPositionOffsetY.hd],
zoom: config.poiPositionZoom.hd,
@ -138,7 +138,7 @@ function HDReal({ style }) {
<TableBody>
{showData.map((row) => (
<DpTableRow key={row.id} onClick={() => flyTo(row)}>
<DpTableCell align="center">
<DpTableCell align="center">
<div
className="table-ellipsis cursor-pointer"
>{row.stnm}</div>
@ -146,10 +146,10 @@ function HDReal({ style }) {
<DpTableCell align="center">
<div
className="table-ellipsis cursor-pointer"
style={{color:row.press > 0.8 ? 'orange':''}}>{row.press}</div>
style={{ color: row.press > 0.8 ? 'orange' : '' }}>{row.press}</div>
</DpTableCell>
<DpTableCell align="center">{row.flow}</DpTableCell>
<DpTableCell align="center"><div style={{color:row.hg <80? 'orange':''}}>{row.hg}</div></DpTableCell>
<DpTableCell align="center"><div style={{ color: row.hg < 80 ? 'orange' : '' }}>{row.hg}</div></DpTableCell>
{/* {rzRender(row.rz, row.grz)}
{rzRender(row.rz, row.wrz)} */}
</DpTableRow>

View File

@ -18,6 +18,8 @@ import Setting from './Setting';
import { InfoPopNames } from '../../InfoPops';
import config from '../../../../config';
import moment from 'moment';
import { Switch, FormControlLabel,InputLabel, Select, MenuItem,FormControl } from '@material-ui/core/index'
import { styled } from '@material-ui/styles';
function rzRender(rz, base) {
return (
@ -31,6 +33,29 @@ function HDReal({ style }) {
const dispatch = useDispatch();
const tableRzFilter = useSelector(s => s.realview.tableRzFilter);
const hdAutoRefresh = useSelector(s => s.realview.hdAutoRefresh);
const CustomSwitch = styled(Switch)({
'& .MuiSwitch-switchBase': {
color: '#fff',
'&.Mui-checked': {
color: '#1890ff',
'& + .MuiSwitch-track': {
backgroundColor: '#1890ff',
opacity: 0.5,
},
},
},
'& .MuiSwitch-track': {
backgroundColor: 'rgba(255, 255, 255, 0.3)',
},
});
const StyledFormControlLabel = styled(FormControlLabel)({
'& .MuiFormControlLabel-label': {
color: '#fff'
}
});
const [dimension, setDimension] = useState('fqh');
const [checked, setChecked] = React.useState(false);
// const t = useRefresh(hdAutoRefresh ? 60 * 1000 : 0);
// let { data } = useRequest(HDRealPromise.get, t);
const [setting, showSetting] = useState(false);
@ -122,6 +147,49 @@ function HDReal({ style }) {
</TableBody>
</Table>
</TableContainer>
<div style={{ position: 'absolute', color: '#fff', top: 70, left: -280, display: 'flex', alignItems: 'center' }}>
<StyledFormControlLabel
control={
<CustomSwitch
checked={checked}
onChange={(e) => setChecked(e.target.checked)}
/>
}
label="多灌区模式"
/>
{checked && <div style={{ marginTop: "-15px" }}>
<FormControl sx={{ minWidth: 200, marginBottom: 2 }}>
<InputLabel id="analysis-select-label"></InputLabel>
<Select
labelId="analysis-select-label"
value={dimension}
label=""
onChange={(event) => {
const value = event.target.value;
setDimension(value);
}}
sx={{
color: '#fff',
'.MuiOutlinedInput-notchedOutline': {
borderColor: 'rgba(255, 255, 255, 0.3)',
},
'&:hover .MuiOutlinedInput-notchedOutline': {
borderColor: 'rgba(255, 255, 255, 0.6)',
},
'&.Mui-focused .MuiOutlinedInput-notchedOutline': {
borderColor: '#fff',
}
}}
>
<MenuItem value="fqh">浮桥河灌区</MenuItem>
<MenuItem value="shk">三河口水库灌区</MenuItem>
<MenuItem value="qjs">群建水库灌区</MenuItem>
<MenuItem value="dsb">大石板灌区</MenuItem>
</Select>
</FormControl>
</div>}
</div>
</PanelBox>
)
}

View File

@ -18,6 +18,9 @@ import Setting from './Setting';
import { InfoPopNames } from '../../InfoPops';
import config from '../../../../config';
import moment from 'moment';
import { styled } from '@material-ui/styles';
import { Switch, FormControlLabel,InputLabel, Select, MenuItem,FormControl } from '@material-ui/core/index'
import { DatePicker } from 'antd';
const { RangePicker } = DatePicker;
@ -33,6 +36,29 @@ function HDReal({ style }) {
const dispatch = useDispatch();
const tableRzFilter = useSelector(s => s.realview.tableRzFilter);
const hdAutoRefresh = useSelector(s => s.realview.hdAutoRefresh);
const CustomSwitch = styled(Switch)({
'& .MuiSwitch-switchBase': {
color: '#fff',
'&.Mui-checked': {
color: '#1890ff',
'& + .MuiSwitch-track': {
backgroundColor: '#1890ff',
opacity: 0.5,
},
},
},
'& .MuiSwitch-track': {
backgroundColor: 'rgba(255, 255, 255, 0.3)',
},
});
const StyledFormControlLabel = styled(FormControlLabel)({
'& .MuiFormControlLabel-label': {
color: '#fff'
}
});
const [dimension, setDimension] = useState('fqh');
const [checked, setChecked] = React.useState(false);
// const t = useRefresh(hdAutoRefresh ? 60 * 1000 : 0);
// let { data } = useRequest(HDRealPromise.get, t);
const [setting, showSetting] = useState(false);
@ -180,6 +206,49 @@ function HDReal({ style }) {
{
setting && <Setting onClose={() => showSetting(false)} />
}
<div style={{ position: 'absolute', color: '#fff', top: 70, left: -280, display: 'flex', alignItems: 'center' }}>
<StyledFormControlLabel
control={
<CustomSwitch
checked={checked}
onChange={(e) => setChecked(e.target.checked)}
/>
}
label="多灌区模式"
/>
{checked && <div style={{ marginTop: "-15px" }}>
<FormControl sx={{ minWidth: 200, marginBottom: 2 }}>
<InputLabel id="analysis-select-label"></InputLabel>
<Select
labelId="analysis-select-label"
value={dimension}
label=""
onChange={(event) => {
const value = event.target.value;
setDimension(value);
}}
sx={{
color: '#fff',
'.MuiOutlinedInput-notchedOutline': {
borderColor: 'rgba(255, 255, 255, 0.3)',
},
'&:hover .MuiOutlinedInput-notchedOutline': {
borderColor: 'rgba(255, 255, 255, 0.6)',
},
'&.Mui-focused .MuiOutlinedInput-notchedOutline': {
borderColor: '#fff',
}
}}
>
<MenuItem value="fqh">浮桥河灌区</MenuItem>
<MenuItem value="shk">三河口水库灌区</MenuItem>
<MenuItem value="qjs">群建水库灌区</MenuItem>
<MenuItem value="dsb">大石板灌区</MenuItem>
</Select>
</FormControl>
</div>}
</div>
</PanelBox>
)
}

View File

@ -64,7 +64,7 @@ export default function GQ({ style }) {
</Select>
</FormControl>
</div> */}
<img src={`${process.env.PUBLIC_URL}/assets/lyhq.png`} alt="" style={{width:421,height:'50%'}}/>
<img src={`${process.env.PUBLIC_URL}/assets/lyhq.png`} alt="" style={{width:421,height:'50%',marginTop:-20}}/>
<img src={`${process.env.PUBLIC_URL}/assets/dswgj.png`} alt="" style={{width:421,height:'50%'}}/>
</div>
</PanelBox>

View File

@ -1,13 +1,36 @@
import React from 'react';
import React , { useState }from 'react';
import { OverallPromise } from '../../../../models/_/real';
import useRequest from '../../../../utils/useRequest';
import PanelBox from '../../components/PanelBox';
import OverallContent from './OverallContent';
import { Switch, FormControlLabel,InputLabel, Select, MenuItem,FormControl } from '@material-ui/core/index'
import { styled } from '@material-ui/styles';
export default function Overall({ style }) {
const { data } = useRequest(OverallPromise.get);
const CustomSwitch = styled(Switch)({
'& .MuiSwitch-switchBase': {
color: '#fff',
'&.Mui-checked': {
color: '#1890ff',
'& + .MuiSwitch-track': {
backgroundColor: '#1890ff',
opacity: 0.5,
},
},
},
'& .MuiSwitch-track': {
backgroundColor: 'rgba(255, 255, 255, 0.3)',
},
});
const StyledFormControlLabel = styled(FormControlLabel)({
'& .MuiFormControlLabel-label': {
color: '#fff'
}
});
const [dimension, setDimension] = useState('fqh');
const [checked, setChecked] = React.useState(false);
return (
<PanelBox
style={style}
@ -15,6 +38,49 @@ export default function Overall({ style }) {
color="green"
>
<OverallContent data={data} />
<div style={{ position: 'absolute', color: '#fff', top: 70, left: -280, display: 'flex', alignItems: 'center' }}>
<StyledFormControlLabel
control={
<CustomSwitch
checked={checked}
onChange={(e) => setChecked(e.target.checked)}
/>
}
label="多灌区模式"
/>
{checked && <div style={{ marginTop: "-15px" }}>
<FormControl sx={{ minWidth: 200, marginBottom: 2 }}>
<InputLabel id="analysis-select-label"></InputLabel>
<Select
labelId="analysis-select-label"
value={dimension}
label=""
onChange={(event) => {
const value = event.target.value;
setDimension(value);
}}
sx={{
color: '#fff',
'.MuiOutlinedInput-notchedOutline': {
borderColor: 'rgba(255, 255, 255, 0.3)',
},
'&:hover .MuiOutlinedInput-notchedOutline': {
borderColor: 'rgba(255, 255, 255, 0.6)',
},
'&.Mui-focused .MuiOutlinedInput-notchedOutline': {
borderColor: '#fff',
}
}}
>
<MenuItem value="fqh">浮桥河灌区</MenuItem>
<MenuItem value="shk">三河口水库灌区</MenuItem>
<MenuItem value="qjs">群建水库灌区</MenuItem>
<MenuItem value="dsb">大石板灌区</MenuItem>
</Select>
</FormControl>
</div>}
</div>
</PanelBox>
)
}

View File

@ -96,7 +96,7 @@ const showData = Array(1).fill(0).map((o, i) => ({
return (
<PanelBox
style={style}
title="统计分析"
title="巡查维护清单"
color="green"
tabs={
<span className="button-group">

View File

@ -15,11 +15,10 @@ import Shqx from './Shqx';
import ShYj from './ShYj';
import { styled } from '@material-ui/styles';
import { RadioGroup, FormControlLabel, Radio, FormControl, FormLabel } from '@material-ui/core/index';
import { RadioGroup,Radio, Switch, FormControlLabel,InputLabel, Select, MenuItem,FormControl } from '@material-ui/core/index';
import { backgroundColor } from 'echarts/lib/theme/dark';
import { Description } from '@material-ui/icons';
import DescriptionItem from '../../components/DescrptionItem';
import { log } from '@craco/craco/lib/logger';
export default function Warn({ style }) {
const dispatch = useDispatch();
const res = useSelector(s=>s.runtime.yyObj)
@ -41,6 +40,29 @@ const [yyValue, setYyValue] = React.useState(false);
}
});
const CustomSwitch = styled(Switch)({
'& .MuiSwitch-switchBase': {
color: '#fff',
'&.Mui-checked': {
color: '#1890ff',
'& + .MuiSwitch-track': {
backgroundColor: '#1890ff',
opacity: 0.5,
},
},
},
'& .MuiSwitch-track': {
backgroundColor: 'rgba(255, 255, 255, 0.3)',
},
});
const StyledFormControlLabel1 = styled(FormControlLabel)({
'& .MuiFormControlLabel-label': {
color: '#fff'
}
});
const [dimension, setDimension] = useState('fqh');
const [checked, setChecked] = React.useState(false);
const fayy = () => {
setYyValue(true)
if (value) {
@ -83,7 +105,51 @@ const [yyValue, setYyValue] = React.useState(false);
{/* <div>
<img src={`${process.env.PUBLIC_URL}/assets/sl.jpg`} alt="" style={{ width: 421}} />
</div> */}
</div>}
</div>}
<div style={{ position: 'absolute', color: '#fff', top: 70, left: -280, display: 'flex', alignItems: 'center' }}>
<StyledFormControlLabel1
control={
<CustomSwitch
checked={checked}
onChange={(e) => setChecked(e.target.checked)}
/>
}
label="多灌区模式"
/>
{checked && <div style={{ marginTop: "-15px" }}>
<FormControl sx={{ minWidth: 200, marginBottom: 2 }}>
<InputLabel id="analysis-select-label"></InputLabel>
<Select
labelId="analysis-select-label"
value={dimension}
label=""
onChange={(event) => {
const value = event.target.value;
setDimension(value);
}}
sx={{
color: '#fff',
'.MuiOutlinedInput-notchedOutline': {
borderColor: 'rgba(255, 255, 255, 0.3)',
},
'&:hover .MuiOutlinedInput-notchedOutline': {
borderColor: 'rgba(255, 255, 255, 0.6)',
},
'&.Mui-focused .MuiOutlinedInput-notchedOutline': {
borderColor: '#fff',
}
}}
>
<MenuItem value="fqh">浮桥河灌区</MenuItem>
<MenuItem value="shk">三河口水库灌区</MenuItem>
<MenuItem value="qjs">群建水库灌区</MenuItem>
<MenuItem value="dsb">大石板灌区</MenuItem>
</Select>
</FormControl>
</div>}
</div>
</div>
</PanelBox>
)