Compare commits
12 Commits
ef0ed5e310
...
99d9008627
| Author | SHA1 | Date |
|---|---|---|
|
|
99d9008627 | |
|
|
8e75910321 | |
|
|
c4f7e31f30 | |
|
|
6218cd032b | |
|
|
8fafed3199 | |
|
|
475f551507 | |
|
|
4508e5d59c | |
|
|
75c5ba9690 | |
|
|
b379a58cc8 | |
|
|
69e11dad51 | |
|
|
3fabf984a6 | |
|
|
0be79dd7c3 |
|
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1749537394241" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2581" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M0 511.936008a511.936008 511.936008 0 1 0 511.936008-511.936008 511.936008 511.936008 0 0 0-511.936008 511.936008z" fill="#00B4FF" p-id="2582"></path><path d="M511.936008 475.204599h426.647469c0-219.850919-191.054518-398.132633-426.647469-398.132633S85.160555 255.353681 85.160555 475.204599z" fill="#FFFFFF" p-id="2583"></path></svg>
|
||||
|
After Width: | Height: | Size: 667 B |
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="20px" height="20px" xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="matrix(1 0 0 1 -51 -179 )">
|
||||
<path d="M 20 10 C 20 4.47715250169207 15.5228474983079 0 10 0 C 4.47715250169207 0 0 4.47715250169207 0 10 C 0 15.5228474983079 4.47715250169207 20 10 20 C 15.5228474983079 20 20 15.5228474983079 20 10 Z M 1.4285 10 C 1.4285 5.26609126682536 5.26609126682536 1.4285 10 1.4285 L 10 10 L 1.4285 10 Z " fill-rule="nonzero" fill="#00b4ff" stroke="none" transform="matrix(1 0 0 1 51 179 )" />
|
||||
</g>
|
||||
</svg>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.0 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.3 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 46 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 107 KiB After Width: | Height: | Size: 107 KiB |
File diff suppressed because it is too large
Load Diff
|
|
@ -16,13 +16,13 @@
|
|||
"sfz": null,
|
||||
"sfq": null,
|
||||
"type": "sh",
|
||||
"tm": "2025-06-08T03:00:00.000Z",
|
||||
"rz": 77.24,
|
||||
"trend": 0,
|
||||
"tm": "2025-06-06T22:00:00.000Z",
|
||||
"rz": 76.99,
|
||||
"trend": 1,
|
||||
"state": 1,
|
||||
"warning": 0,
|
||||
"maxRz": 77.35,
|
||||
"maxDate": "2025-06-07T16:05:00.000Z",
|
||||
"maxRz": 76.99,
|
||||
"maxDate": "2025-06-05T17:25:00.000Z",
|
||||
"warndes": null
|
||||
},
|
||||
{
|
||||
|
|
@ -42,13 +42,13 @@
|
|||
"sfz": null,
|
||||
"sfq": null,
|
||||
"type": "sh",
|
||||
"tm": "2025-06-08T03:05:00.000Z",
|
||||
"rz": 55.66,
|
||||
"tm": "2025-06-06T22:15:00.000Z",
|
||||
"rz": 55.67,
|
||||
"trend": 0,
|
||||
"state": 1,
|
||||
"warning": 0,
|
||||
"maxRz": 55.67,
|
||||
"maxDate": "2025-06-07T19:30:00.000Z",
|
||||
"maxDate": "2025-06-06T02:05:00.000Z",
|
||||
"warndes": null
|
||||
},
|
||||
{
|
||||
|
|
@ -68,13 +68,13 @@
|
|||
"sfz": null,
|
||||
"sfq": null,
|
||||
"type": "sh",
|
||||
"tm": "2025-06-08T03:00:00.000Z",
|
||||
"tm": "2025-06-06T22:00:00.000Z",
|
||||
"rz": 27.57,
|
||||
"trend": 0,
|
||||
"state": 1,
|
||||
"warning": 0,
|
||||
"maxRz": 27.57,
|
||||
"maxDate": "2025-06-07T22:35:00.000Z",
|
||||
"maxDate": "2025-06-05T17:50:00.000Z",
|
||||
"warndes": null
|
||||
},
|
||||
{
|
||||
|
|
@ -94,13 +94,13 @@
|
|||
"sfz": null,
|
||||
"sfq": null,
|
||||
"type": "sh",
|
||||
"tm": "2025-06-08T03:00:00.000Z",
|
||||
"rz": 21.87,
|
||||
"trend": 1,
|
||||
"tm": "2025-06-06T22:00:00.000Z",
|
||||
"rz": 21.84,
|
||||
"trend": -1,
|
||||
"state": 1,
|
||||
"warning": 0,
|
||||
"maxRz": 21.94,
|
||||
"maxDate": "2025-06-07T16:00:00.000Z",
|
||||
"maxRz": 21.9,
|
||||
"maxDate": "2025-06-06T04:30:00.000Z",
|
||||
"warndes": null
|
||||
},
|
||||
{
|
||||
|
|
@ -120,13 +120,13 @@
|
|||
"sfz": null,
|
||||
"sfq": null,
|
||||
"type": "sh",
|
||||
"tm": "2025-06-08T03:00:00.000Z",
|
||||
"tm": "2025-06-06T22:15:00.000Z",
|
||||
"rz": 112.71,
|
||||
"trend": 0,
|
||||
"state": 1,
|
||||
"warning": 0,
|
||||
"maxRz": 112.71,
|
||||
"maxDate": "2025-06-08T00:10:00.000Z",
|
||||
"maxDate": "2025-06-06T14:05:00.000Z",
|
||||
"warndes": null
|
||||
},
|
||||
{
|
||||
|
|
@ -140,8 +140,8 @@
|
|||
"elev": null,
|
||||
"hasRz": true,
|
||||
"type": "sw",
|
||||
"tm": "2025-06-08T03:00:00.000Z",
|
||||
"rz": 52.85,
|
||||
"tm": "2025-06-06T22:00:00.000Z",
|
||||
"rz": 52.44,
|
||||
"state": 1
|
||||
},
|
||||
{
|
||||
|
|
@ -155,8 +155,8 @@
|
|||
"elev": null,
|
||||
"hasRz": true,
|
||||
"type": "sw",
|
||||
"tm": "2025-06-08T03:00:00.000Z",
|
||||
"rz": 51.432,
|
||||
"tm": "2025-06-06T22:00:00.000Z",
|
||||
"rz": 51.387,
|
||||
"state": 1
|
||||
},
|
||||
{
|
||||
|
|
@ -170,7 +170,7 @@
|
|||
"elev": null,
|
||||
"hasRz": true,
|
||||
"type": "sw",
|
||||
"tm": "2025-06-08T03:00:00.000Z",
|
||||
"tm": "2025-06-06T22:00:00.000Z",
|
||||
"rz": 73.37,
|
||||
"state": 1
|
||||
},
|
||||
|
|
@ -185,8 +185,8 @@
|
|||
"elev": null,
|
||||
"hasRz": true,
|
||||
"type": "sw",
|
||||
"tm": "2025-06-08T03:00:00.000Z",
|
||||
"rz": 61.98,
|
||||
"tm": "2025-06-06T22:00:00.000Z",
|
||||
"rz": 61.59,
|
||||
"state": 1
|
||||
},
|
||||
{
|
||||
|
|
@ -200,8 +200,8 @@
|
|||
"elev": null,
|
||||
"hasRz": true,
|
||||
"type": "sw",
|
||||
"tm": "2025-06-08T03:00:00.000Z",
|
||||
"rz": 134.21,
|
||||
"tm": "2025-06-06T21:00:00.000Z",
|
||||
"rz": 133.89,
|
||||
"state": 1
|
||||
},
|
||||
{
|
||||
|
|
@ -215,7 +215,7 @@
|
|||
"elev": null,
|
||||
"hasRz": true,
|
||||
"type": "sw",
|
||||
"tm": "2025-06-08T03:00:00.000Z",
|
||||
"tm": "2025-06-06T22:00:00.000Z",
|
||||
"rz": 43.6,
|
||||
"state": 1
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"tm2": "08日11时",
|
||||
"tm1": "07日11时",
|
||||
"tm2": "07日6时",
|
||||
"tm1": "06日6时",
|
||||
"drpInfo": {
|
||||
"stCount": {
|
||||
"total": 379,
|
||||
|
|
@ -12,85 +12,85 @@
|
|||
},
|
||||
"h1": {
|
||||
"drpStCount": {
|
||||
"total": 75,
|
||||
"sh": 15,
|
||||
"sw": 22,
|
||||
"sk": 5,
|
||||
"total": 98,
|
||||
"sh": 34,
|
||||
"sw": 25,
|
||||
"sk": 6,
|
||||
"qx": 33
|
||||
},
|
||||
"max": {
|
||||
"value": 7.5,
|
||||
"stnm": "芭茅河水库",
|
||||
"stcd": "61612580",
|
||||
"type": "sk"
|
||||
"value": 50.2,
|
||||
"stnm": "福田河",
|
||||
"stcd": "Q9111",
|
||||
"type": "qx"
|
||||
},
|
||||
"cntDrp10": 75,
|
||||
"cntDrp25": 0,
|
||||
"cntDrp50": 0,
|
||||
"cntDrp100": 0,
|
||||
"cntDrp10": 41,
|
||||
"cntDrp25": 37,
|
||||
"cntDrp50": 18,
|
||||
"cntDrp100": 2,
|
||||
"cntDrp250": 0,
|
||||
"cntDrpg250": 0
|
||||
},
|
||||
"h3": {
|
||||
"drpStCount": {
|
||||
"total": 91,
|
||||
"sh": 31,
|
||||
"sw": 22,
|
||||
"sk": 5,
|
||||
"total": 99,
|
||||
"sh": 35,
|
||||
"sw": 25,
|
||||
"sk": 6,
|
||||
"qx": 33
|
||||
},
|
||||
"max": {
|
||||
"value": 14.3,
|
||||
"stnm": "下白米",
|
||||
"stcd": "Q9123",
|
||||
"value": 50.3,
|
||||
"stnm": "福田河",
|
||||
"stcd": "Q9111",
|
||||
"type": "qx"
|
||||
},
|
||||
"cntDrp10": 83,
|
||||
"cntDrp25": 8,
|
||||
"cntDrp50": 0,
|
||||
"cntDrp100": 0,
|
||||
"cntDrp10": 38,
|
||||
"cntDrp25": 35,
|
||||
"cntDrp50": 21,
|
||||
"cntDrp100": 5,
|
||||
"cntDrp250": 0,
|
||||
"cntDrpg250": 0
|
||||
},
|
||||
"h6": {
|
||||
"drpStCount": {
|
||||
"total": 94,
|
||||
"sh": 31,
|
||||
"sw": 23,
|
||||
"total": 99,
|
||||
"sh": 35,
|
||||
"sw": 25,
|
||||
"sk": 6,
|
||||
"qx": 34
|
||||
"qx": 33
|
||||
},
|
||||
"max": {
|
||||
"value": 22.7,
|
||||
"stnm": "下白米",
|
||||
"stcd": "Q9123",
|
||||
"value": 50.3,
|
||||
"stnm": "福田河",
|
||||
"stcd": "Q9111",
|
||||
"type": "qx"
|
||||
},
|
||||
"cntDrp10": 63,
|
||||
"cntDrp25": 31,
|
||||
"cntDrp50": 0,
|
||||
"cntDrp100": 0,
|
||||
"cntDrp10": 38,
|
||||
"cntDrp25": 35,
|
||||
"cntDrp50": 21,
|
||||
"cntDrp100": 5,
|
||||
"cntDrp250": 0,
|
||||
"cntDrpg250": 0
|
||||
},
|
||||
"h24": {
|
||||
"drpStCount": {
|
||||
"total": 100,
|
||||
"sh": 34,
|
||||
"sw": 26,
|
||||
"total": 99,
|
||||
"sh": 35,
|
||||
"sw": 25,
|
||||
"sk": 6,
|
||||
"qx": 34
|
||||
"qx": 33
|
||||
},
|
||||
"max": {
|
||||
"value": 45.2,
|
||||
"stnm": "下白米",
|
||||
"stcd": "Q9123",
|
||||
"value": 50.3,
|
||||
"stnm": "福田河",
|
||||
"stcd": "Q9111",
|
||||
"type": "qx"
|
||||
},
|
||||
"cntDrp10": 23,
|
||||
"cntDrp25": 52,
|
||||
"cntDrp50": 25,
|
||||
"cntDrp100": 0,
|
||||
"cntDrp10": 38,
|
||||
"cntDrp25": 35,
|
||||
"cntDrp50": 21,
|
||||
"cntDrp100": 5,
|
||||
"cntDrp250": 0,
|
||||
"cntDrpg250": 0
|
||||
}
|
||||
|
|
@ -104,34 +104,130 @@
|
|||
"aRzSk": [],
|
||||
"drpSk": [
|
||||
{
|
||||
"stcd": "61614200",
|
||||
"stcd": "61612700",
|
||||
"type": "sk",
|
||||
"hasRz": true,
|
||||
"stnm": "浮桥河水库",
|
||||
"adcd": "421181100000",
|
||||
"stnm": "碧绿河水库",
|
||||
"adcd": "421181109000",
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 114.875,
|
||||
"lttd": 31.166667,
|
||||
"lgtd": 115.214444,
|
||||
"lttd": 31.299722,
|
||||
"elev": 0,
|
||||
"damel": 71.33,
|
||||
"dsflz": 68.04,
|
||||
"fsltdz": 64.89,
|
||||
"ddz": 51.78,
|
||||
"zcxsw": 64.89,
|
||||
"drpTm": "2025-06-08T03:00:00.000Z",
|
||||
"today": 13,
|
||||
"h1": 1,
|
||||
"h3": 8.5,
|
||||
"h6": 16,
|
||||
"h12": 19,
|
||||
"h24": 26.5,
|
||||
"h48": 70,
|
||||
"damel": 142.9,
|
||||
"dsflz": 139.08,
|
||||
"fsltdz": 137,
|
||||
"ddz": 105,
|
||||
"zcxsw": 137,
|
||||
"drpTm": "2025-06-06T22:00:00.000Z",
|
||||
"today": 50,
|
||||
"h1": 38,
|
||||
"h3": 50,
|
||||
"h6": 50,
|
||||
"h12": 50,
|
||||
"h24": 50,
|
||||
"h48": 50,
|
||||
"drpState": 1,
|
||||
"rz": 60.78,
|
||||
"w": 164.6,
|
||||
"a_fsltdz": -4.109999999999999,
|
||||
"rzTm": "2025-06-08T03:00:00.000Z",
|
||||
"rz": 120,
|
||||
"w": 13.55,
|
||||
"a_fsltdz": -17,
|
||||
"rzTm": "2025-06-06T00:00:00.000Z",
|
||||
"rzWarning": 0,
|
||||
"rzState": 2
|
||||
},
|
||||
{
|
||||
"stcd": "61612560",
|
||||
"type": "sk",
|
||||
"hasRz": true,
|
||||
"stnm": "大河铺水库",
|
||||
"adcd": "421181112000",
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 114.941111,
|
||||
"lttd": 31.464444,
|
||||
"elev": 0,
|
||||
"damel": 162.21,
|
||||
"dsflz": 160.08,
|
||||
"fsltdz": 159,
|
||||
"ddz": 142.5,
|
||||
"zcxsw": 159,
|
||||
"drpTm": "2025-06-06T22:00:00.000Z",
|
||||
"today": 50,
|
||||
"h1": 50,
|
||||
"h3": 50,
|
||||
"h6": 50,
|
||||
"h12": 50,
|
||||
"h24": 50,
|
||||
"h48": 50,
|
||||
"drpState": 1,
|
||||
"rz": 144.5,
|
||||
"w": 1.66,
|
||||
"a_fsltdz": -14.5,
|
||||
"rzTm": "2025-06-06T00:00:00.000Z",
|
||||
"rzWarning": 0,
|
||||
"rzState": 2
|
||||
},
|
||||
{
|
||||
"stcd": "61612610",
|
||||
"type": "sk",
|
||||
"hasRz": true,
|
||||
"stnm": "三河口水库",
|
||||
"adcd": "421181109000",
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 115.166667,
|
||||
"lttd": 31.333333,
|
||||
"elev": 0,
|
||||
"damel": 156.8,
|
||||
"dsflz": 154.99,
|
||||
"fsltdz": 149,
|
||||
"ddz": 124,
|
||||
"zcxsw": 149,
|
||||
"drpTm": "2025-06-06T22:00:00.000Z",
|
||||
"today": 43.5,
|
||||
"h1": 32,
|
||||
"h3": 43.5,
|
||||
"h6": 43.5,
|
||||
"h12": 43.5,
|
||||
"h24": 43.5,
|
||||
"h48": 43.5,
|
||||
"drpState": 1,
|
||||
"rz": 141.56,
|
||||
"w": 78.3,
|
||||
"a_fsltdz": -7.439999999999998,
|
||||
"rzTm": "2025-06-06T22:00:00.000Z",
|
||||
"rzWarning": 0,
|
||||
"rzState": 1
|
||||
},
|
||||
{
|
||||
"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-06-06T22:00:00.000Z",
|
||||
"today": 18,
|
||||
"h1": 18,
|
||||
"h3": 18,
|
||||
"h6": 18,
|
||||
"h12": 18,
|
||||
"h24": 18,
|
||||
"h48": 18,
|
||||
"drpState": 1,
|
||||
"rz": 117.78,
|
||||
"w": 6.215,
|
||||
"a_fsltdz": -4.659999999999997,
|
||||
"rzTm": "2025-06-06T22:00:00.000Z",
|
||||
"rzWarning": 0,
|
||||
"rzState": 1
|
||||
},
|
||||
|
|
@ -151,90 +247,158 @@
|
|||
"fsltdz": 93,
|
||||
"ddz": 78.02,
|
||||
"zcxsw": 93,
|
||||
"drpTm": "2025-06-08T03:00:00.000Z",
|
||||
"today": 13,
|
||||
"h1": 2.5,
|
||||
"h3": 10.5,
|
||||
"h6": 14,
|
||||
"h12": 15.5,
|
||||
"h24": 22,
|
||||
"h48": 74.5,
|
||||
"drpTm": "2025-06-06T22:00:00.000Z",
|
||||
"today": 15,
|
||||
"h1": 15,
|
||||
"h3": 15,
|
||||
"h6": 15,
|
||||
"h12": 15,
|
||||
"h24": 15,
|
||||
"h48": 15,
|
||||
"drpState": 1,
|
||||
"rz": 85.27,
|
||||
"w": 54.6,
|
||||
"a_fsltdz": -7.730000000000004,
|
||||
"rzTm": "2025-06-08T03:00:00.000Z",
|
||||
"rz": 84.67,
|
||||
"w": 50.9,
|
||||
"a_fsltdz": -8.329999999999998,
|
||||
"rzTm": "2025-06-06T22:00:00.000Z",
|
||||
"rzWarning": 0,
|
||||
"rzState": 1
|
||||
},
|
||||
}
|
||||
],
|
||||
"warnDrpSt": [
|
||||
{
|
||||
"stcd": "61612700",
|
||||
"type": "sk",
|
||||
"hasRz": true,
|
||||
"stnm": "碧绿河水库",
|
||||
"adcd": "421181109000",
|
||||
"stcd": "61615110",
|
||||
"stnm": "杨梅河(木子店)",
|
||||
"adcd": "421181000000000",
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 115.214444,
|
||||
"lttd": 31.299722,
|
||||
"elev": 0,
|
||||
"damel": 142.9,
|
||||
"dsflz": 139.08,
|
||||
"fsltdz": 137,
|
||||
"ddz": 105,
|
||||
"zcxsw": 137,
|
||||
"drpTm": "2025-06-08T03:00:00.000Z",
|
||||
"today": 8.5,
|
||||
"h1": 6,
|
||||
"h3": 7.5,
|
||||
"h6": 9,
|
||||
"h12": 10.5,
|
||||
"h24": 18,
|
||||
"h48": 106.5,
|
||||
"drpState": 1,
|
||||
"rz": 121,
|
||||
"w": 14.7,
|
||||
"a_fsltdz": -16,
|
||||
"rzTm": "2025-06-08T00:00:00.000Z",
|
||||
"rzWarning": 0,
|
||||
"rzState": 2
|
||||
"lgtd": 115.339667,
|
||||
"lttd": 31.1595,
|
||||
"elev": null,
|
||||
"hasRz": true,
|
||||
"type": "sh",
|
||||
"today": 46,
|
||||
"h1": 44,
|
||||
"h3": 46,
|
||||
"h6": 46,
|
||||
"h12": 46,
|
||||
"h24": 46,
|
||||
"h48": 46,
|
||||
"tm": "2025-06-06T22:25:00.000Z",
|
||||
"state": 1,
|
||||
"warning": 0
|
||||
},
|
||||
{
|
||||
"stcd": "61612580",
|
||||
"type": "sk",
|
||||
"hasRz": true,
|
||||
"stnm": "芭茅河水库",
|
||||
"adcd": "421181110000",
|
||||
"stcd": "61641700",
|
||||
"stnm": "前畈(三河口)",
|
||||
"adcd": "421181000000000",
|
||||
"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-06-08T03:00:00.000Z",
|
||||
"today": 9,
|
||||
"h1": 7.5,
|
||||
"h3": 8,
|
||||
"h6": 9.5,
|
||||
"h12": 11.5,
|
||||
"h24": 17.5,
|
||||
"h48": 65.5,
|
||||
"drpState": 1,
|
||||
"rz": 117.75,
|
||||
"w": 6.191,
|
||||
"a_fsltdz": -4.689999999999998,
|
||||
"rzTm": "2025-06-08T03:00:00.000Z",
|
||||
"rzWarning": 0,
|
||||
"rzState": 1
|
||||
"lgtd": 115.2267,
|
||||
"lttd": 31.3925,
|
||||
"elev": null,
|
||||
"hasRz": false,
|
||||
"type": "sh",
|
||||
"today": 32,
|
||||
"h1": 32,
|
||||
"h3": 32,
|
||||
"h6": 32,
|
||||
"h12": 32,
|
||||
"h24": 32,
|
||||
"h48": 32,
|
||||
"tm": "2025-06-06T22:25:00.000Z",
|
||||
"state": 1,
|
||||
"warning": 0
|
||||
},
|
||||
{
|
||||
"stcd": "61641750",
|
||||
"stnm": "金盘地(三河口)",
|
||||
"adcd": "421181000000000",
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 115.2188,
|
||||
"lttd": 31.2545,
|
||||
"elev": null,
|
||||
"hasRz": false,
|
||||
"type": "sh",
|
||||
"today": 46.5,
|
||||
"h1": 36.5,
|
||||
"h3": 46.5,
|
||||
"h6": 46.5,
|
||||
"h12": 46.5,
|
||||
"h24": 46.5,
|
||||
"h48": 46.5,
|
||||
"tm": "2025-06-06T22:25:00.000Z",
|
||||
"state": 1,
|
||||
"warning": 0
|
||||
},
|
||||
{
|
||||
"stcd": "61641850",
|
||||
"stnm": "饶家畈(三河口)",
|
||||
"adcd": "421181000000000",
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 115.318333,
|
||||
"lttd": 31.293611,
|
||||
"elev": null,
|
||||
"hasRz": false,
|
||||
"type": "sh",
|
||||
"today": 44.5,
|
||||
"h1": 43,
|
||||
"h3": 44.5,
|
||||
"h6": 44.5,
|
||||
"h12": 44.5,
|
||||
"h24": 44.5,
|
||||
"h48": 44.5,
|
||||
"tm": "2025-06-06T22:25:00.000Z",
|
||||
"state": 1,
|
||||
"warning": 0
|
||||
},
|
||||
{
|
||||
"stcd": "61641900",
|
||||
"stnm": "周家河(三河口)",
|
||||
"adcd": "421181000000000",
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 115.164166666,
|
||||
"lttd": 31.32916667,
|
||||
"elev": null,
|
||||
"hasRz": false,
|
||||
"type": "sh",
|
||||
"today": 51.5,
|
||||
"h1": 44.5,
|
||||
"h3": 51.5,
|
||||
"h6": 51.5,
|
||||
"h12": 51.5,
|
||||
"h24": 51.5,
|
||||
"h48": 51.5,
|
||||
"tm": "2025-06-06T22:15:00.000Z",
|
||||
"state": 1,
|
||||
"warning": 0
|
||||
},
|
||||
{
|
||||
"stcd": "61642040",
|
||||
"stnm": "月形塘(龟山)",
|
||||
"adcd": "421181000000000",
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 115.2875,
|
||||
"lttd": 31.2292,
|
||||
"elev": null,
|
||||
"hasRz": false,
|
||||
"type": "sh",
|
||||
"today": 50.5,
|
||||
"h1": 49,
|
||||
"h3": 50.5,
|
||||
"h6": 50.5,
|
||||
"h12": 50.5,
|
||||
"h24": 50.5,
|
||||
"h48": 50.5,
|
||||
"tm": "2025-06-06T22:25:00.000Z",
|
||||
"state": 0,
|
||||
"warning": 1
|
||||
},
|
||||
{
|
||||
"stcd": "61612610",
|
||||
"type": "sk",
|
||||
"hasRz": true,
|
||||
"stnm": "三河口水库",
|
||||
"adcd": "421181109000",
|
||||
"wscd": null,
|
||||
|
|
@ -242,29 +406,196 @@
|
|||
"lgtd": 115.166667,
|
||||
"lttd": 31.333333,
|
||||
"elev": 0,
|
||||
"damel": 156.8,
|
||||
"dsflz": 154.99,
|
||||
"fsltdz": 149,
|
||||
"ddz": 124,
|
||||
"zcxsw": 149,
|
||||
"drpTm": "2025-06-08T03:00:00.000Z",
|
||||
"today": 5,
|
||||
"h1": 3.5,
|
||||
"h3": 4.5,
|
||||
"h6": 5.5,
|
||||
"h12": 7.5,
|
||||
"h24": 13,
|
||||
"h48": 96.5,
|
||||
"drpState": 1,
|
||||
"rz": 141.98,
|
||||
"w": 80.5,
|
||||
"a_fsltdz": -7.02000000000001,
|
||||
"rzTm": "2025-06-08T03:00:00.000Z",
|
||||
"rzWarning": 0,
|
||||
"rzState": 1
|
||||
"hasRz": true,
|
||||
"type": "sk",
|
||||
"tm": "2025-06-06T22:00:00.000Z",
|
||||
"today": 43.5,
|
||||
"h1": 32,
|
||||
"h3": 43.5,
|
||||
"h6": 43.5,
|
||||
"h12": 43.5,
|
||||
"h24": 43.5,
|
||||
"h48": 43.5,
|
||||
"state": 1,
|
||||
"warning": 0
|
||||
},
|
||||
{
|
||||
"stcd": "61612700",
|
||||
"stnm": "碧绿河水库",
|
||||
"adcd": "421181109000",
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 115.214444,
|
||||
"lttd": 31.299722,
|
||||
"elev": 0,
|
||||
"hasRz": true,
|
||||
"type": "sk",
|
||||
"tm": "2025-06-06T22:00:00.000Z",
|
||||
"today": 50,
|
||||
"h1": 38,
|
||||
"h3": 50,
|
||||
"h6": 50,
|
||||
"h12": 50,
|
||||
"h24": 50,
|
||||
"h48": 50,
|
||||
"state": 1,
|
||||
"warning": 0
|
||||
},
|
||||
{
|
||||
"stcd": "61612560",
|
||||
"stnm": "大河铺水库",
|
||||
"adcd": "421181112000",
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 114.941111,
|
||||
"lttd": 31.464444,
|
||||
"elev": 0,
|
||||
"hasRz": true,
|
||||
"type": "sk",
|
||||
"tm": "2025-06-06T22:00:00.000Z",
|
||||
"today": 50,
|
||||
"h1": 50,
|
||||
"h3": 50,
|
||||
"h6": 50,
|
||||
"h12": 50,
|
||||
"h24": 50,
|
||||
"h48": 50,
|
||||
"state": 1,
|
||||
"warning": 0
|
||||
},
|
||||
{
|
||||
"stcd": "61641600",
|
||||
"stnm": "张广河",
|
||||
"adcd": null,
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 115.316887,
|
||||
"lttd": 31.352877,
|
||||
"elev": null,
|
||||
"hasRz": false,
|
||||
"type": "sw",
|
||||
"today": 31,
|
||||
"h1": 30.5,
|
||||
"h3": 31,
|
||||
"h6": 31,
|
||||
"h12": 31,
|
||||
"h24": 31,
|
||||
"h48": 31,
|
||||
"tm": "2025-06-06T22:00:00.000Z",
|
||||
"state": 1,
|
||||
"warning": 0
|
||||
},
|
||||
{
|
||||
"stcd": "61643200",
|
||||
"stnm": "西张店",
|
||||
"adcd": null,
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 114.876389,
|
||||
"lttd": 31.441389,
|
||||
"elev": null,
|
||||
"hasRz": false,
|
||||
"type": "sw",
|
||||
"today": 41.5,
|
||||
"h1": 41.5,
|
||||
"h3": 41.5,
|
||||
"h6": 41.5,
|
||||
"h12": 41.5,
|
||||
"h24": 41.5,
|
||||
"h48": 41.5,
|
||||
"tm": "2025-06-06T22:00:00.000Z",
|
||||
"state": 1,
|
||||
"warning": 0
|
||||
},
|
||||
{
|
||||
"stcd": "Q0142",
|
||||
"stnm": "武麻高速K717+850",
|
||||
"adcd": null,
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 115.1917,
|
||||
"lttd": 31.2036,
|
||||
"elev": null,
|
||||
"hasRz": false,
|
||||
"type": "qx",
|
||||
"today": 36.6,
|
||||
"h1": 36.6,
|
||||
"h3": 36.6,
|
||||
"h6": 36.6,
|
||||
"h12": 36.6,
|
||||
"h24": 36.6,
|
||||
"h48": 36.6,
|
||||
"tm": "2025-06-06T22:00:00.000Z",
|
||||
"state": 1,
|
||||
"warning": 0
|
||||
},
|
||||
{
|
||||
"stcd": "Q9107",
|
||||
"stnm": "三河口",
|
||||
"adcd": null,
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 115.2414,
|
||||
"lttd": 31.3308,
|
||||
"elev": null,
|
||||
"hasRz": false,
|
||||
"type": "qx",
|
||||
"today": 45,
|
||||
"h1": 34.4,
|
||||
"h3": 45,
|
||||
"h6": 45,
|
||||
"h12": 45,
|
||||
"h24": 45,
|
||||
"h48": 45,
|
||||
"tm": "2025-06-06T22:00:00.000Z",
|
||||
"state": 1,
|
||||
"warning": 0
|
||||
},
|
||||
{
|
||||
"stcd": "Q9111",
|
||||
"stnm": "福田河",
|
||||
"adcd": null,
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 115.0944,
|
||||
"lttd": 31.4747,
|
||||
"elev": null,
|
||||
"hasRz": false,
|
||||
"type": "qx",
|
||||
"today": 50.3,
|
||||
"h1": 50.2,
|
||||
"h3": 50.2,
|
||||
"h6": 50.2,
|
||||
"h12": 50.2,
|
||||
"h24": 50.3,
|
||||
"h48": 50.3,
|
||||
"tm": "2025-06-06T22:00:00.000Z",
|
||||
"state": 1,
|
||||
"warning": 0
|
||||
},
|
||||
{
|
||||
"stcd": "Q9127",
|
||||
"stnm": "方家山",
|
||||
"adcd": null,
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 115.1656,
|
||||
"lttd": 31.195,
|
||||
"elev": null,
|
||||
"hasRz": false,
|
||||
"type": "qx",
|
||||
"today": 35.5,
|
||||
"h1": 35.5,
|
||||
"h3": 35.5,
|
||||
"h6": 35.5,
|
||||
"h12": 35.5,
|
||||
"h24": 35.5,
|
||||
"h48": 35.5,
|
||||
"tm": "2025-06-06T22:00:00.000Z",
|
||||
"state": 1,
|
||||
"warning": 0
|
||||
}
|
||||
],
|
||||
"warnDrpSt": [],
|
||||
"crucialRz": [
|
||||
{
|
||||
"stcd": "61615300",
|
||||
|
|
@ -277,8 +608,8 @@
|
|||
"elev": null,
|
||||
"hasRz": true,
|
||||
"type": "sw",
|
||||
"tm": "2025-06-08T03:00:00.000Z",
|
||||
"rz": 134.21,
|
||||
"tm": "2025-06-06T21:00:00.000Z",
|
||||
"rz": 133.89,
|
||||
"state": 1
|
||||
}
|
||||
]
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -337,9 +337,9 @@
|
|||
},
|
||||
"白蚁监测": {
|
||||
"width": 20,
|
||||
"height": 32,
|
||||
"height": 30,
|
||||
"x": 74,
|
||||
"y": 290,
|
||||
"y": 286,
|
||||
"pixelRatio": 0.5,
|
||||
"visible": true
|
||||
},
|
||||
|
|
|
|||
|
|
@ -24,23 +24,9 @@ export const DrpRealPromise = new CachePromise(
|
|||
|
||||
() => fetch(`${process.env.PUBLIC_URL}/data3/drpReal.json`)
|
||||
.then((response) => response.json())
|
||||
// .then(data=>{
|
||||
// const cs = []
|
||||
// const list = data.map((item)=>{
|
||||
// const obj = {...item}
|
||||
// const num = item.lgtd.toString()||'0.000';
|
||||
// const num2 = Number(num.slice(num.length-1,num.length))
|
||||
// obj.h1 = item.h1+num2
|
||||
// obj.h3 = item.h3+num2*1.2
|
||||
// obj.h6 = item.h6+num2*1.5
|
||||
// obj.h12 = item.h12+num2*1.6
|
||||
// obj.h24 = item.h24+num2*1.8
|
||||
// obj.h48 = item.h48+num2*1.9
|
||||
// return obj
|
||||
// })
|
||||
// debugger
|
||||
// return list
|
||||
// })
|
||||
.then(data => {
|
||||
return data.filter(o=>o.state===1)
|
||||
})
|
||||
.catch(() => null),
|
||||
5000
|
||||
);
|
||||
|
|
@ -70,27 +56,31 @@ export const SkRealPromise = new CachePromise(
|
|||
|
||||
() => fetch(`${process.env.PUBLIC_URL}/data3/skReal.json`)
|
||||
.then((response) => response.json())
|
||||
// .then(data=>data.map(o=>{
|
||||
// return {...o,layer:'RealSkLayer',layerPop:'RealSkPop'}
|
||||
// }))
|
||||
.then(data => {
|
||||
return data.map(o => ({ ...o, aRz: parseFloat((o.rz - o.fsltdz).toFixed(2)) }))
|
||||
})
|
||||
.then(data=>{
|
||||
const list = data.map((item)=>{
|
||||
const obj = {...item}
|
||||
const num = item.lgtd.toString()||'0.000';
|
||||
const num2 = Number(num.slice(num.length-1,num.length))
|
||||
obj.h1 = item.h1+num2
|
||||
obj.h3 = item.h3+num2*1.2
|
||||
obj.h6 = item.h6+num2*1.5
|
||||
obj.h12 = item.h12+num2*1.6
|
||||
obj.h24 = item.h24+num2*1.8
|
||||
obj.h48 = item.h48+num2*1.9
|
||||
if(obj.w<=0.5){
|
||||
// c.push(obj)
|
||||
}
|
||||
return obj
|
||||
})
|
||||
return list
|
||||
})
|
||||
// .then(data=>{
|
||||
// const list = data.map((item)=>{
|
||||
// const obj = {...item}
|
||||
// const num = item.lgtd.toString()||'0.000';
|
||||
// const num2 = Number(num.slice(num.length-1,num.length))
|
||||
// obj.h1 = item.h1+num2
|
||||
// obj.h3 = item.h3+num2*1.2
|
||||
// obj.h6 = item.h6+num2*1.5
|
||||
// obj.h12 = item.h12+num2*1.6
|
||||
// obj.h24 = item.h24+num2*1.8
|
||||
// obj.h48 = item.h48+num2*1.9
|
||||
// if(obj.w<=0.5){
|
||||
// // c.push(obj)
|
||||
// }
|
||||
// return obj
|
||||
// })
|
||||
// return list
|
||||
// })
|
||||
// .then(data=>data.filter(o=>o.rzState===1))
|
||||
.catch(() => null),
|
||||
5000
|
||||
);
|
||||
|
|
|
|||
|
|
@ -148,7 +148,7 @@ const map = {
|
|||
setView(id) {
|
||||
let layerVisible = {};
|
||||
const map = window.__mapref
|
||||
if (id === 1 || id == 503) {
|
||||
if (id === 1 || id == 503) {
|
||||
layerVisible = {
|
||||
RealDrpLayer: true,
|
||||
RealHDLayer: true,
|
||||
|
|
@ -171,8 +171,8 @@ const map = {
|
|||
YuwaiLayer: false,
|
||||
AdcdLayer: true,
|
||||
WataLayer: false,
|
||||
RealSkLayerQ2:true,
|
||||
RealHDLayerQ2:true,
|
||||
RealSkLayerQ2: true,
|
||||
RealHDLayerQ2: true,
|
||||
}
|
||||
Object.keys(DCPJ_TYPES).forEach(key => {
|
||||
layerVisible['Dcpj_' + key + 'Layer'] = false;
|
||||
|
|
@ -187,8 +187,8 @@ const map = {
|
|||
YuwaiLayer: false,
|
||||
AdcdLayer: true,
|
||||
WataLayer: false,
|
||||
RealSkLayerQ2:true,
|
||||
RealHDLayerQ2:true,
|
||||
RealSkLayerQ2: true,
|
||||
RealHDLayerQ2: true,
|
||||
}
|
||||
Object.keys(DCPJ_TYPES).forEach(key => {
|
||||
layerVisible['Dcpj_' + key + 'Layer'] = false;
|
||||
|
|
@ -228,7 +228,7 @@ const map = {
|
|||
Object.keys(DCPJ_TYPES).forEach(key => {
|
||||
layerVisible['Dcpj_' + key + 'Layer'] = false;
|
||||
});
|
||||
}else if (id === 5) {
|
||||
} else if (id === 5) {
|
||||
layerVisible = {
|
||||
RealDrpLayer: true,
|
||||
RealHDLayer: false,
|
||||
|
|
@ -246,14 +246,16 @@ const map = {
|
|||
RealDrpLayer: false,
|
||||
RealHDLayer: false,
|
||||
RealSkLayer: false,
|
||||
RainDrpLayer:true,
|
||||
ShuikuLayer:true,
|
||||
RainDrpLayer: true,
|
||||
ShuikuLayer: false,
|
||||
BxSkLayer: true,
|
||||
FzdxLayer: false,
|
||||
WataLayer: false,
|
||||
AdcdLayer: true,
|
||||
RoadLayer: true,
|
||||
RivlLayer: true,
|
||||
RealHDLayerQ2: true,
|
||||
RealSkLayerQ2: true
|
||||
};
|
||||
Object.keys(DCPJ_TYPES).forEach(key => {
|
||||
layerVisible['Dcpj_' + key + 'Layer'] = false;
|
||||
|
|
@ -314,11 +316,17 @@ const map = {
|
|||
AdcdLayer: true,
|
||||
RoadLayer: true,
|
||||
RivlLayer: true,
|
||||
BxjcLayer: true,
|
||||
SyjcLayer: true,
|
||||
SljcLayer: true,
|
||||
ByjcLayer:true
|
||||
BxjcLayer: false,
|
||||
SyjcLayer: false,
|
||||
SljcLayer: false,
|
||||
ByjcLayer: false
|
||||
};
|
||||
dispatch.runtime.setCameraTarget({
|
||||
center: [114.88069, 31.171967],
|
||||
zoom: 12,
|
||||
pitch: 60,
|
||||
bearing: 0
|
||||
});
|
||||
Object.keys(DCPJ_TYPES).forEach(key => {
|
||||
layerVisible['Dcpj_' + key + 'Layer'] = false;
|
||||
});
|
||||
|
|
@ -342,7 +350,7 @@ const map = {
|
|||
layerVisible = {
|
||||
RealDrpLayer: false,
|
||||
RealHDLayer: false,
|
||||
RealSkLayer: true,
|
||||
RealSkLayer: false,
|
||||
BxSkLayer: false,
|
||||
FzdxLayer: true,
|
||||
WataLayer: false,
|
||||
|
|
@ -359,7 +367,7 @@ const map = {
|
|||
RealHDLayer: false,
|
||||
RealSkLayer: false,
|
||||
BxSkLayer: false,
|
||||
XunchaLayer:true,
|
||||
XunchaLayer: true,
|
||||
FzdxLayer: false,
|
||||
WataLayer: false,
|
||||
AdcdLayer: true,
|
||||
|
|
@ -369,7 +377,7 @@ const map = {
|
|||
Object.keys(DCPJ_TYPES).forEach(key => {
|
||||
layerVisible['Dcpj_' + key + 'Layer'] = false;
|
||||
});
|
||||
} else if (id === 207) {
|
||||
} else if (id === 200) {
|
||||
layerVisible = {
|
||||
RealDrpLayer: false,
|
||||
RealHDLayer: false,
|
||||
|
|
@ -395,8 +403,8 @@ const map = {
|
|||
AdcdLayer: true,
|
||||
RoadLayer: true,
|
||||
RivlLayer: true,
|
||||
ShuichangLayer:true,
|
||||
ShuiyuandiLayer:false,
|
||||
ShuichangLayer: true,
|
||||
ShuiyuandiLayer: false,
|
||||
};
|
||||
Object.keys(DCPJ_TYPES).forEach(key => {
|
||||
layerVisible['Dcpj_' + key + 'Layer'] = false;
|
||||
|
|
@ -412,10 +420,10 @@ const map = {
|
|||
AdcdLayer: true,
|
||||
RoadLayer: true,
|
||||
RivlLayer: true,
|
||||
ShuichangLayer:true,
|
||||
ShuichangLayer: true,
|
||||
ShuichangQLayer: true,
|
||||
ShuiyuandiQLayer:true,
|
||||
ShuizhiLayer:true,
|
||||
ShuiyuandiQLayer: true,
|
||||
ShuizhiLayer: true,
|
||||
ShuiyuandiLayer: true,
|
||||
};
|
||||
Object.keys(DCPJ_TYPES).forEach(key => {
|
||||
|
|
@ -432,13 +440,13 @@ const map = {
|
|||
AdcdLayer: true,
|
||||
RoadLayer: true,
|
||||
RivlLayer: true,
|
||||
ShuichangLayer:true,
|
||||
ShuichangLayer: true,
|
||||
ShuichangQLayer: true,
|
||||
};
|
||||
Object.keys(DCPJ_TYPES).forEach(key => {
|
||||
layerVisible['Dcpj_' + key + 'Layer'] = false;
|
||||
});
|
||||
} else if ( id === 303 || id === 306 || id === 305) {
|
||||
} else if (id === 303 || id === 306 || id === 305) {
|
||||
layerVisible = {
|
||||
RealDrpLayer: false,
|
||||
RealHDLayer: false,
|
||||
|
|
@ -453,7 +461,7 @@ const map = {
|
|||
Object.keys(DCPJ_TYPES).forEach(key => {
|
||||
layerVisible['Dcpj_' + key + 'Layer'] = false;
|
||||
});
|
||||
}else if ( id === 307) {
|
||||
} else if (id === 307) {
|
||||
layerVisible = {
|
||||
RealDrpLayer: false,
|
||||
RealHDLayer: true,
|
||||
|
|
@ -485,7 +493,7 @@ const map = {
|
|||
Object.keys(DCPJ_TYPES).forEach(key => {
|
||||
layerVisible['Dcpj_' + key + 'Layer'] = false;
|
||||
});
|
||||
}else if (id == 504) {
|
||||
} else if (id == 504) {
|
||||
layerVisible = {
|
||||
RealDrpLayer: true,
|
||||
TrsqLayer: true,
|
||||
|
|
@ -495,7 +503,7 @@ const map = {
|
|||
Object.keys(DCPJ_TYPES).forEach(key => {
|
||||
layerVisible['Dcpj_' + key + 'Layer'] = false;
|
||||
});
|
||||
}else if (id == 505) {
|
||||
} else if (id == 505) {
|
||||
layerVisible = {
|
||||
BzLayer: true,
|
||||
SbLayer: true,
|
||||
|
|
@ -507,7 +515,7 @@ const map = {
|
|||
Object.keys(DCPJ_TYPES).forEach(key => {
|
||||
layerVisible['Dcpj_' + key + 'Layer'] = false;
|
||||
});
|
||||
}else if (id == 506 || id == 507) {
|
||||
} else if (id == 506 || id == 507) {
|
||||
layerVisible = {
|
||||
AdcdLayer: true,
|
||||
RivlLayer: true,
|
||||
|
|
@ -527,9 +535,9 @@ const map = {
|
|||
dispatch.runtime.setFeaturePop(null);
|
||||
|
||||
|
||||
if (id === 8){
|
||||
if (id === 8) {
|
||||
dispatch.rcview.showRealContour('h24')
|
||||
}else{
|
||||
} else {
|
||||
dispatch.runtime.setLayerSetting({ contour: null, dem: undefined });
|
||||
dispatch.runtime.setLayerSetting({ planeArea: null });
|
||||
dispatch.map.setLayerVisible({ ContourLayer: false });
|
||||
|
|
@ -562,14 +570,209 @@ const map = {
|
|||
dispatch.runtime.setYyfa({})
|
||||
}
|
||||
|
||||
if (id === 3) {
|
||||
if (
|
||||
id === 3
|
||||
|| id === 203
|
||||
|| id === 205
|
||||
|| id === 206
|
||||
) {
|
||||
dispatch.map.setLayerSetting({ dom: true });
|
||||
// map.setLayoutProperty('卫星图', 'visibility', 'visible');
|
||||
} else {
|
||||
dispatch.map.setLayerSetting({dom: false});
|
||||
dispatch.map.setLayerSetting({ dom: false });
|
||||
// map.setLayoutProperty('卫星图', 'visibility', 'none');
|
||||
}
|
||||
if (id == 203) {
|
||||
const skdata = [
|
||||
{
|
||||
"stcd": "61614200",
|
||||
"type": "sk",
|
||||
"hasRz": true,
|
||||
"stnm": "浮桥河水库",
|
||||
"adcd": "421181100000",
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 114.875,
|
||||
"lttd": 31.166667,
|
||||
"elev": 0,
|
||||
"damel": 71.33,
|
||||
"dsflz": 68.04,
|
||||
"fsltdz": 64.89,
|
||||
"ddz": 51.78,
|
||||
"zcxsw": 64.89,
|
||||
"drpTm": "2025-06-03T02:00:00.000Z",
|
||||
"today": 0,
|
||||
"h1": 5,
|
||||
"h3": 6,
|
||||
"h6": 7.5,
|
||||
"h12": 8,
|
||||
"h24": 9,
|
||||
"h48": 26,
|
||||
"drpState": 1,
|
||||
"rz": 60.71,
|
||||
"w": 162.8,
|
||||
"a_fsltdz": -4.18,
|
||||
"rzTm": "2025-06-03T02:00:00.000Z",
|
||||
"rzWarning": 0,
|
||||
"rzState": 1,
|
||||
"aRz": -4.18
|
||||
},
|
||||
{
|
||||
"stcd": "61613010",
|
||||
"type": "sk",
|
||||
"hasRz": true,
|
||||
"stnm": "明山水库",
|
||||
"adcd": "421181103000",
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 115.066667,
|
||||
"lttd": 31.016667,
|
||||
"elev": 0,
|
||||
"damel": 98.7,
|
||||
"dsflz": 96.07,
|
||||
"fsltdz": 93,
|
||||
"ddz": 78.02,
|
||||
"zcxsw": 93,
|
||||
"drpTm": "2025-06-03T02:00:00.000Z",
|
||||
"today": 0,
|
||||
"h1": 7,
|
||||
"h3": 8.4,
|
||||
"h6": 10.5,
|
||||
"h12": 11.200000000000001,
|
||||
"h24": 12.6,
|
||||
"h48": 25.799999999999997,
|
||||
"drpState": 1,
|
||||
"rz": 84.43,
|
||||
"w": 49.5,
|
||||
"a_fsltdz": -8.569999999999993,
|
||||
"rzTm": "2025-06-03T02:00:00.000Z",
|
||||
"rzWarning": 0,
|
||||
"rzState": 1,
|
||||
"aRz": -8.57
|
||||
},
|
||||
{
|
||||
"stcd": "61612610",
|
||||
"type": "sk",
|
||||
"hasRz": true,
|
||||
"stnm": "三河口水库",
|
||||
"adcd": "421181109000",
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 115.166667,
|
||||
"lttd": 31.333333,
|
||||
"elev": 0,
|
||||
"damel": 156.8,
|
||||
"dsflz": 154.99,
|
||||
"fsltdz": 149,
|
||||
"ddz": 124,
|
||||
"zcxsw": 149,
|
||||
"drpTm": "2025-06-03T02:00:00.000Z",
|
||||
"today": 0,
|
||||
"h1": 7,
|
||||
"h3": 8.4,
|
||||
"h6": 10.5,
|
||||
"h12": 11.200000000000001,
|
||||
"h24": 12.6,
|
||||
"h48": 25.799999999999997,
|
||||
"drpState": 1,
|
||||
"rz": 141.45,
|
||||
"w": 77.8,
|
||||
"a_fsltdz": -7.550000000000011,
|
||||
"rzTm": "2025-06-03T01:00:00.000Z",
|
||||
"rzWarning": 0,
|
||||
"rzState": 1,
|
||||
"aRz": -7.55
|
||||
},
|
||||
{
|
||||
"stcd": "61612700",
|
||||
"type": "sk",
|
||||
"hasRz": true,
|
||||
"stnm": "碧绿河水库",
|
||||
"adcd": "421181109000",
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 115.214444,
|
||||
"lttd": 31.299722,
|
||||
"elev": 0,
|
||||
"damel": 142.9,
|
||||
"dsflz": 139.08,
|
||||
"fsltdz": 137,
|
||||
"ddz": 105,
|
||||
"zcxsw": 137,
|
||||
"drpTm": "2025-06-03T02:00:00.000Z",
|
||||
"today": 0,
|
||||
"h1": 4,
|
||||
"h3": 4.8,
|
||||
"h6": 6,
|
||||
"h12": 6.4,
|
||||
"h24": 7.2,
|
||||
"h48": 22.6,
|
||||
"drpState": 1,
|
||||
"rz": 119.6,
|
||||
"w": 13.15,
|
||||
"a_fsltdz": -17.400000000000006,
|
||||
"rzTm": "2025-06-03T00:00:00.000Z",
|
||||
"rzWarning": 0,
|
||||
"rzState": 2,
|
||||
"aRz": -17.4
|
||||
}
|
||||
]
|
||||
const layer = map.getLayer('关联站点')
|
||||
if (layer) {
|
||||
map.removeLayer('关联站点');
|
||||
map.removeSource('关联站点');
|
||||
}
|
||||
map.addLayer({
|
||||
'id': '关联站点',//+new Date().getTime(),
|
||||
'type': 'symbol',
|
||||
'source': {
|
||||
'type': 'geojson',
|
||||
'data': {
|
||||
'type': 'FeatureCollection',
|
||||
'features': [],
|
||||
},
|
||||
},
|
||||
'layout': {
|
||||
'icon-allow-overlap': true,
|
||||
'text-allow-overlap': true,
|
||||
'icon-image': '水库-离线',
|
||||
'icon-size': [
|
||||
'interpolate', ['linear'], ['zoom'],
|
||||
10, 0.4,
|
||||
14, 0.8,
|
||||
],
|
||||
'text-allow-overlap': true,
|
||||
'text-size': [
|
||||
'interpolate', ['linear'], ['zoom'],
|
||||
10, 10,
|
||||
14, 14,
|
||||
],
|
||||
'text-font': ['Roboto Black'],
|
||||
'text-field': [
|
||||
'step',
|
||||
['zoom'],
|
||||
'',
|
||||
12, ['get', 'stnm']
|
||||
],
|
||||
'text-anchor': 'top',
|
||||
'text-offset': [0, 1],
|
||||
|
||||
},
|
||||
'paint': {
|
||||
'text-color': '#fff'
|
||||
},
|
||||
'visibility': 'visible',
|
||||
});
|
||||
map.getSource('关联站点').setData(parseGeoJSON(skdata))
|
||||
}
|
||||
|
||||
if(id!==200&&id!==203&&id!==205&&id!==206){
|
||||
const layer = map.getLayer('临时水库tz')
|
||||
if(layer){
|
||||
map.removeLayer('临时水库tz');
|
||||
map.removeSource('临时水库tz');
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
};
|
||||
|
|
|
|||
|
|
@ -82,9 +82,8 @@ export default function calcLayout(view, rightStack, hidePanels) {
|
|||
} else if (view === 203) {
|
||||
left = [
|
||||
{ key: '天气' },
|
||||
{ key: '变形监测', style: { height: '20rem', flexGrow: 1 } },
|
||||
{ key: '渗压监测', style: { height: '20rem', flexGrow: 1 } },
|
||||
{ key: '渗流监测', style: { height: '20rem', flexGrow: 1 } },
|
||||
{ key: '关联站点',style: { height: '15rem', flexGrow: 1 } },
|
||||
{ key: '水库水量统计',style: { height: '22rem' } },
|
||||
// { key: '安全监测', style: { height: '20rem', flexGrow: 1 } },
|
||||
];
|
||||
leftFullHeight = true;
|
||||
|
|
@ -108,11 +107,12 @@ export default function calcLayout(view, rightStack, hidePanels) {
|
|||
{ key: '巡查任务总览', style: { height: '40rem', flexGrow: 1 } },
|
||||
];
|
||||
leftFullHeight = true;
|
||||
} else if (view === 207) {
|
||||
} else if (view === 200) {
|
||||
left = [
|
||||
{ key: '天气' },
|
||||
{ key: '水库总览', style: { height: '24rem', flexGrow: 1 } },
|
||||
{ key: '水库列表', style: { height: '24rem', flexGrow: 1 } },
|
||||
{ key: '水库总览', style: { height: '30rem', flexGrow: 1 } },
|
||||
{ key: '超汛水库', style: { height: '16rem'} },
|
||||
// { key: '水库列表', style: { height: '16rem'} },
|
||||
];
|
||||
} else if (view === 301) {
|
||||
left = [
|
||||
|
|
@ -320,12 +320,12 @@ export default function calcLayout(view, rightStack, hidePanels) {
|
|||
{ key: '巡查问题看板', style: { height: '70%', flexGrow: 1 } },
|
||||
{ key: '水库管护', style: { height: '10rem', flexGrow: 1 } },
|
||||
];
|
||||
} else if (view === 207) {
|
||||
} else if (view === 200) {
|
||||
right = [
|
||||
{ key: '警报' },
|
||||
{ key: '关联站点',style: { height: '15rem', flexGrow: 1 } },
|
||||
{ key: '水库水量统计',style: { height: '22rem' } },
|
||||
{ key: '洪水防御',style: { height: '18rem', flexGrow: 1 } },
|
||||
// { key: '关联站点',style: { height: '15rem', flexGrow: 1 } },
|
||||
// { key: '水库水量统计',style: { height: '22rem' } },
|
||||
// { key: '洪水防御',style: { height: '18rem', flexGrow: 1 } },
|
||||
];
|
||||
rightFullHeight = true;
|
||||
} else if (view === 301) {
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ function HDStDlg({ record, onClose }) {
|
|||
<DpTabs value={value} indicatorColor="primary" onChange={(_, v) => setValue(v)}>
|
||||
<DpTab label={record.res_nm+'-'+record.cd_nm} />
|
||||
</DpTabs>
|
||||
<button className={classes.addButton} onClick={()=>setVisible(true)}>三维展示</button>
|
||||
{/* <button className={classes.addButton} onClick={()=>setVisible(true)}>三维展示</button> */}
|
||||
<DpCloseButton onClick={onClose} />
|
||||
</DpAppBar>
|
||||
<div style={{ padding: '2rem', hminHeight: '50rem',maxHeight: '60rem' }}>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,114 @@
|
|||
import { Grid, withStyles, TableCell } from '@material-ui/core';
|
||||
import React,{useState} from 'react';
|
||||
import useRequest from '../../../../utils/useRequest';
|
||||
import { skInfo } from '../../../../models/_/search';
|
||||
import { adnmCun, adnmZhen } from '../../../../models/_/adcd';
|
||||
import { Person } from '@material-ui/icons';
|
||||
import PanelBox from '../../components/PanelBox';
|
||||
import { makeStyles } from '@material-ui/core/styles';
|
||||
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';
|
||||
import { DatePicker } from 'antd';
|
||||
import moment from 'moment';
|
||||
import ReactECharts from 'echarts-for-react';
|
||||
import ModalView from './view'
|
||||
|
||||
|
||||
const { RangePicker } = DatePicker;
|
||||
const useStyles = makeStyles({
|
||||
tableContainer: {
|
||||
background: '#182d42', // 设置表格容器的背景颜色
|
||||
},
|
||||
item: {
|
||||
'& .MuiGrid-item': {
|
||||
'& [class*="makeStyles-title"]': {
|
||||
color: '#fff',
|
||||
backgroundColor: '#104175',
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
const DpTableCell = withStyles({
|
||||
head: {
|
||||
backgroundColor: '#104175',
|
||||
color: '#fff',
|
||||
fontSize: '1rem',
|
||||
padding: '0.5rem 0.3rem !important',
|
||||
},
|
||||
body: {
|
||||
color: '#fff',
|
||||
fontSize: '0.9rem',
|
||||
padding: '0.7rem 0.3rem !important',
|
||||
borderBottom: 'none',
|
||||
position: "relative"
|
||||
},
|
||||
})(TableCell);
|
||||
function SkInfo() {
|
||||
const classes = useStyles();
|
||||
const data = [
|
||||
{
|
||||
type: '爆管',
|
||||
location: '龙池桥街道',
|
||||
tm: '2025-06-06 15:38:00',
|
||||
status:'已解除'
|
||||
},
|
||||
{
|
||||
type: '压力异常',
|
||||
location: '夫子河监测点',
|
||||
tm: '2025-06-06 15:38:00',
|
||||
status:'未解除'
|
||||
},
|
||||
{
|
||||
type: '漏损',
|
||||
location: '南湖街道',
|
||||
tm: '2025-06-06 15:38:00',
|
||||
status:'已解除'
|
||||
}
|
||||
];
|
||||
const [visible, setVisible] = useState(false)
|
||||
|
||||
return (
|
||||
<div style={{ display: 'flex' }}>
|
||||
|
||||
<TableContainer style={{ height: '49vh' }} className={classes.tableContainer}>
|
||||
<Table size="small" stickyHeader>
|
||||
<TableHead>
|
||||
<TableRow style={{ padding: '30px 0' }}>
|
||||
<DpTableCell align="center">序号</DpTableCell>
|
||||
<DpTableCell align="center">报警类型</DpTableCell>
|
||||
<DpTableCell align="center">所在位置</DpTableCell>
|
||||
<DpTableCell align="center">报警时间</DpTableCell>
|
||||
<DpTableCell align="center">状态</DpTableCell>
|
||||
<DpTableCell align="center">处置情况</DpTableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
<TableBody>
|
||||
{data.map((row,i) => (
|
||||
<DpTableRow key={row.stcd}>
|
||||
<DpTableCell align="center">
|
||||
<div className="table-ellipsis cursor-pointer" onClick={() => { }}>{i+ 1}</div>
|
||||
</DpTableCell>
|
||||
<DpTableCell align="center">{row.type}</DpTableCell>
|
||||
<DpTableCell align="center">{row.location}</DpTableCell>
|
||||
<DpTableCell align="center">{row.tm}</DpTableCell>
|
||||
<DpTableCell align="center">{row.status}</DpTableCell>
|
||||
<DpTableCell align="center" onClick={() => setVisible(true)}>查看</DpTableCell>
|
||||
</DpTableRow>
|
||||
))}
|
||||
</TableBody>
|
||||
</Table>
|
||||
</TableContainer>
|
||||
<ModalView
|
||||
open={visible}
|
||||
onClose={() => setVisible(false)}
|
||||
></ModalView>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
export default SkInfo;
|
||||
|
|
@ -15,10 +15,14 @@ import SkPlan from '../../components/SkInfo/SkPlan';
|
|||
import DpBackgroundDrop from '../../../../layouts/mui/DpBackdrop';
|
||||
import DpCloseButton from '../../../../layouts/mui/DpCloseButton';
|
||||
import ZrrPlan from './zrrPlan'
|
||||
import Shuizhijc from './Shuizhijc'
|
||||
import Shuizhijc from './loushun'
|
||||
import Jianceflow from './jianceflow'
|
||||
import Yxsj from './yxsj'
|
||||
import Spjk from './spjk'
|
||||
|
||||
|
||||
|
||||
import Bjjl from './Bjjl'
|
||||
import Jbxx from './jbxx'
|
||||
import './index.less'
|
||||
function SkDlg({ record, onClose }) {
|
||||
|
|
@ -47,8 +51,8 @@ function SkDlg({ record, onClose }) {
|
|||
<div style={{ padding: '2rem', height: '50rem' }}>
|
||||
{value === 0 && <Jbxx record={record} />}
|
||||
{value === 1 && <Yxsj record={record} />}
|
||||
{value === 2 && <Jianceflow record={record} />}
|
||||
{value === 3 && <Spjk record={record} />}
|
||||
{value === 2 && <Bjjl record={record} />}
|
||||
{value === 3 && <Shuizhijc record={record} />}
|
||||
</div>
|
||||
|
||||
</DialogContent>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,221 @@
|
|||
import { Grid, withStyles, TableCell } from '@material-ui/core';
|
||||
import React from 'react';
|
||||
import useRequest from '../../../../utils/useRequest';
|
||||
import { skInfo } from '../../../../models/_/search';
|
||||
import { adnmCun, adnmZhen } from '../../../../models/_/adcd';
|
||||
import { Person } from '@material-ui/icons';
|
||||
import PanelBox from '../../components/PanelBox';
|
||||
import { makeStyles } from '@material-ui/core/styles';
|
||||
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';
|
||||
import { DatePicker } from 'antd';
|
||||
import moment from 'moment';
|
||||
import ReactECharts from 'echarts-for-react';
|
||||
|
||||
|
||||
const { RangePicker } = DatePicker;
|
||||
const useStyles = makeStyles({
|
||||
tableContainer: {
|
||||
background: '#182d42', // 设置表格容器的背景颜色
|
||||
},
|
||||
item: {
|
||||
'& .MuiGrid-item': {
|
||||
'& [class*="makeStyles-title"]': {
|
||||
color: '#fff',
|
||||
backgroundColor: '#104175',
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
const DpTableCell = withStyles({
|
||||
head: {
|
||||
backgroundColor: '#104175',
|
||||
color: '#fff',
|
||||
fontSize: '1rem',
|
||||
padding: '0.5rem 0.3rem !important',
|
||||
},
|
||||
body: {
|
||||
color: '#fff',
|
||||
fontSize: '0.9rem',
|
||||
padding: '0.7rem 0.3rem !important',
|
||||
borderBottom: 'none',
|
||||
position: "relative"
|
||||
},
|
||||
})(TableCell);
|
||||
function SkInfo() {
|
||||
const classes = useStyles();
|
||||
const data = [
|
||||
{ time: '06-08 12:00', turbidity: 0.3, chlorine: 0.5, ph: 7.2 },
|
||||
{ time: '06-08 11:00', turbidity: 0.2, chlorine: 0.4, ph: 7.1 },
|
||||
{ time: '06-08 10:00', turbidity: 0.4, chlorine: 0.6, ph: 7.3 },
|
||||
{ time: '06-08 09:00', turbidity: 0.3, chlorine: 0.5, ph: 7.2 },
|
||||
{ time: '06-08 08:00', turbidity: 0.2, chlorine: 0.4, ph: 7.0 },
|
||||
{ time: '06-08 07:00', turbidity: 0.4, chlorine: 0.5, ph: 7.4 },
|
||||
{ time: '06-08 06:00', turbidity: 0.3, chlorine: 0.6, ph: 7.2 },
|
||||
{ time: '06-08 05:00', turbidity: 0.2, chlorine: 0.5, ph: 7.1 },
|
||||
{ time: '06-08 04:00', turbidity: 0.3, chlorine: 0.4, ph: 7.3 },
|
||||
{ time: '06-08 03:00', turbidity: 0.4, chlorine: 0.5, ph: 7.2 },
|
||||
{ time: '06-08 02:00', turbidity: 0.3, chlorine: 0.6, ph: 7.1 },
|
||||
{ time: '06-08 01:00', turbidity: 0.2, chlorine: 0.5, ph: 7.3 },
|
||||
{ time: '06-08 00:00', turbidity: 0.3, chlorine: 0.4, ph: 7.2 },
|
||||
{ time: '06-07 23:00', turbidity: 0.4, chlorine: 0.5, ph: 7.1 },
|
||||
{ time: '06-07 22:00', turbidity: 0.3, chlorine: 0.6, ph: 7.3 },
|
||||
{ time: '06-07 21:00', turbidity: 0.2, chlorine: 0.5, ph: 7.2 },
|
||||
{ time: '06-07 20:00', turbidity: 0.3, chlorine: 0.4, ph: 7.1 },
|
||||
{ time: '06-07 19:00', turbidity: 0.4, chlorine: 0.5, ph: 7.3 },
|
||||
{ time: '06-07 18:00', turbidity: 0.3, chlorine: 0.6, ph: 7.2 },
|
||||
{ time: '06-07 17:00', turbidity: 0.2, chlorine: 0.5, ph: 7.1 },
|
||||
{ time: '06-07 16:00', turbidity: 0.3, chlorine: 0.4, ph: 7.3 },
|
||||
{ time: '06-07 15:00', turbidity: 0.4, chlorine: 0.5, ph: 7.2 },
|
||||
{ time: '06-07 14:00', turbidity: 0.3, chlorine: 0.6, ph: 7.1 },
|
||||
{ time: '06-07 13:00', turbidity: 0.2, chlorine: 0.5, ph: 7.3 },
|
||||
{ time: '06-07 12:00', turbidity: 0.3, chlorine: 0.4, ph: 7.2 }
|
||||
];
|
||||
const option = {
|
||||
|
||||
tooltip: {
|
||||
trigger: 'axis'
|
||||
},
|
||||
grid: {
|
||||
top: '15%',
|
||||
left: '3%',
|
||||
right: '8%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
boundaryGap: false,
|
||||
data: ['04-20', '04-21', '04-22', '04-23', '04-24', '04-25', '04-26'],
|
||||
axisLine: {
|
||||
lineStyle: {
|
||||
color: '#fff'
|
||||
}
|
||||
},
|
||||
axisLabel: {
|
||||
color: '#fff'
|
||||
}
|
||||
},
|
||||
yAxis: {
|
||||
type: 'value',
|
||||
name: '流量m³/h',
|
||||
splitLine: {
|
||||
lineStyle: {
|
||||
type: 'dashed',
|
||||
color: 'rgba(255,255,255,0.2)'
|
||||
}
|
||||
},
|
||||
axisLine: {
|
||||
lineStyle: {
|
||||
color: '#fff'
|
||||
}
|
||||
},
|
||||
axisLabel: {
|
||||
color: '#fff'
|
||||
}
|
||||
},
|
||||
series: [
|
||||
{
|
||||
name: '夜间流量',
|
||||
type: 'line',
|
||||
smooth: true,
|
||||
areaStyle: {
|
||||
color: {
|
||||
type: 'linear',
|
||||
x: 0,
|
||||
y: 0,
|
||||
x2: 0,
|
||||
y2: 1,
|
||||
colorStops: [{
|
||||
offset: 0,
|
||||
color: 'rgba(0,255,255,0.3)'
|
||||
}, {
|
||||
offset: 1,
|
||||
color: 'rgba(0,255,255,0)'
|
||||
}]
|
||||
}
|
||||
},
|
||||
lineStyle: {
|
||||
color: '#00ffff'
|
||||
},
|
||||
data: [180, 205, 135, 150, 180, 120, 190],
|
||||
markLine: {
|
||||
silent: true,
|
||||
lineStyle: {
|
||||
color: '#ffd700',
|
||||
type: 'dashed'
|
||||
},
|
||||
data: [{
|
||||
yAxis: 180,
|
||||
name: '安全流量上限'
|
||||
}]
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
||||
return (
|
||||
<div style={{ display: 'flex' }}>
|
||||
<div style={{ width: 600 }}>
|
||||
<div className='toolbar' style={{ marginBottom: '10px' }}>
|
||||
<div className='tm' style={{ position: "relative", zIndex: 999999, width: '60%' }}>
|
||||
<RangePicker
|
||||
width="50%"
|
||||
className='time-picker'
|
||||
style={{
|
||||
flex: 1,
|
||||
background: "transparent",
|
||||
border: "none",
|
||||
color: "#fff",
|
||||
}}
|
||||
allowClear
|
||||
format="YYYY-MM-DD HH:mm"
|
||||
showTime={{
|
||||
format: 'HH:mm',
|
||||
}}
|
||||
value={[moment('2025-04-20 12:00:00'), moment('2025-04-26 12:00:00')]}
|
||||
/>
|
||||
</div>
|
||||
<button className='search'>查询</button>
|
||||
</div>
|
||||
<TableContainer style={{ height: '49vh' }} className={classes.tableContainer}>
|
||||
<Table size="small" stickyHeader>
|
||||
<TableHead>
|
||||
<TableRow style={{ padding: '30px 0' }}>
|
||||
<DpTableCell align="center">序号</DpTableCell>
|
||||
<DpTableCell align="center">漏水量(m³)</DpTableCell>
|
||||
<DpTableCell align="center">供水量(m³)</DpTableCell>
|
||||
<DpTableCell align="center">漏损率(%)</DpTableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
<TableBody>
|
||||
{[].map((row,i) => (
|
||||
<DpTableRow key={row.stcd}>
|
||||
<DpTableCell align="center">
|
||||
<div className="table-ellipsis cursor-pointer" onClick={() => { }}>{i+ 1}</div>
|
||||
</DpTableCell>
|
||||
<DpTableCell align="center">{row.turbidity}</DpTableCell>
|
||||
<DpTableCell align="center">{row.chlorine}</DpTableCell>
|
||||
<DpTableCell align="center">{row.ph}</DpTableCell>
|
||||
</DpTableRow>
|
||||
))}
|
||||
</TableBody>
|
||||
</Table>
|
||||
</TableContainer>
|
||||
</div>
|
||||
<div style={{ height: '500px', width: '100%', flex: 1 }}>
|
||||
<ReactECharts
|
||||
option={option}
|
||||
style={{ height: '100%' }}
|
||||
opts={{ renderer: 'canvas' }}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
export default SkInfo;
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
import React from 'react';
|
||||
import DpTab from '../../../../layouts/mui/DpTab';
|
||||
import Dialog from '@material-ui/core/Dialog';
|
||||
import DialogContent from '@material-ui/core/DialogContent';
|
||||
import DpPaperComponent from '../../../../layouts/mui/DpPaperCompanent';
|
||||
import DpTabs from '../../../../layouts/mui/DpTabs';
|
||||
import DpAppBar from '../../../../layouts/mui/DpAppBar';
|
||||
import DpBackgroundDrop from '../../../../layouts/mui/DpBackdrop';
|
||||
import DpCloseButton from '../../../../layouts/mui/DpCloseButton';
|
||||
|
||||
function HDStDlg({ record, onClose,open }) {
|
||||
const [value, setValue] = React.useState(0);
|
||||
|
||||
return (
|
||||
<Dialog
|
||||
open={open}
|
||||
onClose={onClose}
|
||||
maxWidth="xl"
|
||||
style={{ borderRadius: 0 }}
|
||||
PaperComponent={DpPaperComponent}
|
||||
BackdropComponent={DpBackgroundDrop}
|
||||
>
|
||||
<div className="boxhead"></div>
|
||||
<DialogContent style={{ padding: 0, width: '70rem', overflowX: 'hidden',height:'50rem' }}>
|
||||
<DpAppBar position="sticky">
|
||||
<DpTabs value={value} indicatorColor="primary" onChange={(_, v) => setValue(v)}>
|
||||
<DpTab label="任务信息" />
|
||||
</DpTabs>
|
||||
<DpCloseButton onClick={onClose} />
|
||||
</DpAppBar>
|
||||
<div style={{padding:10}}>
|
||||
<img src={`${process.env.PUBLIC_URL}/assets/loushun.png`} style={{width:'100%'}}></img>
|
||||
</div>
|
||||
</DialogContent>
|
||||
<div className="boxfoot"></div>
|
||||
</Dialog>
|
||||
)
|
||||
}
|
||||
|
||||
export default React.memo(HDStDlg);
|
||||
|
|
@ -45,8 +45,8 @@ function SkDlg({ record, onClose }) {
|
|||
<DpCloseButton onClick={onClose} />
|
||||
</DpAppBar>
|
||||
<div style={{ padding: '2rem', height: '50rem' }}>
|
||||
{value === 0 && <DrpSearch record={record} />}
|
||||
{value === 1 && <RzSearch record={record} />}
|
||||
{value === 0 && <DrpSearch record={{...record,tm:record.rzTm}} />}
|
||||
{value === 1 && <RzSearch record={{...record,tm:record.rzTm}} />}
|
||||
{value === 2 && <SkImgSearch record={record} />}
|
||||
{value === 3 && <SkInfo record={record} />}
|
||||
{value === 4 && <ZrrPlan />}
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ function HDStDlg({ record, onClose }) {
|
|||
<TableHead>
|
||||
<TableRow>
|
||||
<DpTableCell align="center">序号</DpTableCell>
|
||||
<DpTableCell align="center">水库名称</DpTableCell>
|
||||
<DpTableCell align="center">预警时间</DpTableCell>
|
||||
<DpTableCell align="center">测点编号</DpTableCell>
|
||||
<DpTableCell align="center">预警级别</DpTableCell>
|
||||
|
|
@ -53,6 +54,7 @@ function HDStDlg({ record, onClose }) {
|
|||
<DpTableCell align="center">
|
||||
<div className="table-ellipsis cursor-pointer" >1</div>
|
||||
</DpTableCell>
|
||||
<DpTableCell align="center">浮桥河水库</DpTableCell>
|
||||
<DpTableCell align="center">2025-5-20 10:00:00</DpTableCell>
|
||||
<DpTableCell align="center">GN1</DpTableCell>
|
||||
<DpTableCell align="center">红色</DpTableCell>
|
||||
|
|
|
|||
|
|
@ -204,7 +204,7 @@ function DrpChart({ record }) {
|
|||
const classes = useStyles();
|
||||
|
||||
const tm = [moment().add(-24, 'hour'), moment()];
|
||||
const resultTm = ['2025-06-07 10:00:00','2025-06-08 10:00:00']//normalizeSearchTmRange(tm, 'h');
|
||||
const resultTm = [moment(record.tm).add(-1,'days').format('YYYY-MM-DD HH:00:00'),moment(record.tm).format('YYYY-MM-DD HH:00:00')]//normalizeSearchTmRange(tm, 'h');
|
||||
|
||||
useEffect(() => {
|
||||
drpSearch(record.type, record.stcd, 'h', resultTm, record.countycode).then((data) => {
|
||||
|
|
@ -378,9 +378,9 @@ function DrpChart({ record }) {
|
|||
option={option}
|
||||
style={{ height: '15rem', width: '30rem' }}
|
||||
/>
|
||||
<div className={classes.grid}>
|
||||
{/* <Typography variant="subtitle2">上报时间: {record.tm ? moment(record.tm).format('YYYY-MM-DD HH:mm:ss') : '-'}</Typography> */}
|
||||
{/* <div className={classes.realdrpgrid}>
|
||||
<div className={classes.grid} >
|
||||
<Typography variant="subtitle2" style={{color:"#ffffff"}}>上报时间: {record.tm ? moment(record.tm).format('YYYY-MM-DD HH:mm:ss') : '-'}</Typography>
|
||||
<div className={classes.realdrpgrid}>
|
||||
{
|
||||
['h1', 'h3', 'h6', 'h12', 'h24'].map(key => (
|
||||
<div key={key} className="item">
|
||||
|
|
@ -389,7 +389,7 @@ function DrpChart({ record }) {
|
|||
</div>
|
||||
))
|
||||
}
|
||||
</div> */}
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
)
|
||||
|
|
|
|||
|
|
@ -9,9 +9,9 @@ function RealDrpTip({ record, dispatch }) {
|
|||
|
||||
const [type, setType] = useState('drp');
|
||||
|
||||
const changeView = () => {
|
||||
setType(type === 'drp' ? 'rz' : 'drp');
|
||||
}
|
||||
// const changeView = () => {
|
||||
// setType(type === 'drp' ? 'rz' : 'drp');
|
||||
// }
|
||||
|
||||
const viewInfo = () => {
|
||||
dispatch?.runtime.setInfoDlg({ layerId: 'RealDrpLayer', properties: record })
|
||||
|
|
@ -26,7 +26,7 @@ function RealDrpTip({ record, dispatch }) {
|
|||
<div className="extra cursor-pointer" onClick={viewInfo}>详细</div>
|
||||
</div>
|
||||
{type === 'drp' ? <DrpChart record={record} /> : null}
|
||||
{type === 'rz' ? <HDChart record={record} /> : null}
|
||||
{/* {type === 'rz' ? <HDChart record={record} /> : null} */}
|
||||
<div className="boxfoot"></div>
|
||||
</>
|
||||
)
|
||||
|
|
|
|||
|
|
@ -28,8 +28,8 @@ function HDChart({ record }) {
|
|||
const [data, setData] = useState([]);
|
||||
|
||||
const tm = [moment().add(-24, 'hour'), moment()];
|
||||
const resultTm = normalizeSearchTmRange(tm, 'h');
|
||||
|
||||
// const resultTm = normalizeSearchTmRange(tm, 'h');
|
||||
const resultTm = [moment(record.tm).add(-1,'days').format('YYYY-MM-DD HH:00:00'),moment(record.tm).format('YYYY-MM-DD HH:00:00')]//normalizeSearchTmRange(tm, 'h');
|
||||
useEffect(() => {
|
||||
rzSearch(record.type, record.stcd, 'h', resultTm, record.countycode).then((data) => {
|
||||
setData(data || []);
|
||||
|
|
@ -196,25 +196,25 @@ function HDChart({ record }) {
|
|||
style={{ height: '15rem', width: '30rem' }}
|
||||
/>
|
||||
<div className={classes.grid}>
|
||||
<Typography variant="subtitle2">上报时间: {rtm ? moment(rtm).format('YYYY-MM-DD HH:mm:ss') : '-'}</Typography>
|
||||
<div className={classes.realdrpgrid}>
|
||||
<Typography variant="subtitle2" style={{color:'#ffffff'}}>上报时间: {rtm ? moment(rtm).format('YYYY-MM-DD HH:mm:ss') : '-'}</Typography>
|
||||
{/* <div className={classes.realdrpgrid}>
|
||||
<div className="item">
|
||||
<Typography variant="caption">水位</Typography>
|
||||
<Typography variant="h5">{renderHDRz(record)}</Typography>
|
||||
<Typography variant="h5" style={{color:"#fff"}}>{renderHDRz(record)}</Typography>
|
||||
</div>
|
||||
<div className="item">
|
||||
<div className="item" >
|
||||
<Typography variant="caption">设防水位</Typography>
|
||||
<Typography variant="h5">{record.sfz || '--'}</Typography>
|
||||
<Typography variant="h5" style={{color:"#fff"}}>{record.sfz || '--'}</Typography>
|
||||
</div>
|
||||
<div className="item">
|
||||
<Typography variant="caption">警戒水位</Typography>
|
||||
<Typography variant="h5">{record.wrz || '--'}</Typography>
|
||||
<Typography variant="h5" style={{color:"#fff"}}>{record.wrz || '--'}</Typography>
|
||||
</div>
|
||||
<div className="item">
|
||||
<Typography variant="caption">保证水位</Typography>
|
||||
<Typography variant="h5">{record.grz || '--'}</Typography>
|
||||
<Typography variant="h5" style={{color:"#fff"}}>{record.grz || '--'}</Typography>
|
||||
</div>
|
||||
</div>
|
||||
</div> */}
|
||||
</div>
|
||||
</>
|
||||
)
|
||||
|
|
|
|||
|
|
@ -126,12 +126,27 @@ export default function MapCtrl({ initParams, onLoad }) {
|
|||
}
|
||||
layer.featureClicked(props, dispatch);
|
||||
}
|
||||
if(feature.layer.id==='sk1111'||feature.layer.id==='sk2222'){
|
||||
if(feature.layer.id==='sk1111'||feature.layer.id==='sk2222'||feature.layer.id==='临时水库tz'||feature.layer.id==='临时水库'){
|
||||
const record = feature.properties
|
||||
dispatch.runtime.setFeaturePop({ type: 'RealSkPop', properties: record, coordinates: [record.lgtd, record.lttd] });
|
||||
if(feature.layer.id==='临时水库tz'){
|
||||
dispatch.map.setView(203)
|
||||
sessionStorage.setItem('lastCenter',JSON.stringify([record.lgtd, record.lttd]))
|
||||
}
|
||||
dispatch.runtime.setFeaturePop({ type: record.layerPop, properties: record, coordinates: [record.lgtd, record.lttd] });
|
||||
}
|
||||
if(feature.layer.id==='关联站点'){
|
||||
if (feature.layer.id === '关联站点') {
|
||||
const record = feature.properties
|
||||
if (record.cd_nm == 'GN1') {
|
||||
dispatch?.runtime.setInfoDlg({ layerId: 'BxjcLayer', properties: record })
|
||||
}else if (record.cd_nm == 'UPD1') {
|
||||
dispatch?.runtime.setInfoDlg({ layerId: 'SyjcLayer', properties: record })
|
||||
}else if (record.cd_nm == 'WE1') {
|
||||
dispatch?.runtime.setInfoDlg({ layerId: 'SljcLayer', properties: record })
|
||||
}else if (record.cd_nm == '0EA5DE') {
|
||||
dispatch?.runtime.setInfoDlg({ layerId: 'ByjcLayer', properties: record })
|
||||
}else if (record.stnm == '浮桥河水库') {
|
||||
dispatch?.runtime.setInfoDlg({ layerId: 'RealSkLayer', properties: record })
|
||||
}
|
||||
// dispatch.runtime.setFeaturePop({ type: 'RealSkPop', properties: record, coordinates: [record.lgtd, record.lttd] });
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,8 +46,8 @@ const ShapeStyle = {
|
|||
const page1 = [
|
||||
{
|
||||
"res_cd": "42118140035",
|
||||
"res_lon": 115.14137,
|
||||
"res_lat": 31.55095,
|
||||
"res_lon": 114.88089,
|
||||
"res_lat": 31.171467,
|
||||
"cd": "01",
|
||||
"cd_nm": "GN1",
|
||||
"stnm": "GN1",
|
||||
|
|
@ -65,7 +65,7 @@ const page1 = [
|
|||
"eng_scal": "小(1)型",
|
||||
"danger_stat": "非病险水库",
|
||||
"label": "2023高标准",
|
||||
"res_nm": "大堰口水库",
|
||||
"res_nm": "浮桥河水库",
|
||||
"de_value": -11.5381,
|
||||
"dn_value": -11.2248,
|
||||
"du_value": 113.8833,
|
||||
|
|
|
|||
|
|
@ -72,36 +72,44 @@ export default class ByjcLayer extends BaseLayer {
|
|||
let data =
|
||||
// await PicStPromise.get();
|
||||
[
|
||||
{
|
||||
"res_cd": "42118140004",
|
||||
"res_nm": "永丰水库",
|
||||
{
|
||||
"cd": "1",
|
||||
"cd_nm": "UPD1",
|
||||
"ch": "0+060",
|
||||
"res_reg_cd": "42118140011-A4",
|
||||
"res_cd": "42118140038",
|
||||
"res_nm": "浮桥河水库",
|
||||
"res_lon": 114.88299,
|
||||
"res_lat": 31.172700,
|
||||
"stnm": "UPD1",
|
||||
"province_cd": "420000000000",
|
||||
"province_nm": "湖北省",
|
||||
stnm:'0FA5DE',
|
||||
"province_nm": "湖北省",
|
||||
"city_cd": "421100000000",
|
||||
"city_nm": "黄冈市",
|
||||
"county_cd": "421181000000",
|
||||
"county_nm": "麻城市",
|
||||
"town_cd": "421181003000",
|
||||
"town_nm": "南湖办事处",
|
||||
"rv_name": "举水",
|
||||
"town_cd": "421181113000",
|
||||
"town_nm": "乘马岗镇",
|
||||
"bas_guid": "鄂东五河片区",
|
||||
"res_lon": 115.05541,
|
||||
"res_lat": 31.11106,
|
||||
"res_reg_cd": "42118140042-A4",
|
||||
"eng_scal": "小(1)型",
|
||||
"eng_g": "IV",
|
||||
"children": [
|
||||
{
|
||||
"res_cd": "42118140004",
|
||||
"res_nm": "永丰水库",
|
||||
"cd": 5821,
|
||||
"cd_nm": "永丰水库",
|
||||
"termite_status": "n",
|
||||
"tm": "2025-05-21 09:18:28",
|
||||
"is_main_cd": "y"
|
||||
}
|
||||
]
|
||||
"danger_stat": "非病险水库",
|
||||
"label": "2023高标准",
|
||||
"value": 164.8742,
|
||||
"diff_value": -0.0275,
|
||||
"trend": -1,
|
||||
"is_has_data": "y",
|
||||
"diff_rz": -0.6958,
|
||||
"stcd": "4239",
|
||||
"diff_rz_cd": 5.0554,
|
||||
"max_cd_value": -0.0225,
|
||||
"rz": 165.57,
|
||||
"dt": "2025-05-20",
|
||||
"diff5_value": -0.0737,
|
||||
"trend5": -1,
|
||||
"diff10_value": -0.1204,
|
||||
"trend10": -1,
|
||||
"diff30_value": -0.0633,
|
||||
"trend30": -1
|
||||
},
|
||||
{
|
||||
"res_cd": "42118140015",
|
||||
|
|
|
|||
|
|
@ -50,7 +50,11 @@ const Style = {
|
|||
],
|
||||
'icon-size': [
|
||||
'interpolate', ['linear'], ['zoom'],
|
||||
10, ['case', ['==', ['get', 'rzWarning'], 1], 0.6, 0.3],
|
||||
10,
|
||||
['case',
|
||||
['!=', ['get', 'rzState'], 1], 0.4,
|
||||
['==', ['get', 'rzWarning'], 1], 0.7,
|
||||
0.7],
|
||||
14, 0.7,
|
||||
],
|
||||
'text-size': [
|
||||
|
|
|
|||
|
|
@ -71,16 +71,17 @@ export default class SljcLayer extends BaseLayer {
|
|||
|
||||
let data =
|
||||
// await PicStPromise.get();
|
||||
[{
|
||||
[
|
||||
{
|
||||
"cd": "1",
|
||||
"cd_nm": "WE",
|
||||
"ch": "1",
|
||||
'stnm':'WE',
|
||||
"res_reg_cd": "42118140042-A4",
|
||||
"res_cd": "42118140004",
|
||||
"res_nm": "永丰水库",
|
||||
"res_lon": 115.05541,
|
||||
"res_lat": 31.11106,
|
||||
"res_nm": "浮桥河水库",
|
||||
"res_lon": 114.88429,
|
||||
"res_lat": 31.172700,
|
||||
"province_cd": "420000000000",
|
||||
"province_nm": "湖北省",
|
||||
"city_cd": "421100000000",
|
||||
|
|
|
|||
|
|
@ -78,9 +78,9 @@ export default class SyjcLayer extends BaseLayer {
|
|||
"ch": "0+060",
|
||||
"res_reg_cd": "42118140011-A4",
|
||||
"res_cd": "42118140038",
|
||||
"res_lon": 115.01664,
|
||||
"res_lat": 31.40681,
|
||||
"res_nm": "蛤蟆岗水库",
|
||||
"res_nm": "浮桥河水库",
|
||||
"res_lon": 114.87929,
|
||||
"res_lat": 31.171467,
|
||||
"stnm": "UPD1",
|
||||
"province_cd": "420000000000",
|
||||
"province_nm": "湖北省",
|
||||
|
|
|
|||
|
|
@ -112,6 +112,7 @@ import Ddcg from './panels/Ddcg'
|
|||
import Fadb from './panels/Fadb'
|
||||
import Sksltj from './panels/Sksltj'
|
||||
import Hsfy from './panels/Hsfy'
|
||||
import Cxsk from './panels/Cxsk'
|
||||
|
||||
|
||||
|
||||
|
|
@ -397,6 +398,8 @@ export default function PanelIndex({ name, style, ...params }) {
|
|||
return <Sbyj style={style} />
|
||||
} else if (name === '供水负荷曲线') {
|
||||
return <Gsfhqx style={style} />
|
||||
} else if (name === '超汛水库') {
|
||||
return <Cxsk style={style} />
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -19,15 +19,16 @@ const VIEWS = [
|
|||
{ id: 7, title: '调度', img: '/assets/menu/辅助决策.png' },
|
||||
]
|
||||
},
|
||||
{ id: 200, title: '水库', img: '/assets/menu/水库专题.png',children:[
|
||||
{ id: 207, title: '水库总览', img: '/assets/menu/水库管理.png' },
|
||||
// { id: 201, title: '雨情监测', img: '/assets/menu/雨情监测.png' },
|
||||
// { id: 202, title: '水情监测', img: '/assets/menu/水情监测.png' },
|
||||
{ id: 203, title: '水库监测', img: '/assets/menu/安全监测.png' },
|
||||
// { id: 204, title: '视频监视', img: '/assets/menu/视频监视.png' },
|
||||
{ id: 205, title: '防汛调度', img: '/assets/menu/防汛调度.png' },
|
||||
{ id: 206, title: '巡查维养', img: '/assets/menu/水库管理.png' },
|
||||
] },
|
||||
// { id: 200, title: '水库', img: '/assets/menu/水库专题.png',children:[
|
||||
// { id: 207, title: '水库总览', img: '/assets/menu/水库管理.png' },
|
||||
// // { id: 201, title: '雨情监测', img: '/assets/menu/雨情监测.png' },
|
||||
// // { id: 202, title: '水情监测', img: '/assets/menu/水情监测.png' },
|
||||
// { id: 203, title: '水库监测', img: '/assets/menu/安全监测.png' },
|
||||
// // { id: 204, title: '视频监视', img: '/assets/menu/视频监视.png' },
|
||||
// { id: 205, title: '防汛调度', img: '/assets/menu/防汛调度.png' },
|
||||
// { id: 206, title: '巡查维养', img: '/assets/menu/水库管理.png' },
|
||||
// ] },
|
||||
{ id: 200, title: '水库', img: '/assets/menu/水库专题.png'},
|
||||
{
|
||||
id: 300, title: '水厂', img: '/assets/menu/水利设施.png', children: [
|
||||
{ id: 301, title: '供水态势', img: '/assets/menu/降雨中心.png' },
|
||||
|
|
@ -136,7 +137,7 @@ export default function ActionDock({ }) {
|
|||
}
|
||||
}
|
||||
}}>
|
||||
<div className={clsx('button', { active: view === o.id })}>
|
||||
<div className={clsx('button', { active: o.id===200?(view===207||view===203||view===205||view===206||view===200):view === o.id })}>
|
||||
<img width={32} height={32} src={o.img} />
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -188,8 +188,8 @@ function DrpSearch({ record }) {
|
|||
"year": "2025"
|
||||
}
|
||||
]
|
||||
const [stm, handleDateChange1] = useState(() => moment().add(-1, 'd'));
|
||||
const [etm, handleDateChange2] = useState(() => moment());
|
||||
const [stm, handleDateChange1] = useState(() => moment(record.tm).add(-1, 'd'));
|
||||
const [etm, handleDateChange2] = useState(() => moment(record.tm));
|
||||
const [data, setData] = useState([]);
|
||||
|
||||
const searchTm = useMemo(() => {
|
||||
|
|
|
|||
|
|
@ -9,11 +9,12 @@ import ReactEcharts from 'echarts-for-react';
|
|||
import moment from 'moment'
|
||||
import rzOption from './rzOption';
|
||||
import DpAlert from '../../../../layouts/mui/DpAlert';
|
||||
import { backgroundColor } from 'echarts/lib/theme/dark';
|
||||
|
||||
function RzSearch({ record }) {
|
||||
console.log('r', record);
|
||||
const [selectedDate1, handleDateChange1] = useState(() => moment().add(-1, 'd'));
|
||||
const [selectedDate2, handleDateChange2] = useState(() => moment());
|
||||
const [selectedDate1, handleDateChange1] = useState(() => moment(record.tm).add(-1, 'd'));
|
||||
const [selectedDate2, handleDateChange2] = useState(() => moment(record.tm));
|
||||
const [data, setData] = useState([]);
|
||||
|
||||
const searchTm = useMemo(() => {
|
||||
|
|
@ -64,7 +65,7 @@ function RzSearch({ record }) {
|
|||
<DpAlert style={{ width: '100%' }} severity="error">{searchTm.error}</DpAlert>
|
||||
</DpToolComponent>
|
||||
) : (
|
||||
<DpResultComponent>
|
||||
<DpResultComponent >
|
||||
<ReactEcharts
|
||||
option={option}
|
||||
style={{ height: '100%' }}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import echarts from 'echarts/lib/echarts';
|
||||
import { hdyjColor } from '../../../../utils/renutils';
|
||||
import { backgroundColor } from 'echarts/lib/theme/dark';
|
||||
|
||||
export default function rzOption({ data, skinfo }) {
|
||||
const serialData = data.map(obj => [obj.tm, obj.rz || obj.z || 0]);
|
||||
|
|
@ -19,14 +20,15 @@ export default function rzOption({ data, skinfo }) {
|
|||
];
|
||||
} else if (data[0]) {
|
||||
const { sfz, wrz, grz } = data[0];
|
||||
const recordWrz = wrz||skinfo.wrz;
|
||||
markLine.data = [];
|
||||
if (sfz) {
|
||||
sorted.push(sfz)
|
||||
markLine.data.push({ label: { formatter: '设防水位' }, yAxis: sfz, lineStyle: { color: hdyjColor[1] } });
|
||||
}
|
||||
if (wrz) {
|
||||
sorted.push(wrz)
|
||||
markLine.data.push({ label: { formatter: '警戒水位' }, yAxis: wrz, lineStyle: { color: hdyjColor[2] } });
|
||||
if (recordWrz) {
|
||||
sorted.push(recordWrz)
|
||||
markLine.data.push({ label: { formatter: '警戒水位' + `(${recordWrz})` }, yAxis: recordWrz, lineStyle: { color: hdyjColor[2] } });
|
||||
}
|
||||
if (grz) {
|
||||
sorted.push(grz)
|
||||
|
|
@ -51,9 +53,9 @@ export default function rzOption({ data, skinfo }) {
|
|||
}
|
||||
},
|
||||
grid: {
|
||||
x: 24,
|
||||
x: 25,
|
||||
y: 24,
|
||||
x2: 38,
|
||||
x2: 100,
|
||||
y2: 42,
|
||||
borderWidth: 0
|
||||
},
|
||||
|
|
|
|||
|
|
@ -155,6 +155,36 @@ export default function Title() {
|
|||
</div>
|
||||
</div>:null
|
||||
}
|
||||
{
|
||||
(view===203||view===205||view===206)?
|
||||
<div style={{position:'absolute',left:'50%',top:'6rem',transform:'translate(-50%, 0px)',display:'flex'}}>
|
||||
{
|
||||
[
|
||||
{name:'返回',key:200},
|
||||
{name:'水库监测',key:203},
|
||||
{name:'防汛调度',key:205},
|
||||
{name:'巡查维养',key:206},
|
||||
].map((item)=>
|
||||
<>
|
||||
<div style={{padding:'1rem',color:item.key===view?'#65dbfb':'#ffffff',cursor:'pointer',margin:"0 1rem"}} onClick={()=>{
|
||||
dispatch.map.setView(item.key)
|
||||
if(item.key===200){
|
||||
const center = JSON.parse(sessionStorage.getItem('lastCenter'))
|
||||
if(center){
|
||||
dispatch.runtime.setCameraTarget({
|
||||
center: center,
|
||||
zoom: 15,
|
||||
pitch: 50,
|
||||
bearing: 0
|
||||
});
|
||||
}
|
||||
}
|
||||
}}>{item.name}</div>
|
||||
</>
|
||||
)
|
||||
}
|
||||
</div>:null
|
||||
}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ export default function OverallContent({ data, skAll }) {
|
|||
24小时中共有<span className={classes.number}>1</span>
|
||||
个站点雨量为<span className={classes.sttype}>大暴雨</span>,雨量值
|
||||
<span className={classes.number}>261mm</span>;
|
||||
共产生<span className={classes.number}>3</span>个山洪预警(2个内部预警,1个外部预警),均已处置;<span className={classes.number}>1</span>个水库超汛限,已短信通知责任人;无河道预警。
|
||||
共产生<span className={classes.number}>3</span>个山洪预警(2个内部预警,1个外部预警),均已处置;<span className={classes.number}>1</span>个水库超汛限,已短信通知责任人;<span className={classes.number}>1</span>个超警戒河道预警。
|
||||
|
||||
</div>
|
||||
{/* <div>
|
||||
|
|
|
|||
|
|
@ -14,12 +14,13 @@ import clsx from 'clsx';
|
|||
import { renderDrp } from '../../../../utils/renutils';
|
||||
|
||||
const data1 = [
|
||||
{
|
||||
{
|
||||
"res_cd": "42118140035",
|
||||
"res_lon": 115.14137,
|
||||
"res_lat": 31.55095,
|
||||
"res_lon": 114.88089,
|
||||
"res_lat": 31.171467,
|
||||
"cd": "01",
|
||||
"cd_nm": "GN1",
|
||||
"cd_nm": "GN1",
|
||||
"stnm": "GN1",
|
||||
"res_reg_cd": "42118140006-A4",
|
||||
"ch": "0+000",
|
||||
"province_cd": "420000000000",
|
||||
|
|
@ -34,50 +35,17 @@ const data1 = [
|
|||
"eng_scal": "小(1)型",
|
||||
"danger_stat": "非病险水库",
|
||||
"label": "2023高标准",
|
||||
"res_nm": "大堰口水库",
|
||||
"de_value": -4.2885,
|
||||
"dn_value": -13.5384,
|
||||
"du_value": 132.4892,
|
||||
"res_nm": "浮桥河水库",
|
||||
"de_value": -11.5381,
|
||||
"dn_value": -11.2248,
|
||||
"du_value": 113.8833,
|
||||
"de_trend": null,
|
||||
"dn_trend": null,
|
||||
"du_trend": null,
|
||||
"max_de": 1.0981,
|
||||
"max_dn": -2.3255,
|
||||
"max_du": 132.4892,
|
||||
"dt": "2025-05-20",
|
||||
"is_has_data": "y"
|
||||
},
|
||||
{
|
||||
"res_cd": "42118140035",
|
||||
"res_lon": 115.14137,
|
||||
"res_lat": 31.55095,
|
||||
"cd": "03",
|
||||
"cd_nm": "GN3",
|
||||
"res_reg_cd": "42118140006-A4",
|
||||
"ch": "0+000",
|
||||
"province_cd": "420000000000",
|
||||
"province_nm": "湖北省",
|
||||
"city_cd": "421100000000",
|
||||
"city_nm": "黄冈市",
|
||||
"county_cd": "421181000000",
|
||||
"county_nm": "麻城市",
|
||||
"town_cd": "421181112000",
|
||||
"town_nm": "福田河镇",
|
||||
"bas_guid": "鄂东五河片区",
|
||||
"eng_scal": "小(1)型",
|
||||
"danger_stat": "非病险水库",
|
||||
"label": "2023高标准",
|
||||
"res_nm": "大堰口水库",
|
||||
"de_value": -10.73,
|
||||
"dn_value": -9.8975,
|
||||
"du_value": 121.3495,
|
||||
"de_trend": null,
|
||||
"dn_trend": null,
|
||||
"du_trend": null,
|
||||
"max_de": 1.0981,
|
||||
"max_dn": -2.3255,
|
||||
"max_du": 132.4892,
|
||||
"dt": "2025-05-20",
|
||||
"max_de": 2.9303,
|
||||
"max_dn": -2.1648,
|
||||
"max_du": 113.8833,
|
||||
"dt": "2025-05-25",
|
||||
"is_has_data": "y"
|
||||
},
|
||||
{
|
||||
|
|
@ -640,14 +608,16 @@ function DrpReal({ style }) {
|
|||
<DpTableRow key={row.stcd}>
|
||||
<DpTableCell component="th" scope="row">
|
||||
<div className="table-ellipsis cursor-pointer" onClick={() => {
|
||||
const { res_lon:lgtd, res_lat:lttd } = row;
|
||||
if (lgtd && lttd) {
|
||||
dispatch.runtime.setCameraTarget({
|
||||
center: [lgtd, lttd],
|
||||
zoom: 15,
|
||||
pitch: 60,
|
||||
bearing: 0
|
||||
});
|
||||
const { res_lon: lgtd, res_lat: lttd,res_nm:stnm } = row;
|
||||
if (stnm == '浮桥河水库') {
|
||||
if (lgtd && lttd) {
|
||||
dispatch.runtime.setCameraTarget({
|
||||
center: [lgtd, lttd],
|
||||
zoom: 17,
|
||||
pitch: 60,
|
||||
bearing: 0
|
||||
});
|
||||
}
|
||||
}
|
||||
}}>{row.res_nm}</div>
|
||||
</DpTableCell>
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,218 @@
|
|||
import React, { useEffect, useMemo, useState } from 'react';
|
||||
import moment from 'moment';
|
||||
import { Typography, Collapse,Table, TableContainer, TableBody,TableHead, TableRow, TableSortLabel } from '@material-ui/core';
|
||||
import DpTableCell from '../../../../layouts/mui/DpTableCell';
|
||||
import DpTableRow from '../../../../layouts/mui/DpTableRow';
|
||||
import { useDispatch } from 'react-redux';
|
||||
import { InfoPopNames } from '../../InfoPops';
|
||||
import { MailOutline } from '@material-ui/icons';
|
||||
import { parseGeoJSON } from "../../../../utils/tools";
|
||||
import { skInfo } from '../../../../models/_/search';
|
||||
import config from '../../../../config';
|
||||
|
||||
function Item({ data, viewInfo, sendMessage }) {
|
||||
return (
|
||||
<div className="item">
|
||||
<div className={`header alertsk`}>
|
||||
</div>
|
||||
<div className="content">
|
||||
<div className="main">
|
||||
<div className="title cursor-pointer" onClick={() => viewInfo(data)}>{data.stnm}</div>
|
||||
<div className="span"></div>
|
||||
<div className="extra">+{(data.rz - data.fsltdz).toFixed(2)}</div>
|
||||
</div>
|
||||
<div className="desc">
|
||||
<Typography variant="body2">
|
||||
水库汛限水位<span className="bold">{data.fsltdz}</span>m。
|
||||
</Typography>
|
||||
<Typography variant="body2">
|
||||
实时监测水位<span className="bold">{data.rz}</span>m,超出汛限水位<span className="bold red">{(data.rz - data.fsltdz).toFixed(2)}</span>m
|
||||
</Typography>
|
||||
</div>
|
||||
<div className="tail">
|
||||
<span>{moment(data.rzTm).format('YYYY-MM-DD HH:mm')}</span>
|
||||
<MailOutline className="action" onClick={() => sendMessage(data)} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
function ARzSk({data}) {
|
||||
data = [{
|
||||
"stcd": "716129061",
|
||||
"type": "sk",
|
||||
"hasRz": true,
|
||||
"stnm": "仰天窝水库",
|
||||
"adcd": "421181201000",
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 115.106667,
|
||||
"lttd": 31.126389,
|
||||
"elev": 0,
|
||||
"damel": 325.08,
|
||||
"dsflz": 324.18,
|
||||
"fsltdz": 323.5,
|
||||
"ddz": 319.5,
|
||||
"zcxsw": 323.5,
|
||||
"drpTm": "2025-04-11T05:00:00.000Z",
|
||||
"today": 0,
|
||||
"h1": 0,
|
||||
"h3": 0,
|
||||
"h6": 0,
|
||||
"h12": 0,
|
||||
"h24": 0,
|
||||
"h48": 0,
|
||||
"drpState": 2,
|
||||
"rz": 325.16,
|
||||
"w": 0.132,
|
||||
"a_fsltdz": 4.660000000000025,
|
||||
"rzTm": "2025-04-11T05:00:00.000Z",
|
||||
"rzWarning": 1,
|
||||
"rzState": 2,
|
||||
"pic": [
|
||||
{
|
||||
"stcd": "716129061",
|
||||
"tm": "2023-03-12T06:05:00.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716129061/20230312140500.jpg"
|
||||
},
|
||||
{
|
||||
"stcd": "716129061",
|
||||
"tm": "2023-03-12T07:25:00.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716129062/20230312152500.jpg"
|
||||
}
|
||||
],
|
||||
"layer": "RealSkLayer",
|
||||
"layerPop": "RealSkPop",
|
||||
"aRz": 4.66,
|
||||
"strarz": "4.66"
|
||||
}];
|
||||
|
||||
useEffect(()=>{
|
||||
return ()=>{
|
||||
const map = window.__mapref;
|
||||
const layer = map.getLayer('临时水库')
|
||||
if(layer){
|
||||
map.removeLayer('临时水库');
|
||||
map.removeSource('临时水库');
|
||||
}
|
||||
}
|
||||
},[])
|
||||
const dispatch = useDispatch();
|
||||
|
||||
const flyTo = (record) => {
|
||||
const { lgtd, lttd } = record;
|
||||
if (lgtd && lttd) {
|
||||
// dispatch.runtime.setFeaturePop({ type: InfoPopNames.RealSkPop, properties: record, coordinates: [lgtd, lttd] });
|
||||
dispatch.runtime.setCameraTarget({
|
||||
center: [lgtd, lttd+0.005],
|
||||
zoom: 15,
|
||||
pitch: config.poiPitch,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
const sendMessage = (record) => {
|
||||
skInfo(record).then(data => {
|
||||
if (data) {
|
||||
console.log(record, data);
|
||||
const txt = `${record.stnm}在${moment(record.rzTm).format('D日H时')}测得水位为${record.rz}米,超汛限水位(${record.fsltdz})${(record.rz - record.fsltdz).toFixed(2)}米,请做好核实防范工作。`;
|
||||
dispatch.runtime.setInfoDlg({ layerId: 'SkSmtp', properties: { stnm: data.stnm, stcd: data.stcd, personels: data.personels, txt } })
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
const setSkLayer = (data=[])=>{
|
||||
const map = window.__mapref;
|
||||
const layer = map.getLayer('临时水库')
|
||||
if(layer){
|
||||
map.removeLayer('临时水库');
|
||||
map.removeSource('临时水库');
|
||||
}
|
||||
if(data.length===0){return}
|
||||
map.addLayer({
|
||||
'id': '临时水库',//+new Date().getTime(),
|
||||
'type': 'symbol',
|
||||
'source': {
|
||||
'type': 'geojson',
|
||||
'data': {
|
||||
'type': 'FeatureCollection',
|
||||
'features': [],
|
||||
},
|
||||
},
|
||||
'layout': {
|
||||
// 'icon-allow-overlap': true,
|
||||
// 'text-allow-overlap': true,
|
||||
'icon-image': '水库-超汛限', // 从properties中动态读取icon字段
|
||||
'icon-size': [
|
||||
'interpolate', ['linear'], ['zoom'],
|
||||
10, 0.8,
|
||||
14, 0.8,
|
||||
],
|
||||
'text-size': [
|
||||
'interpolate', ['linear'], ['zoom'],
|
||||
5, 10,
|
||||
14, 14,
|
||||
],
|
||||
'text-font': ['Roboto Black'],
|
||||
'text-field': [
|
||||
'step',
|
||||
['zoom'],
|
||||
'',
|
||||
8, ['get', 'stnm']
|
||||
],
|
||||
'text-anchor': 'top',
|
||||
'text-offset': [0, 1],
|
||||
},
|
||||
'paint': {
|
||||
'text-color': '#fff'
|
||||
},
|
||||
'visibility': 'visible',
|
||||
});
|
||||
map.getSource('临时水库').setData(parseGeoJSON(data))
|
||||
}
|
||||
|
||||
return (
|
||||
// <div className="dppanel-shyj">
|
||||
// {
|
||||
// data.map(o => (
|
||||
// <Item key={o.stcd} viewInfo={flyTo} sendMessage={sendMessage} data={o} />
|
||||
// ))
|
||||
// }
|
||||
// </div>
|
||||
<TableContainer style={{ height: '12.8rem' }}>
|
||||
<Table size="small" stickyHeader>
|
||||
<TableHead>
|
||||
<TableRow>
|
||||
<DpTableCell style={{ minWidth: '4rem' }} align="left">水库名称</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '5rem' }} align="center">类型</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '3rem' }} align="center">水位(m)</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '6rem' }} align="center">监测时间</DpTableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
{
|
||||
data.map((tableRow,index)=>
|
||||
<TableBody>
|
||||
<DpTableRow key={tableRow.stcd}>
|
||||
<DpTableCell align="center" >
|
||||
<div className="table-ellipsis cursor-pointer" onClick={()=>{
|
||||
flyTo(tableRow)
|
||||
setSkLayer([tableRow])
|
||||
}}>
|
||||
{tableRow.stnm}
|
||||
</div>
|
||||
</DpTableCell>
|
||||
<DpTableCell align="center" >小(2)型</DpTableCell>
|
||||
<DpTableCell align="center" >{tableRow.rz}</DpTableCell>
|
||||
<DpTableCell align="center" >{moment(tableRow.tm).format('YYYY-MM-DD HH:mm:ss')}</DpTableCell>
|
||||
</DpTableRow>
|
||||
</TableBody>
|
||||
)
|
||||
}
|
||||
</Table>
|
||||
</TableContainer>
|
||||
)
|
||||
}
|
||||
|
||||
export default ARzSk;
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
import clsx from 'clsx';
|
||||
import React from 'react';
|
||||
import PanelBox from '../../components/PanelBox';
|
||||
import ARzSk from './ARzSk';
|
||||
|
||||
export default function Warn({ style }) {
|
||||
|
||||
return (
|
||||
<PanelBox
|
||||
style={style}
|
||||
title="超汛水库"
|
||||
color="green"
|
||||
>
|
||||
<ARzSk />
|
||||
</PanelBox>
|
||||
)
|
||||
}
|
||||
|
|
@ -204,7 +204,11 @@ export default function Overall({ style }) {
|
|||
<Button
|
||||
key={item.value}
|
||||
className={classes.timeButton}
|
||||
onClick={() => setTimeRange(item.value)}
|
||||
onClick={() => {
|
||||
if (item.value == '1h' || item.value == '3h') {
|
||||
setTimeRange(item.value)
|
||||
}
|
||||
}}
|
||||
variant={timeRange === item.value ? 'contained' : 'outlined'}
|
||||
style={{ padding: '5px 10px' }}
|
||||
>
|
||||
|
|
@ -255,10 +259,10 @@ export default function Overall({ style }) {
|
|||
{/* 展开的详细内容可以在这里添加 */}{
|
||||
station.id == 'heavy' && drpData.map(item => (
|
||||
<TableRow onClick={() =>flyTo(item)}>
|
||||
<DpTableCell style={{ width: '25%' }}>{item.stnm}</DpTableCell>
|
||||
<DpTableCell style={{ width: '20%' }}>{item.today}</DpTableCell>
|
||||
<DpTableCell style={{ width: '25%' }}>阎家河镇</DpTableCell>
|
||||
<DpTableCell style={{ width: '30%' }}>桃林河</DpTableCell>
|
||||
<DpTableCell style={{ width: '53%' }}>{item.stnm}</DpTableCell>
|
||||
<DpTableCell style={{ width: '10%' }}>{item.today}</DpTableCell>
|
||||
<DpTableCell style={{ width: '20%' }}>阎家河镇</DpTableCell>
|
||||
<DpTableCell style={{ width: '27%' }}>桃林河</DpTableCell>
|
||||
</TableRow>
|
||||
))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ const DRP_COLORS = [
|
|||
'rgb(136, 11, 29)',
|
||||
]
|
||||
|
||||
|
||||
const data1 = [
|
||||
{
|
||||
"stcd": "61612150",
|
||||
|
|
@ -888,13 +889,15 @@ function DrpReal({ style }) {
|
|||
}
|
||||
},[skObj])
|
||||
|
||||
const [showDrp, setShowdDrp] = useState(0)
|
||||
const [showHd, setShowdHd] = useState(0)
|
||||
useEffect(()=>{
|
||||
const map = window.__mapref;
|
||||
if(map){
|
||||
if(tab==='1'&&drpData){
|
||||
if(tab==='1'&&drpData && showDrp){
|
||||
setLayer(drpData,'drp')
|
||||
}
|
||||
if(tab==='2'&&hdData){
|
||||
if(tab==='2'&&hdData && showHd){
|
||||
setLayer(hdData,'hd')
|
||||
}
|
||||
if(tab==='3'&&data3){
|
||||
|
|
@ -916,7 +919,7 @@ function DrpReal({ style }) {
|
|||
}, 500);
|
||||
}
|
||||
|
||||
},[drpData,hdData,skObj,tab])
|
||||
},[drpData,hdData,skObj,tab,showDrp,showHd])
|
||||
|
||||
|
||||
|
||||
|
|
@ -940,7 +943,8 @@ function DrpReal({ style }) {
|
|||
}
|
||||
});
|
||||
}
|
||||
setDrpData(data)
|
||||
const newData = [data[1],data[0]]
|
||||
setDrpData(newData)
|
||||
}
|
||||
|
||||
const getHd = async(skObj)=>{
|
||||
|
|
@ -963,7 +967,8 @@ function DrpReal({ style }) {
|
|||
}
|
||||
});
|
||||
}
|
||||
setHdData(data)
|
||||
const newData = [data[1],data[0]]
|
||||
setHdData(newData)
|
||||
}
|
||||
|
||||
const setLayer = (data=[],type)=>{
|
||||
|
|
@ -1208,21 +1213,32 @@ function DrpReal({ style }) {
|
|||
map.getSource('关联站点').setData(parseGeoJSON(data))
|
||||
}
|
||||
|
||||
// useEffect(() => {
|
||||
// setLayer(skdata,"sk")
|
||||
|
||||
// }, [])
|
||||
useEffect(() => {
|
||||
setShowdHd(0)
|
||||
setShowdDrp(0)
|
||||
|
||||
}, [tab])
|
||||
|
||||
|
||||
return (
|
||||
<PanelBox
|
||||
style={style}
|
||||
title="关联站点"
|
||||
title="水雨情监测"
|
||||
color="green"
|
||||
tabs={
|
||||
<span className="button-group">
|
||||
<span className={clsx({ active: tab==='1' })} onClick={() => {
|
||||
setTab('1')
|
||||
|
||||
}}>雨量站</span>
|
||||
<span className={clsx({ active: tab==='2' })} onClick={() => {
|
||||
setTab('2')
|
||||
}}>水位站</span>
|
||||
<span className={clsx({ active: tab==='3' })} onClick={() => {
|
||||
{/* <span className={clsx({ active: tab==='3' })} onClick={() => {
|
||||
setTab('3')
|
||||
}}>流量站</span>
|
||||
<span className={clsx({ active: tab==='4' })} onClick={() => {
|
||||
|
|
@ -1230,7 +1246,7 @@ function DrpReal({ style }) {
|
|||
}}>图像站</span>
|
||||
<span className={clsx({ active: tab==='5' })} onClick={() => {
|
||||
setTab('5')
|
||||
}}>视频站</span>
|
||||
}}>视频站</span> */}
|
||||
</span>
|
||||
}
|
||||
>
|
||||
|
|
@ -1254,14 +1270,17 @@ function DrpReal({ style }) {
|
|||
<DpTableCell component="th" scope="row">
|
||||
<div className="table-ellipsis cursor-pointer" onClick={() => {
|
||||
const { lgtd, lttd } = row;
|
||||
if (lgtd && lttd) {
|
||||
dispatch.runtime.setFeaturePop({ type: 'RealDrpPop', properties: row, coordinates: [row.lgtd, row.lttd] });
|
||||
dispatch.runtime.setCameraTarget({
|
||||
center: [lgtd, lttd],
|
||||
zoom: 15,
|
||||
pitch: 60,
|
||||
bearing: 0
|
||||
});
|
||||
if (row.stnm == '浮桥河') {
|
||||
setShowdDrp(1)
|
||||
if (lgtd && lttd) {
|
||||
dispatch.runtime.setFeaturePop({ type: 'RealDrpPop', properties: row, coordinates: [row.lgtd, row.lttd] });
|
||||
dispatch.runtime.setCameraTarget({
|
||||
center: [lgtd, lttd],
|
||||
zoom: 15,
|
||||
pitch: 60,
|
||||
bearing: 0
|
||||
});
|
||||
}
|
||||
}
|
||||
}}>{row.stnm}</div>
|
||||
</DpTableCell>
|
||||
|
|
@ -1289,14 +1308,17 @@ function DrpReal({ style }) {
|
|||
<DpTableCell component="th" scope="row">
|
||||
<div className="table-ellipsis cursor-pointer" onClick={() => {
|
||||
const { lgtd, lttd } = row;
|
||||
if (lgtd && lttd) {
|
||||
dispatch.runtime.setFeaturePop({ type: 'RealHDPop', properties: row, coordinates: [row.lgtd, row.lttd] });
|
||||
dispatch.runtime.setCameraTarget({
|
||||
center: [lgtd, lttd],
|
||||
zoom: 15,
|
||||
pitch: 60,
|
||||
bearing: 0
|
||||
});
|
||||
if (row.stnm == '浮桥河') {
|
||||
setShowdHd(1)
|
||||
if (lgtd && lttd) {
|
||||
dispatch.runtime.setFeaturePop({ type: 'RealHDPop', properties: row, coordinates: [row.lgtd, row.lttd] });
|
||||
dispatch.runtime.setCameraTarget({
|
||||
center: [lgtd, lttd],
|
||||
zoom: 15,
|
||||
pitch: 60,
|
||||
bearing: 0
|
||||
});
|
||||
}
|
||||
}
|
||||
}}>{row.stnm}</div>
|
||||
</DpTableCell>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import React, { useState } from 'react';
|
||||
import React, { useState,useCallback} from 'react';
|
||||
import { OverallPromise } from '../../../../models/_/real';
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import useRequest from '../../../../utils/useRequest';
|
||||
import PanelBox from '../../components/PanelBox';
|
||||
import OverallContent from './OverallContent';
|
||||
|
|
@ -22,7 +23,13 @@ import {
|
|||
import AddIcon from '@material-ui/icons/Add';
|
||||
import RemoveIcon from '@material-ui/icons/Remove';
|
||||
import DpTableCell from '../../../../layouts/mui/DpTableCell';
|
||||
|
||||
import useRefresh from '../../../../utils/useRefresh';
|
||||
import { hdyjUnclose } from '../../../../models/_/hdyj';
|
||||
import moment from 'moment';
|
||||
import { HDRealPromise } from '../../../../models/_/real';
|
||||
import { InfoPopNames } from '../../InfoPops';
|
||||
import { hdyjLatestClosed } from '../../../../models/_/hdyj';
|
||||
import config from '../../../../config';
|
||||
const useStyles = makeStyles((theme) => ({
|
||||
root: {
|
||||
color: '#fff',
|
||||
|
|
@ -90,7 +97,24 @@ const useStyles = makeStyles((theme) => ({
|
|||
}
|
||||
}));
|
||||
export default function Overall({ style }) {
|
||||
|
||||
const dispatch = useDispatch();
|
||||
const t = useRefresh(60 * 1000);
|
||||
const hdyj =[{
|
||||
"stcd": "61612900",
|
||||
"stnm": "阎家河",
|
||||
"adcd": null,
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 115.128722,
|
||||
"lttd": 31.207,
|
||||
"elev": null,
|
||||
"hasRz": true,
|
||||
"type": "sw",
|
||||
"tm": "2025-06-03T02:00:00.000Z",
|
||||
"rz": 61.75,
|
||||
"state": 1,
|
||||
wrz:61.6
|
||||
}]
|
||||
const classes = useStyles();
|
||||
const [types, setTypes] = useState({
|
||||
mountain: true,
|
||||
|
|
@ -109,8 +133,8 @@ export default function Overall({ style }) {
|
|||
};
|
||||
|
||||
const stations = [
|
||||
{ id: 'history', name: '超危险水位', count: 0, type: 'pink' },
|
||||
{ id: '100year', name: '超警戒水位', count: 0, type: 'purple' },
|
||||
{ id: 'history', name: '超危险水位', count: 0, type: 'pink',types:'wx' },
|
||||
{ id: '100year', name: '超警戒水位', count: 1, type: 'purple',types:'jj' },
|
||||
];
|
||||
|
||||
const toggleExpand = (id) => {
|
||||
|
|
@ -119,6 +143,19 @@ export default function Overall({ style }) {
|
|||
[id]: !prev[id]
|
||||
}));
|
||||
};
|
||||
const flyTo = useCallback(async ({ stcd, source }) => {
|
||||
const list = await HDRealPromise.get() || [];
|
||||
const record = list.find(o => o.stcd === stcd) || {};
|
||||
const { lgtd, lttd } = record;
|
||||
if (lgtd && lttd) {
|
||||
dispatch.runtime.setFeaturePop({ type: InfoPopNames.RealHDPop, properties: {...record,wrz:61.6}, coordinates: [lgtd, lttd] });
|
||||
dispatch.runtime.setCameraTarget({
|
||||
center: [lgtd, lttd],
|
||||
zoom: 15,
|
||||
pitch: config.poiPitch,
|
||||
});
|
||||
}
|
||||
}, [dispatch]);
|
||||
|
||||
return (
|
||||
<PanelBox
|
||||
|
|
@ -175,13 +212,25 @@ export default function Overall({ style }) {
|
|||
<DpTableCell colSpan={4} style={{ padding: 0 }}>
|
||||
<Collapse in={expanded[station.id]} timeout="auto" unmountOnExit>
|
||||
<Box className={`${classes.expandedRow} ${station.color}`}>
|
||||
{/* 展开的详细内容可以在这里添加 */}
|
||||
{/* <TableRow>
|
||||
<DpTableCell style={{ width: '25%' }}>站名</DpTableCell>
|
||||
<DpTableCell style={{ width: '20%' }}>水位(m)</DpTableCell>
|
||||
<DpTableCell style={{ width: '25%' }}>所属政区</DpTableCell>
|
||||
<DpTableCell style={{ width: '30%' }}>所属流域</DpTableCell>
|
||||
</TableRow> */}
|
||||
{
|
||||
station.types == 'jj' ? hdyj.map(item => (
|
||||
<TableRow onClick={() => flyTo(item)}>
|
||||
<DpTableCell style={{ width: '40%' }}><div
|
||||
className="table-ellipsis cursor-pointer"
|
||||
>{item.stnm}</div></DpTableCell>
|
||||
<DpTableCell style={{ width: '20%' }}><div
|
||||
className="table-ellipsis cursor-pointer"
|
||||
>{item.rz}</div></DpTableCell>
|
||||
<DpTableCell style={{ width: '24%' }}><div
|
||||
className="table-ellipsis cursor-pointer"
|
||||
>{item.stnm}镇</div></DpTableCell>
|
||||
<DpTableCell style={{ width: '20%' }}>{item.stnm}</DpTableCell>
|
||||
</TableRow>
|
||||
))
|
||||
|
||||
:
|
||||
<Typography>暂无详细信息</Typography>
|
||||
}
|
||||
</Box>
|
||||
</Collapse>
|
||||
</DpTableCell>
|
||||
|
|
|
|||
|
|
@ -100,28 +100,28 @@ export default function OverallContent({ data }) {
|
|||
})
|
||||
} else {
|
||||
const obj = {
|
||||
'Q9123':{
|
||||
"stcd": "Q9123",
|
||||
"stnm": "下白米",
|
||||
'Q9111':{
|
||||
"stcd": "Q9111",
|
||||
"stnm": "福田河",
|
||||
"adcd": null,
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 115.1217,
|
||||
"lttd": 30.8992,
|
||||
"lgtd": 115.0944,
|
||||
"lttd": 31.4747,
|
||||
"elev": null,
|
||||
"hasRz": false,
|
||||
"type": "qx",
|
||||
"today": 17.8,
|
||||
"h1": 7.2,
|
||||
"h3": 14.3,
|
||||
"h6": 22.7,
|
||||
"h12": 24.2,
|
||||
"h24": 45.2,
|
||||
"h48": 123.5,
|
||||
"tm": "2025-06-08T03:00:00.000Z",
|
||||
"today": 50.3,
|
||||
"h1": 50.2,
|
||||
"h3": 50.2,
|
||||
"h6": 50.2,
|
||||
"h12": 50.2,
|
||||
"h24": 50.3,
|
||||
"h48": 50.3,
|
||||
"tm": "2025-06-06T22:00:00.000Z",
|
||||
"state": 1,
|
||||
"warning": 0
|
||||
},
|
||||
},
|
||||
}
|
||||
_showRecord(obj[stcd], InfoPopNames.RealDrpPop)
|
||||
|
||||
|
|
|
|||
|
|
@ -105,13 +105,13 @@ export default function Overall({ style }) {
|
|||
{
|
||||
type: 'immediate',
|
||||
label: '立即转移',
|
||||
count: 3,
|
||||
count: 0,
|
||||
details: [] // 这里可以添加详细信息的数组
|
||||
},
|
||||
{
|
||||
type: 'prepare',
|
||||
label: '准备转移',
|
||||
count: 0,
|
||||
count: 3,
|
||||
details: [] // 这里可以添加详细信息的数组
|
||||
}
|
||||
];
|
||||
|
|
@ -278,10 +278,8 @@ export default function Overall({ style }) {
|
|||
<DpTableCell colSpan={3} style={{ padding: 0 }}>
|
||||
<Collapse in={expanded[row.type]} timeout="auto" unmountOnExit>
|
||||
<Box className={classes.expandedContent}>
|
||||
{/* 这里可以添加展开后显示的详细内容 */}
|
||||
{/* <Typography>暂无详细信息</Typography> */}
|
||||
{
|
||||
row.type == 'immediate' ? zyData.map(item => (
|
||||
row.type == 'prepare' ? zyData.map(item => (
|
||||
<TableRow onClick={() => flyTo(item)}>
|
||||
<DpTableCell style={{ width: '30%' }}><div
|
||||
className="table-ellipsis cursor-pointer"
|
||||
|
|
|
|||
|
|
@ -90,8 +90,8 @@ function SkReal({ style }) {
|
|||
extra={
|
||||
<>
|
||||
<i style={{ marginRight: '0.5rem', color: skAutoRefresh ? '#00deff' : '#aaa' }} className="ionicons loop cursor-pointer" onClick={toggleAutoRefresh}></i>
|
||||
<i style={{ marginRight: '0.5rem' }} className="ionicons image cursor-pointer" onClick={handleOpen}></i>
|
||||
<i className="ionicons gear cursor-pointer" onClick={() => showSetting(true)}></i>
|
||||
{/* <i style={{ marginRight: '0.5rem' }} className="ionicons image cursor-pointer" onClick={handleOpen}></i> */}
|
||||
{/* <i className="ionicons gear cursor-pointer" onClick={() => showSetting(true)}></i> */}
|
||||
</>
|
||||
}
|
||||
>
|
||||
|
|
@ -100,16 +100,16 @@ function SkReal({ style }) {
|
|||
<TableHead>
|
||||
<TableRow>
|
||||
<DpTableCell style={{ maxWidth: '30%' }} align="left">名称</DpTableCell>
|
||||
<DpTableCell align="right">{appconsts.drpTtype[tableSkDrpField]}降雨</DpTableCell>
|
||||
<DpTableCell align="right">水位</DpTableCell>
|
||||
<DpTableCell align="right">超汛限</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '6rem' }} align="right">{appconsts.drpTtype[tableSkDrpField]}降雨</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '3rem' }} align="right">水位</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '4rem' }} align="right">超汛限</DpTableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
<TableBody>
|
||||
{sortedData.map((row) => (
|
||||
{[...sortedData.filter(o=>o.rzState===1),...sortedData.filter(o=>o.rzState!==1)].map((row) => (
|
||||
<DpTableRow key={row.stcd}>
|
||||
<DpTableCell component="th" scope="row">
|
||||
<div className="table-ellipsis cursor-pointer" onClick={() => flyTo(row)}>{row.stnm}</div>
|
||||
<div className="table-ellipsis cursor-pointer" onClick={() => flyTo(row)}>{row.rzState===1?row.stnm:row.stnm+'(离线)'}</div>
|
||||
</DpTableCell>
|
||||
<DpTableCell align="right">{row['h24']}</DpTableCell>
|
||||
<DpTableCell align="right">{row?.rz}</DpTableCell>
|
||||
|
|
|
|||
|
|
@ -130,50 +130,52 @@ export default function Overall({ style }) {
|
|||
}));
|
||||
};
|
||||
|
||||
const skData = [{
|
||||
"stcd": "716113701",
|
||||
"type": "sk",
|
||||
"hasRz": true,
|
||||
"stnm": "永红水库",
|
||||
"adcd": "421181105000",
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 115.120278,
|
||||
"lttd": 31.183611,
|
||||
"elev": 0,
|
||||
"damel": 131.99,
|
||||
"dsflz": 130.56,
|
||||
"fsltdz": 129.9,
|
||||
"ddz": 113.5,
|
||||
"zcxsw": 129.9,
|
||||
"drpTm": "2025-04-11T06:00:00.000Z",
|
||||
"today": 0,
|
||||
"h1": 0,
|
||||
"h3": 0,
|
||||
"h6": 0,
|
||||
"h12": 0,
|
||||
"h24": 0,
|
||||
"h48": 0,
|
||||
"drpState": 2,
|
||||
"rz": 130.15,
|
||||
"w": 0.444,
|
||||
"a_fsltdz": -10.75,
|
||||
"rzTm": "2025-04-11T06:00:00.000Z",
|
||||
"rzWarning": 0,
|
||||
"rzState": 2,
|
||||
"pic": [
|
||||
{
|
||||
"stcd": "716113701",
|
||||
"tm": "2023-11-16T11:19:00.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2023/1116/716113701/20231116191900.jpg"
|
||||
},
|
||||
{
|
||||
"stcd": "716113701",
|
||||
"tm": "2023-11-16T09:05:00.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2023/1116/716113702/20231116170500.jpg"
|
||||
}
|
||||
]
|
||||
},]
|
||||
const skData =[{
|
||||
"stcd": "716129061",
|
||||
"type": "sk",
|
||||
"hasRz": true,
|
||||
"stnm": "仰天窝水库",
|
||||
"adcd": "421181201000",
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 115.106667,
|
||||
"lttd": 31.126389,
|
||||
"elev": 0,
|
||||
"damel": 325.08,
|
||||
"dsflz": 324.18,
|
||||
"fsltdz": 323.5,
|
||||
"ddz": 319.5,
|
||||
"zcxsw": 323.5,
|
||||
"drpTm": "2025-04-11T05:00:00.000Z",
|
||||
"today": 0,
|
||||
"h1": 0,
|
||||
"h3": 0,
|
||||
"h6": 0,
|
||||
"h12": 0,
|
||||
"h24": 0,
|
||||
"h48": 0,
|
||||
"drpState": 2,
|
||||
"rz": 325.16,
|
||||
"w": 0.132,
|
||||
"a_fsltdz": 4.660000000000025,
|
||||
"rzTm": "2025-04-11T05:00:00.000Z",
|
||||
"rzWarning": 1,
|
||||
"rzState": 2,
|
||||
"pic": [
|
||||
{
|
||||
"stcd": "716129061",
|
||||
"tm": "2023-03-12T06:05:00.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716129061/20230312140500.jpg"
|
||||
},
|
||||
{
|
||||
"stcd": "716129061",
|
||||
"tm": "2023-03-12T07:25:00.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716129062/20230312152500.jpg"
|
||||
}
|
||||
],
|
||||
"aRz": 4.66,
|
||||
"strarz": "4.66"
|
||||
}];
|
||||
const flyTo = () => {
|
||||
const { lgtd, lttd } = skData[0];
|
||||
if (lgtd && lttd) {
|
||||
|
|
@ -247,11 +249,11 @@ export default function Overall({ style }) {
|
|||
station.id == "cxx" && <TableRow onClick={() => flyTo()}>
|
||||
<DpTableCell style={{ width: '20%' }}><div
|
||||
className="table-ellipsis cursor-pointer"
|
||||
>永红水库</div></DpTableCell>
|
||||
<DpTableCell style={{ width: '20%' }}>130.15(0.25)</DpTableCell>
|
||||
>仰天窝水库</div></DpTableCell>
|
||||
<DpTableCell style={{ width: '20%' }}>325.16(1.66)</DpTableCell>
|
||||
<DpTableCell style={{ width: '20%' }}><div
|
||||
className="table-ellipsis cursor-pointer"
|
||||
>阎家河镇</div></DpTableCell>
|
||||
>龟山镇</div></DpTableCell>
|
||||
<DpTableCell style={{ width: '20%' }}>阎家河</DpTableCell>
|
||||
<DpTableCell style={{ width: '20%' }}><a
|
||||
className="table-ellipsis cursor-pointer"
|
||||
|
|
|
|||
|
|
@ -202,7 +202,7 @@ function DrpReal({ style }) {
|
|||
return (
|
||||
<PanelBox
|
||||
style={style}
|
||||
title="水量统计"
|
||||
title="水资源利用"
|
||||
color="green"
|
||||
extra={
|
||||
<>
|
||||
|
|
@ -214,20 +214,20 @@ function DrpReal({ style }) {
|
|||
// dispatch.map.setLayerVisible({'ByjcLayer':false});
|
||||
setTab('生态')
|
||||
}}>生态</span>
|
||||
<span className={clsx({ active: tab==='灌溉' })} onClick={() => {
|
||||
<span className={clsx({ active: tab==='灌溉发电' })} onClick={() => {
|
||||
// dispatch.map.setLayerVisible({'BxjcLayer':false});
|
||||
// dispatch.map.setLayerVisible({'SyjcLayer':true});
|
||||
// dispatch.map.setLayerVisible({'SljcLayer':false});
|
||||
// dispatch.map.setLayerVisible({'ByjcLayer':false});
|
||||
setTab('灌溉')
|
||||
}}>灌溉</span>
|
||||
<span className={clsx({ active: tab==='发电' })} onClick={() => {
|
||||
setTab('灌溉发电')
|
||||
}}>灌溉发电</span>
|
||||
{/* <span className={clsx({ active: tab==='发电' })} onClick={() => {
|
||||
// dispatch.map.setLayerVisible({'BxjcLayer':false});
|
||||
// dispatch.map.setLayerVisible({'SyjcLayer':false});
|
||||
// dispatch.map.setLayerVisible({'SljcLayer':true});
|
||||
// dispatch.map.setLayerVisible({'ByjcLayer':false});
|
||||
setTab('发电')
|
||||
}}>发电</span>
|
||||
}}>发电</span> */}
|
||||
<span className={clsx({ active: tab==='泄洪' })} onClick={() => {
|
||||
// dispatch.map.setLayerVisible({'BxjcLayer':false});
|
||||
// dispatch.map.setLayerVisible({'SyjcLayer':false});
|
||||
|
|
|
|||
|
|
@ -0,0 +1,18 @@
|
|||
|
||||
function Page({ type,name,num1,num2,skType,setSkType }) {
|
||||
|
||||
return (
|
||||
<div style={{width:'100%',display:'flex',fontSize:'0.9rem', color:'#ffffff',padding:'0.5rem 0.5rem 0.5rem 1rem',borderRadius:'5px',background:'#132a4b',alignItems:'center',marginBottom:'1px',cursor:'pointer'}} onClick={()=>{
|
||||
setSkType(skType!==type?type:'')
|
||||
}}>
|
||||
<img src={`${process.env.PUBLIC_URL}/assets/icon/大型水库.svg`} width={15} height={15} alt=""/>
|
||||
<div style={{flex:1,paddingLeft:'0.8rem',marginBottom:'-0.1rem'}}>{name}</div>
|
||||
<div style={{marginBottom:'-0.1rem'}}>{num1}座</div>
|
||||
<div style={{margin:'0 1rem -0.1rem 1rem'}}>{num2}亿m³</div>
|
||||
<img src={`${process.env.PUBLIC_URL}/assets/icon/${skType===type?'收起':'展开'}.png`} style={{cursor:'pointer'}} width={20} alt="" />
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
export default Page;
|
||||
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
|
||||
function Page({ style }) {
|
||||
|
||||
return (
|
||||
<div style={{width:'100%',display:'flex'}}>
|
||||
<div style={{width:'100%',display:'flex',alignItems:'flex-start',padding:'0.5rem 0',justifyContent:'space-around'}}>
|
||||
<div style={{width:'24%',display:'flex',flexDirection:'column',alignItems:'center',border:'1px solid rgba(36, 136, 223, 0.4)',paddingTop:'0.2rem',background:'#132a4b'}}>
|
||||
<img src={`${process.env.PUBLIC_URL}/assets/icon/大型水库.svg`} width={20} alt=""/>
|
||||
<div style={{color:'#ffffff',fontSize:'0.8rem',marginTop:'0.1rem'}}>大型水库</div>
|
||||
<div style={{color:'#ffffff',fontSize:'0.8rem',lineHeight:'1rem'}}><span style={{color:'#7dd188',fontSize:'1.2rem'}}>3</span> 座</div>
|
||||
</div>
|
||||
<div style={{width:'24%',display:'flex',flexDirection:'column',alignItems:'center',border:'1px solid rgba(36, 136, 223, 0.4)',paddingTop:'0.2rem',background:'#132a4b'}}>
|
||||
<img src={`${process.env.PUBLIC_URL}/assets/icon/大型水库.svg`} width={20} alt=""/>
|
||||
<div style={{color:'#ffffff',fontSize:'0.8rem',marginTop:'0.1rem'}}>中型水库</div>
|
||||
<div style={{color:'#ffffff',fontSize:'0.8rem',lineHeight:'1rem'}}><span style={{color:'#7dd188',fontSize:'1.2rem'}}>3</span> 座</div>
|
||||
</div>
|
||||
<div style={{width:'24%',display:'flex',flexDirection:'column',alignItems:'center',border:'1px solid rgba(36, 136, 223, 0.4)',paddingTop:'0.2rem',background:'#132a4b'}}>
|
||||
<img src={`${process.env.PUBLIC_URL}/assets/icon/大型水库.svg`} width={20} alt=""/>
|
||||
<div style={{color:'#ffffff',fontSize:'0.8rem',marginTop:'0.1rem'}}>小(1)型水库</div>
|
||||
<div style={{color:'#ffffff',fontSize:'0.8rem',lineHeight:'1rem'}}><span style={{color:'#7dd188',fontSize:'1.2rem'}}>3</span> 座</div>
|
||||
</div>
|
||||
<div style={{width:'24%',display:'flex',flexDirection:'column',alignItems:'center',border:'1px solid rgba(36, 136, 223, 0.4)',paddingTop:'0.2rem',background:'#132a4b'}}>
|
||||
<img src={`${process.env.PUBLIC_URL}/assets/icon/大型水库.svg`} width={20} alt=""/>
|
||||
<div style={{color:'#ffffff',fontSize:'0.8rem',marginTop:'0.1rem'}}>小(2)型水库</div>
|
||||
<div style={{color:'#ffffff',fontSize:'0.8rem',lineHeight:'1rem'}}><span style={{color:'#7dd188',fontSize:'1.2rem'}}>3</span> 座</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
export default Page;
|
||||
|
|
@ -1,13 +1,125 @@
|
|||
import React, { useMemo, useState } from 'react';
|
||||
import { Switch, FormControlLabel,InputLabel, Select, MenuItem,FormControl } from '@material-ui/core/index'
|
||||
import React, { useEffect, useMemo, useState } from 'react';
|
||||
import { Switch, Collapse,Table, TableContainer, TableBody,TableHead, TableRow, TableSortLabel } from '@material-ui/core/index'
|
||||
import DpTableCell from '../../../../layouts/mui/DpTableCell';
|
||||
import DpTableRow from '../../../../layouts/mui/DpTableRow';
|
||||
import PanelBox from '../../components/PanelBox';
|
||||
import AreaDrpChart from './chart';
|
||||
import { parseGeoJSON } from "../../../../utils/tools";
|
||||
import { SkRealPromise } from "../../../../models/_/real";
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import CountPage from './countPage'
|
||||
import CollapsePage from './collapsePage'
|
||||
|
||||
|
||||
|
||||
function DrpReal({ style }) {
|
||||
const [dimension, setDimension] =useState('ft');
|
||||
const [skData,setSkData] = useState([])
|
||||
const [skType,setSkType] = useState('')
|
||||
const [sort,setSort] = useState(true)
|
||||
const dispatch = useDispatch();
|
||||
const tableData = useMemo(()=>{
|
||||
if(skType==='1'){
|
||||
return (skData.filter(o=>o.w>10000)||[]).sort((a,b)=>sort?(b.w-a.w):(a.w-b.w))
|
||||
}
|
||||
if(skType==='2'){
|
||||
return (skData.filter(o=>o.w>100 && o.w<=10000)||[]).sort((a,b)=>sort?(b.w-a.w):(a.w-b.w))
|
||||
}
|
||||
if(skType==='3'){
|
||||
return (skData.filter(o=>o.w>0.375 && o.w<=100)||[]).sort((a,b)=>sort?(b.w-a.w):(a.w-b.w))
|
||||
}
|
||||
if(skType==='4'){
|
||||
return (skData.filter(o=>o.w>=0 && o.w<=0.375)||[]).sort((a,b)=>sort?(b.w-a.w):(a.w-b.w))
|
||||
}
|
||||
return []
|
||||
},[skData,skType,sort])
|
||||
|
||||
const skTypeObj = [
|
||||
{type:'1',name:'大型水库',num1:3,num2:7.9316},//8.735
|
||||
{type:'2',name:'中型水库',num1:7,num2:1.627},
|
||||
{type:'3',name:'小(1)型水库',num1:43,num2:1.627},
|
||||
{type:'4',name:'小(2)型水库',num1:207,num2:8.735},
|
||||
]
|
||||
|
||||
useEffect(()=>{
|
||||
getSkData()
|
||||
|
||||
// return ()=>{
|
||||
// const map = window.__mapref;
|
||||
// const layer = map.getLayer('临时水库tz')
|
||||
// if(layer){
|
||||
// map.removeLayer('临时水库tz');
|
||||
// map.removeSource('临时水库tz');
|
||||
// }
|
||||
// }
|
||||
},[])
|
||||
|
||||
const getSkData = async()=>{
|
||||
const data = await SkRealPromise.get();
|
||||
setSkData(data)
|
||||
}
|
||||
|
||||
const flyTo = (row)=>{
|
||||
const { lgtd, lttd } = row;
|
||||
if (lgtd && lttd) {
|
||||
// dispatch.runtime.setFeaturePop({ type: 'RealSkPop', properties: row, coordinates: [row.lgtd, row.lttd] });
|
||||
dispatch.runtime.setCameraTarget({
|
||||
center: [lgtd, lttd],
|
||||
zoom: 15,
|
||||
pitch: 50,
|
||||
bearing: 0
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
const setSkLayer = (data=[])=>{
|
||||
const map = window.__mapref;
|
||||
const layer = map.getLayer('临时水库tz')
|
||||
if(layer){
|
||||
map.removeLayer('临时水库tz');
|
||||
map.removeSource('临时水库tz');
|
||||
}
|
||||
if(data.length===0){return}
|
||||
map.addLayer({
|
||||
'id': '临时水库tz',//+new Date().getTime(),
|
||||
'type': 'symbol',
|
||||
'source': {
|
||||
'type': 'geojson',
|
||||
'data': {
|
||||
'type': 'FeatureCollection',
|
||||
'features': [],
|
||||
},
|
||||
},
|
||||
'layout': {
|
||||
// 'icon-allow-overlap': true,
|
||||
// 'text-allow-overlap': true,
|
||||
'icon-image': '水库', // 从properties中动态读取icon字段
|
||||
'icon-size': [
|
||||
'interpolate', ['linear'], ['zoom'],
|
||||
10, 0.8,
|
||||
14, 0.8,
|
||||
],
|
||||
'text-size': [
|
||||
'interpolate', ['linear'], ['zoom'],
|
||||
5, 10,
|
||||
14, 14,
|
||||
],
|
||||
'text-font': ['Roboto Black'],
|
||||
'text-field': [
|
||||
'step',
|
||||
['zoom'],
|
||||
'',
|
||||
8, ['get', 'stnm']
|
||||
],
|
||||
'text-anchor': 'top',
|
||||
'text-offset': [0, 1],
|
||||
},
|
||||
'paint': {
|
||||
'text-color': '#fff'
|
||||
},
|
||||
'visibility': 'visible',
|
||||
});
|
||||
map.getSource('临时水库tz').setData(parseGeoJSON(data))
|
||||
}
|
||||
|
||||
return (
|
||||
<PanelBox
|
||||
|
|
@ -15,18 +127,54 @@ function DrpReal({ style }) {
|
|||
title="水库总览"
|
||||
color="green"
|
||||
>
|
||||
<div style={{width:'100%',height:"14rem",display:'flex',marginTop:'-15px'}}>
|
||||
<div style={{margin:'10px auto',width:'70%'}}>
|
||||
<AreaDrpChart data={[]} />
|
||||
</div>
|
||||
<div style={{width:'30%',display:'flex',flexDirection:'column',justifyContent:'center'}}>
|
||||
<div style={{display:'flex',alignItems:'center',color:'#cdddf7',cursor:'pointer',marginTop:'35px'}}><div style={{width:'8px',height:'8px',borderRadius:'8px',background:'#6187e6',marginRight:'10px'}}></div>大型水库</div>
|
||||
<div style={{display:'flex',alignItems:'center',color:'#cdddf7',cursor:'pointer',marginTop:'10px'}}><div style={{width:'8px',height:'8px',borderRadius:'8px',background:'#77caa1',marginRight:'10px'}}></div>中型水库</div>
|
||||
<div style={{display:'flex',alignItems:'center',color:'#cdddf7',cursor:'pointer',marginTop:'10px'}}><div style={{width:'8px',height:'8px',borderRadius:'8px',background:'#5c6988',marginRight:'10px'}}></div>小(1)型水库</div>
|
||||
<div style={{display:'flex',alignItems:'center',color:'#cdddf7',cursor:'pointer',marginTop:'10px'}}><div style={{width:'8px',height:'8px',borderRadius:'8px',background:'#e2b642',marginRight:'10px'}}></div>小(2)型水库</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style={{width:'100%',color:'#E0F6F7',padding:"0 15px"}}><div style={{width:'2rem',display:'inline-block'}}></div>麻城市共有 325 座水库,其中大型水库 3 座(浮桥河水库45490万m³、明山水库16900万m³、三河口水库16926万m³),中型水库 7 座(总库容约 1.627亿m³),小(1)型水库 44 座、小(2)型水库 271 座,全市水库总库容约 11.56 亿m³。</div>
|
||||
<CountPage/>
|
||||
{
|
||||
skTypeObj.map((item)=>
|
||||
(<>
|
||||
<CollapsePage type={item.type} name={item.name} num1={item.num1} num2={item.num2} skType={skType} setSkType={setSkType}/>
|
||||
<Collapse in={skType===item.type} timeout="auto" unmountOnExit>
|
||||
<TableContainer style={{ height: '12.8rem' }}>
|
||||
<Table size="small" stickyHeader>
|
||||
<TableHead>
|
||||
<TableRow>
|
||||
<DpTableCell style={{ minWidth: '1rem' }} align="left">序号</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '5rem' }} align="center">水库名称</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '8rem' }} align="center">类型</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '8rem' }} align="center">
|
||||
<TableSortLabel
|
||||
onClick={() => setSort(!sort)}
|
||||
active={true}
|
||||
direction={sort?'desc':'asc'}>
|
||||
{'库容(万m³)'}
|
||||
</TableSortLabel>
|
||||
</DpTableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
{
|
||||
tableData.map((tableRow,index)=>
|
||||
<TableBody>
|
||||
<DpTableRow key={tableRow.stcd}>
|
||||
<DpTableCell align="center" >{index+1}</DpTableCell>
|
||||
<DpTableCell align="center" >
|
||||
<div className="table-ellipsis cursor-pointer" onClick={()=>{
|
||||
flyTo(tableRow)
|
||||
setSkLayer([tableRow])
|
||||
}}>
|
||||
{tableRow.stnm}
|
||||
</div>
|
||||
</DpTableCell>
|
||||
<DpTableCell align="center" >{item.name}</DpTableCell>
|
||||
<DpTableCell align="center" >{tableRow.w}</DpTableCell>
|
||||
</DpTableRow>
|
||||
</TableBody>
|
||||
)
|
||||
}
|
||||
</Table>
|
||||
</TableContainer>
|
||||
</Collapse>
|
||||
</>)
|
||||
)
|
||||
}
|
||||
</PanelBox>
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,34 +12,35 @@ import DpTableCell from '../../../../layouts/mui/DpTableCell';
|
|||
import DpTableRow from '../../../../layouts/mui/DpTableRow';
|
||||
import clsx from 'clsx';
|
||||
import { renderDrp } from '../../../../utils/renutils';
|
||||
const data3 = [{
|
||||
"cd": "1",
|
||||
"cd_nm": "WE",
|
||||
"ch": "1",
|
||||
"res_reg_cd": "42118140042-A4",
|
||||
"res_cd": "42118140004",
|
||||
"res_nm": "永丰水库",
|
||||
"res_lon": 115.05541,
|
||||
"res_lat": 31.11106,
|
||||
"province_cd": "420000000000",
|
||||
"province_nm": "湖北省",
|
||||
"city_cd": "421100000000",
|
||||
"city_nm": "黄冈市",
|
||||
"county_cd": "421181000000",
|
||||
"county_nm": "麻城市",
|
||||
"town_cd": "421181003000",
|
||||
"town_nm": "南湖办事处",
|
||||
"danger_stat": "非病险水库",
|
||||
"bas_guid": "鄂东五河片区",
|
||||
"label": "2023高标准",
|
||||
"eng_scal": "小(1)型",
|
||||
"value": 0.3,
|
||||
"diff_value": -0.02,
|
||||
"trend": -1,
|
||||
"dt": "2025-05-20",
|
||||
"is_has_data": "y",
|
||||
"max_value": 0.3
|
||||
}]
|
||||
const data3 =[{
|
||||
"cd": "1",
|
||||
"cd_nm": "WE",
|
||||
"ch": "1",
|
||||
'stnm':'WE',
|
||||
"res_reg_cd": "42118140042-A4",
|
||||
"res_cd": "42118140004",
|
||||
"res_nm": "浮桥河水库",
|
||||
"res_lon": 114.88429,
|
||||
"res_lat": 31.172700,
|
||||
"province_cd": "420000000000",
|
||||
"province_nm": "湖北省",
|
||||
"city_cd": "421100000000",
|
||||
"city_nm": "黄冈市",
|
||||
"county_cd": "421181000000",
|
||||
"county_nm": "麻城市",
|
||||
"town_cd": "421181003000",
|
||||
"town_nm": "南湖办事处",
|
||||
"danger_stat": "非病险水库",
|
||||
"bas_guid": "鄂东五河片区",
|
||||
"label": "2023高标准",
|
||||
"eng_scal": "小(1)型",
|
||||
"value": 0.3,
|
||||
"diff_value": -0.02,
|
||||
"trend": -1,
|
||||
"dt": "2025-05-20",
|
||||
"is_has_data": "y",
|
||||
"max_value": 0.3
|
||||
}]
|
||||
|
||||
|
||||
function DrpReal({ style }) {
|
||||
|
|
@ -73,7 +74,7 @@ function DrpReal({ style }) {
|
|||
if (lgtd && lttd) {
|
||||
dispatch.runtime.setCameraTarget({
|
||||
center: [lgtd- 0.0029, lttd],
|
||||
zoom: 15,
|
||||
zoom: 17,
|
||||
pitch: 60,
|
||||
bearing: 0
|
||||
});
|
||||
|
|
|
|||
|
|
@ -19,9 +19,9 @@ const data2 = [
|
|||
"ch": "0+060",
|
||||
"res_reg_cd": "42118140011-A4",
|
||||
"res_cd": "42118140038",
|
||||
"res_lon": 115.01664,
|
||||
"res_lat": 31.40681,
|
||||
"res_nm": "蛤蟆岗水库",
|
||||
"res_lon": 114.87929,
|
||||
"res_lat": 31.171467,
|
||||
"res_nm": "浮桥河水库",
|
||||
"province_cd": "420000000000",
|
||||
"province_nm": "湖北省",
|
||||
"city_cd": "421100000000",
|
||||
|
|
@ -730,14 +730,16 @@ function DrpReal({ style }) {
|
|||
<DpTableRow key={row.stcd}>
|
||||
<DpTableCell component="th" scope="row">
|
||||
<div className="table-ellipsis cursor-pointer" onClick={() => {
|
||||
const { res_lon:lgtd, res_lat:lttd } = row;
|
||||
if (lgtd && lttd) {
|
||||
dispatch.runtime.setCameraTarget({
|
||||
center: [lgtd + 0.0019, lttd],
|
||||
zoom: 15,
|
||||
pitch: 60,
|
||||
bearing: 0
|
||||
});
|
||||
const { res_lon: lgtd, res_lat: lttd,res_nm:stnm } = row;
|
||||
if (stnm == '浮桥河水库') {
|
||||
if (lgtd && lttd) {
|
||||
dispatch.runtime.setCameraTarget({
|
||||
center: [lgtd+ 0.0019, lttd],
|
||||
zoom: 17,
|
||||
pitch: 60,
|
||||
bearing: 0
|
||||
});
|
||||
}
|
||||
}
|
||||
}}>{row.res_nm}</div>
|
||||
</DpTableCell>
|
||||
|
|
|
|||
|
|
@ -88,6 +88,7 @@ function Hdyj({ data }) {
|
|||
}, [dispatch]);
|
||||
|
||||
const showdata = hisdata?.length > 0 ? hisdata : (data || []);
|
||||
console.log("showdata",showdata);
|
||||
|
||||
return (
|
||||
<div className="dppanel-shyj">
|
||||
|
|
|
|||
|
|
@ -0,0 +1,67 @@
|
|||
import React, { useState, useEffect } from 'react';
|
||||
import './index.less';
|
||||
|
||||
const WaterLevelAlert = () => {
|
||||
const [position, setPosition] = useState(0);
|
||||
|
||||
const alerts = [
|
||||
{
|
||||
reservoir: '浮桥河水库',
|
||||
time: '06月08日02时',
|
||||
level: '65.01',
|
||||
overLimit: '0.12',
|
||||
},
|
||||
{
|
||||
reservoir: '浮桥河水库',
|
||||
time: '06月08日02时',
|
||||
level: '93.4',
|
||||
overLimit: '0.40',
|
||||
}
|
||||
];
|
||||
|
||||
useEffect(() => {
|
||||
const height = 24; // 每个项目的高度
|
||||
const totalHeight = height * alerts.length;
|
||||
let currentPosition = 0;
|
||||
|
||||
const animate = () => {
|
||||
currentPosition += height;
|
||||
if (currentPosition >= totalHeight) {
|
||||
currentPosition = 0;
|
||||
}
|
||||
setPosition(currentPosition);
|
||||
};
|
||||
|
||||
const timer = setInterval(animate, 3000);
|
||||
return () => clearInterval(timer);
|
||||
}, []);
|
||||
|
||||
// 复制一份数据用于无缝滚动
|
||||
const displayAlerts = [...alerts, ...alerts];
|
||||
|
||||
return (
|
||||
<div className="water-level-alert">
|
||||
<div className="alert-container">
|
||||
<div
|
||||
className="alert-wrapper"
|
||||
style={{
|
||||
transform: `translateY(-${position}px)`,
|
||||
transition: position === 0 ? 'none' : 'transform 0.5s ease-in-out'
|
||||
}}
|
||||
>
|
||||
{displayAlerts.map((alert, index) => (
|
||||
<div key={index} className="alert-item">
|
||||
<span className="alert-text">
|
||||
预计{alert.reservoir}于 {alert.time}水位将上涨至
|
||||
{alert.level} m (超汛限水位{alert.overLimit}m),
|
||||
请做好防范
|
||||
</span>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default WaterLevelAlert;
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
.water-level-alert {
|
||||
background: rgba(0, 32, 51, 0.9);
|
||||
padding: 10px 20px;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #0088cc;
|
||||
|
||||
.alert-container {
|
||||
height: 24px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.alert-wrapper {
|
||||
will-change: transform;
|
||||
}
|
||||
|
||||
.alert-item {
|
||||
height: 24px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.alert-text {
|
||||
color: #ffffff;
|
||||
font-size: 14px;
|
||||
white-space: nowrap;
|
||||
|
||||
&::before {
|
||||
content: '⚠️';
|
||||
margin-right: 8px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -19,6 +19,7 @@ import { RadioGroup, Radio, Switch, FormControlLabel, InputLabel, Select, MenuIt
|
|||
import { backgroundColor } from 'echarts/lib/theme/dark';
|
||||
import { Description } from '@material-ui/icons';
|
||||
import DescriptionItem from '../../components/DescrptionItem';
|
||||
import WaterLevelAlert from './WaterLevelAlert'
|
||||
export default function Warn({ style }) {
|
||||
const dispatch = useDispatch();
|
||||
const res = useSelector(s => s.runtime.yyObj)
|
||||
|
|
@ -168,6 +169,10 @@ export default function Warn({ style }) {
|
|||
<img src={`${process.env.PUBLIC_URL}/assets/sl.jpg`} alt="" style={{ width: 421}} />
|
||||
</div> */}
|
||||
</div>}
|
||||
|
||||
<div style={{ color: "#fff", position: 'absolute', top: 90, right: 600 }}>
|
||||
<WaterLevelAlert />
|
||||
</div>
|
||||
</div>
|
||||
</PanelBox>
|
||||
)
|
||||
|
|
|
|||
Loading…
Reference in New Issue