Compare commits
No commits in common. "7327089280024740515d1232d94fb8e736c7cb65" and "bb07d9d6003ebe0f543cd84d0f090edde9ccb5cd" have entirely different histories.
7327089280
...
bb07d9d600
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 404 B |
|
Before Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 206 KiB |
|
Before Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 44 KiB |
24662
public/data/azd.json
|
|
@ -1,974 +0,0 @@
|
|||
[
|
||||
{
|
||||
"PID": "4211810010000005E067",
|
||||
"NAME": "龙池桥中心学校",
|
||||
"ADCD": "421181001000000",
|
||||
"WSCD": "WFA980012J000000",
|
||||
"TYPE": "1",
|
||||
"OCODE": "747668981",
|
||||
"ADDRESS": "龙池办事处松鹤村",
|
||||
"AREA": 66.52,
|
||||
"OGNOP": 1800,
|
||||
"HCOUNT": 2,
|
||||
"AVALUE": 1000,
|
||||
"OVALUE": 1800,
|
||||
"picPath": "\\企事业单位调查\\421181001000000500003.jpg",
|
||||
"lgtd": 115.027478,
|
||||
"lttd": 31.201722,
|
||||
"elev": 44.76
|
||||
},
|
||||
{
|
||||
"PID": "4211810010000005E068",
|
||||
"NAME": "龙池卫生院",
|
||||
"ADCD": "421181001000000",
|
||||
"WSCD": "WFA9800121NA0000",
|
||||
"TYPE": "1",
|
||||
"OCODE": " ",
|
||||
"ADDRESS": "龙池办事处",
|
||||
"AREA": 1.26,
|
||||
"OGNOP": 57,
|
||||
"HCOUNT": 1,
|
||||
"AVALUE": 500,
|
||||
"OVALUE": 110,
|
||||
"picPath": "\\企事业单位调查\\421181001000000500004.jpg",
|
||||
"lgtd": 115.024356,
|
||||
"lttd": 31.195007,
|
||||
"elev": 44.32
|
||||
},
|
||||
{
|
||||
"PID": "4211810010000005E069",
|
||||
"NAME": "麻城市芬芳幼儿园",
|
||||
"ADCD": "421181001000000",
|
||||
"WSCD": "WFA9800121NA0000",
|
||||
"TYPE": "2",
|
||||
"OCODE": " ",
|
||||
"ADDRESS": "龙池办事处将军路87号",
|
||||
"AREA": 0.45,
|
||||
"OGNOP": 120,
|
||||
"HCOUNT": 1,
|
||||
"AVALUE": 110,
|
||||
"OVALUE": 240,
|
||||
"picPath": "\\企事业单位调查\\421181001000000500005.jpg",
|
||||
"lgtd": 115.031843,
|
||||
"lttd": 31.189384,
|
||||
"elev": 45.71
|
||||
},
|
||||
{
|
||||
"PID": "4211810020000005E06a",
|
||||
"NAME": "麻城市人民医院",
|
||||
"ADCD": "421181002000000",
|
||||
"WSCD": "WFA980012K000000",
|
||||
"TYPE": "1",
|
||||
"OCODE": "420736065",
|
||||
"ADDRESS": "鼓楼办事处南正街贡家巷20号",
|
||||
"AREA": 2.7,
|
||||
"OGNOP": 800,
|
||||
"HCOUNT": 2,
|
||||
"AVALUE": 6000,
|
||||
"OVALUE": 3000,
|
||||
"picPath": "\\企事业单位调查\\421181002000000500006.jpg",
|
||||
"lgtd": 115.033906,
|
||||
"lttd": 31.178511,
|
||||
"elev": 47.73
|
||||
},
|
||||
{
|
||||
"PID": "4211810020000005E06b",
|
||||
"NAME": "麻城市第一实验小学",
|
||||
"ADCD": "421181002000000",
|
||||
"WSCD": "WFA980012K000000",
|
||||
"TYPE": "1",
|
||||
"OCODE": "420735855",
|
||||
"ADDRESS": "鼓楼办事处东正街29号",
|
||||
"AREA": 3.75,
|
||||
"OGNOP": 2157,
|
||||
"HCOUNT": 3,
|
||||
"AVALUE": 900,
|
||||
"OVALUE": 2000,
|
||||
"picPath": "\\企事业单位调查\\421181002000000500008.jpg",
|
||||
"lgtd": 115.034242,
|
||||
"lttd": 31.181756,
|
||||
"elev": 46.66
|
||||
},
|
||||
{
|
||||
"PID": "4211810020000005E06c",
|
||||
"NAME": "麻城市鼓楼朝圣幼儿园",
|
||||
"ADCD": "421181002000000",
|
||||
"WSCD": "WFA980012K000000",
|
||||
"TYPE": "2",
|
||||
"OCODE": " ",
|
||||
"ADDRESS": "鼓楼办事处朝圣路",
|
||||
"AREA": 0.65,
|
||||
"OGNOP": 150,
|
||||
"HCOUNT": 1,
|
||||
"AVALUE": 200,
|
||||
"OVALUE": 300,
|
||||
"picPath": "\\企事业单位调查\\421181002000000500009.jpg",
|
||||
"lgtd": 115.042473,
|
||||
"lttd": 31.178212,
|
||||
"elev": 44.98
|
||||
},
|
||||
{
|
||||
"PID": "4211810020000005E06d",
|
||||
"NAME": "麻城市鼓楼中学",
|
||||
"ADCD": "421181002000000",
|
||||
"WSCD": "WFA980012K000000",
|
||||
"TYPE": "1",
|
||||
"OCODE": "420735839",
|
||||
"ADDRESS": "鼓楼办事处政协路",
|
||||
"AREA": 1.56,
|
||||
"OGNOP": 1100,
|
||||
"HCOUNT": 2,
|
||||
"AVALUE": 600,
|
||||
"OVALUE": 1200,
|
||||
"picPath": "\\企事业单位调查\\42118100200000050000A.jpg",
|
||||
"lgtd": 115.036308,
|
||||
"lttd": 31.183311,
|
||||
"elev": 46.67
|
||||
},
|
||||
{
|
||||
"PID": "4211811002000005E06h",
|
||||
"NAME": "中馆驿镇中心小学",
|
||||
"ADCD": "421181100200000",
|
||||
"WSCD": "WFA9820900000000",
|
||||
"TYPE": "1",
|
||||
"OCODE": "744619340",
|
||||
"ADDRESS": "中馆驿镇林家寨村",
|
||||
"AREA": 3.07,
|
||||
"OGNOP": 300,
|
||||
"HCOUNT": 2,
|
||||
"AVALUE": 200,
|
||||
"OVALUE": 600,
|
||||
"picPath": "\\企事业单位调查\\42118110020000050000B.JPG",
|
||||
"lgtd": 114.892369,
|
||||
"lttd": 31.118397,
|
||||
"elev": 30.58
|
||||
},
|
||||
{
|
||||
"PID": "4211811002100005E06g",
|
||||
"NAME": "天天向上幼儿园",
|
||||
"ADCD": "421181100210000",
|
||||
"WSCD": "WFA9800121TG0000",
|
||||
"TYPE": "2",
|
||||
"OCODE": " ",
|
||||
"ADDRESS": "中馆驿镇湖田畈村东正街",
|
||||
"AREA": 0.6,
|
||||
"OGNOP": 120,
|
||||
"HCOUNT": 1,
|
||||
"AVALUE": 130,
|
||||
"OVALUE": 240,
|
||||
"picPath": "\\企事业单位调查\\42118110021000050000C.JPG",
|
||||
"lgtd": 114.88412,
|
||||
"lttd": 31.119457,
|
||||
"elev": 31.18
|
||||
},
|
||||
{
|
||||
"PID": "4211811012140005E06i",
|
||||
"NAME": "李胜小学",
|
||||
"ADCD": "421181101214000",
|
||||
"WSCD": "WFA980012R000000",
|
||||
"TYPE": "1",
|
||||
"OCODE": " ",
|
||||
"ADDRESS": "宋埠镇李胜村",
|
||||
"AREA": 3,
|
||||
"OGNOP": 35,
|
||||
"HCOUNT": 1,
|
||||
"AVALUE": 80,
|
||||
"OVALUE": 70,
|
||||
"picPath": "\\企事业单位调查\\42118110121400050000D.JPG",
|
||||
"lgtd": 114.782588,
|
||||
"lttd": 31.05933,
|
||||
"elev": 25.3
|
||||
},
|
||||
{
|
||||
"PID": "4211811012150005E06j",
|
||||
"NAME": "麻城市第二人民医院",
|
||||
"ADCD": "421181101215000",
|
||||
"WSCD": "WFA980012R000000",
|
||||
"TYPE": "1",
|
||||
"OCODE": "420738159",
|
||||
"ADDRESS": "宋埠镇友谊路3号",
|
||||
"AREA": 0.96,
|
||||
"OGNOP": 431,
|
||||
"HCOUNT": 4,
|
||||
"AVALUE": 1000,
|
||||
"OVALUE": 1500,
|
||||
"picPath": "\\企事业单位调查\\42118110121500050000E.JPG",
|
||||
"lgtd": 114.798004,
|
||||
"lttd": 31.063515,
|
||||
"elev": 26.3
|
||||
},
|
||||
{
|
||||
"PID": "4211811012150005E06k",
|
||||
"NAME": "宋埠小学幼儿园",
|
||||
"ADCD": "421181101215000",
|
||||
"WSCD": "WFA980012R000000",
|
||||
"TYPE": "1",
|
||||
"OCODE": " ",
|
||||
"ADDRESS": "宋埠镇郝铺村",
|
||||
"AREA": 0.6,
|
||||
"OGNOP": 200,
|
||||
"HCOUNT": 1,
|
||||
"AVALUE": 100,
|
||||
"OVALUE": 400,
|
||||
"picPath": "\\企事业单位调查\\42118110121500050000F.JPG",
|
||||
"lgtd": 114.799828,
|
||||
"lttd": 31.062103,
|
||||
"elev": 26.78
|
||||
},
|
||||
{
|
||||
"PID": "4211811012150005E06l",
|
||||
"NAME": "宋埠小学",
|
||||
"ADCD": "421181101215000",
|
||||
"WSCD": "WFA980012R000000",
|
||||
"TYPE": "1",
|
||||
"OCODE": "F86693707",
|
||||
"ADDRESS": "宋埠镇郝铺村",
|
||||
"AREA": 4.73,
|
||||
"OGNOP": 1815,
|
||||
"HCOUNT": 2,
|
||||
"AVALUE": 300,
|
||||
"OVALUE": 2000,
|
||||
"picPath": "\\企事业单位调查\\42118110121500050000G.JPG",
|
||||
"lgtd": 114.797942,
|
||||
"lttd": 31.062337,
|
||||
"elev": 27.88
|
||||
},
|
||||
{
|
||||
"PID": "4211811020010005E06m",
|
||||
"NAME": "歧亭镇卫生院",
|
||||
"ADCD": "421181102001000",
|
||||
"WSCD": "WFA9800121TH0000",
|
||||
"TYPE": "1",
|
||||
"OCODE": "422209680",
|
||||
"ADDRESS": "歧亭镇歧亭居委会",
|
||||
"AREA": 0.75,
|
||||
"OGNOP": 60,
|
||||
"HCOUNT": 3,
|
||||
"AVALUE": 120,
|
||||
"OVALUE": 300,
|
||||
"picPath": "\\企事业单位调查\\42118110200100050000H.jpg",
|
||||
"lgtd": 114.748065,
|
||||
"lttd": 31.01824,
|
||||
"elev": 20.94
|
||||
},
|
||||
{
|
||||
"PID": "4211811020010005E06n",
|
||||
"NAME": "歧亭中学",
|
||||
"ADCD": "421181102001000",
|
||||
"WSCD": "WFA9800121TH0000",
|
||||
"TYPE": "1",
|
||||
"OCODE": " ",
|
||||
"ADDRESS": "歧亭镇歧亭居委会",
|
||||
"AREA": 12,
|
||||
"OGNOP": 1500,
|
||||
"HCOUNT": 2,
|
||||
"AVALUE": 650,
|
||||
"OVALUE": 1600,
|
||||
"picPath": "\\企事业单位调查\\42118110200100050000I.jpg",
|
||||
"lgtd": 114.746442,
|
||||
"lttd": 31.011893,
|
||||
"elev": 27.86
|
||||
},
|
||||
{
|
||||
"PID": "4211811022010005E06o",
|
||||
"NAME": "童乐幼儿园",
|
||||
"ADCD": "421181102201000",
|
||||
"WSCD": "WFA9800121TH0000",
|
||||
"TYPE": "2",
|
||||
"OCODE": " ",
|
||||
"ADDRESS": "歧亭镇薛窖山村",
|
||||
"AREA": 0.47,
|
||||
"OGNOP": 130,
|
||||
"HCOUNT": 1,
|
||||
"AVALUE": 130,
|
||||
"OVALUE": 260,
|
||||
"picPath": "\\企事业单位调查\\42118110220100050000J.jpg",
|
||||
"lgtd": 114.746183,
|
||||
"lttd": 31.003048,
|
||||
"elev": 22.21
|
||||
},
|
||||
{
|
||||
"PID": "4211811030000005E06r",
|
||||
"NAME": "白果中心卫生院",
|
||||
"ADCD": "421181103000000",
|
||||
"WSCD": "WFA9800126Q00000",
|
||||
"TYPE": "1",
|
||||
"OCODE": "420735695",
|
||||
"ADDRESS": "白果镇",
|
||||
"AREA": 0.46,
|
||||
"OGNOP": 46,
|
||||
"HCOUNT": 2,
|
||||
"AVALUE": 200,
|
||||
"OVALUE": 300,
|
||||
"picPath": "\\企事业单位调查\\42118110300000050000K.jpg",
|
||||
"lgtd": 115.014488,
|
||||
"lttd": 31.038846,
|
||||
"elev": 48.95
|
||||
},
|
||||
{
|
||||
"PID": "4211811032350005E06p",
|
||||
"NAME": "明山村小学幼儿园",
|
||||
"ADCD": "421181103235000",
|
||||
"WSCD": "WFA9800125Q00000",
|
||||
"TYPE": "2",
|
||||
"OCODE": " ",
|
||||
"ADDRESS": "白果镇明山村五组",
|
||||
"AREA": 0.45,
|
||||
"OGNOP": 10,
|
||||
"HCOUNT": 1,
|
||||
"AVALUE": 100,
|
||||
"OVALUE": 30,
|
||||
"picPath": "\\企事业单位调查\\42118110323500050000L.jpg",
|
||||
"lgtd": 115.057664,
|
||||
"lttd": 31.039862,
|
||||
"elev": 54.21
|
||||
},
|
||||
{
|
||||
"PID": "4211811032350005E06q",
|
||||
"NAME": "明山中心小学",
|
||||
"ADCD": "421181103235000",
|
||||
"WSCD": "WFA9800125Q00000",
|
||||
"TYPE": "1",
|
||||
"OCODE": " ",
|
||||
"ADDRESS": "白果镇明山村五组",
|
||||
"AREA": 1.2,
|
||||
"OGNOP": 15,
|
||||
"HCOUNT": 1,
|
||||
"AVALUE": 180,
|
||||
"OVALUE": 45,
|
||||
"picPath": "\\企事业单位调查\\42118110323500050000M.jpg",
|
||||
"lgtd": 115.05762,
|
||||
"lttd": 31.040343,
|
||||
"elev": 55.83
|
||||
},
|
||||
{
|
||||
"PID": "4211811040000005E06t",
|
||||
"NAME": "夫子河中学",
|
||||
"ADCD": "421181104000000",
|
||||
"WSCD": "WFA98501D0000000",
|
||||
"TYPE": "1",
|
||||
"OCODE": " ",
|
||||
"ADDRESS": "夫子河镇新建街",
|
||||
"AREA": 5.34,
|
||||
"OGNOP": 36,
|
||||
"HCOUNT": 2,
|
||||
"AVALUE": 100,
|
||||
"OVALUE": 140,
|
||||
"picPath": "\\企事业单位调查\\42118110400000050000N.JPG",
|
||||
"lgtd": 115.026756,
|
||||
"lttd": 30.966095,
|
||||
"elev": 44.54
|
||||
},
|
||||
{
|
||||
"PID": "4211811040000005E06u",
|
||||
"NAME": "夫子河镇卫生院",
|
||||
"ADCD": "421181104000000",
|
||||
"WSCD": "WFA98501D0000000",
|
||||
"TYPE": "1",
|
||||
"OCODE": "420738298",
|
||||
"ADDRESS": "夫子河镇上铺街",
|
||||
"AREA": 0.75,
|
||||
"OGNOP": 56,
|
||||
"HCOUNT": 2,
|
||||
"AVALUE": 200,
|
||||
"OVALUE": 112,
|
||||
"picPath": "\\企事业单位调查\\42118110400000050000O.jpg",
|
||||
"lgtd": 115.026054,
|
||||
"lttd": 30.958515,
|
||||
"elev": 51.82
|
||||
},
|
||||
{
|
||||
"PID": "4211811042160005E06s",
|
||||
"NAME": "芦家河村福利院",
|
||||
"ADCD": "421181104216000",
|
||||
"WSCD": "WFA9850200000000",
|
||||
"TYPE": "1",
|
||||
"OCODE": " ",
|
||||
"ADDRESS": "夫子河镇芦家河村一组",
|
||||
"AREA": 0.36,
|
||||
"OGNOP": 20,
|
||||
"HCOUNT": 1,
|
||||
"AVALUE": 60,
|
||||
"OVALUE": 15,
|
||||
"picPath": "\\企事业单位调查\\42118110421600050000P.jpg",
|
||||
"lgtd": 115.083772,
|
||||
"lttd": 30.920199,
|
||||
"elev": 98.38
|
||||
},
|
||||
{
|
||||
"PID": "4211811050000005E06w",
|
||||
"NAME": "阎家河镇卫生院",
|
||||
"ADCD": "421181105000000",
|
||||
"WSCD": "WFA9800121PJ0000",
|
||||
"TYPE": "1",
|
||||
"OCODE": "422210155",
|
||||
"ADDRESS": "阎家河镇",
|
||||
"AREA": 0.56,
|
||||
"OGNOP": 89,
|
||||
"HCOUNT": 2,
|
||||
"AVALUE": 300,
|
||||
"OVALUE": 178,
|
||||
"picPath": "\\企事业单位调查\\42118110500000050000Q.JPG",
|
||||
"lgtd": 115.128763,
|
||||
"lttd": 31.213241,
|
||||
"elev": 52.35
|
||||
},
|
||||
{
|
||||
"PID": "4211811052030005E06v",
|
||||
"NAME": "阎河中心小学",
|
||||
"ADCD": "421181105203000",
|
||||
"WSCD": "WFA9800121PJ0000",
|
||||
"TYPE": "1",
|
||||
"OCODE": " ",
|
||||
"ADDRESS": "阎家河镇罗家铺村",
|
||||
"AREA": 3.97,
|
||||
"OGNOP": 500,
|
||||
"HCOUNT": 1,
|
||||
"AVALUE": 200,
|
||||
"OVALUE": 1000,
|
||||
"picPath": "\\企事业单位调查\\42118110520300050000R.JPG",
|
||||
"lgtd": 115.109029,
|
||||
"lttd": 31.209899,
|
||||
"elev": 53.61
|
||||
},
|
||||
{
|
||||
"PID": "4211811062040005E06y",
|
||||
"NAME": "花桥河村小学",
|
||||
"ADCD": "421181106204000",
|
||||
"WSCD": "WFA9800123PK0000",
|
||||
"TYPE": "1",
|
||||
"OCODE": " ",
|
||||
"ADDRESS": "龟山镇花桥河村四组",
|
||||
"AREA": 1.8,
|
||||
"OGNOP": 13,
|
||||
"HCOUNT": 1,
|
||||
"AVALUE": 120,
|
||||
"OVALUE": 30,
|
||||
"picPath": "\\企事业单位调查\\42118110620400050000S.jpg",
|
||||
"lgtd": 115.125011,
|
||||
"lttd": 31.153829,
|
||||
"elev": 57.7
|
||||
},
|
||||
{
|
||||
"PID": "4211811062070005E06x",
|
||||
"NAME": "西埠冲小学",
|
||||
"ADCD": "421181106207000",
|
||||
"WSCD": "WFA9800123PK0000",
|
||||
"TYPE": "1",
|
||||
"OCODE": " ",
|
||||
"ADDRESS": "龟山镇西埠冲村七组",
|
||||
"AREA": 1.65,
|
||||
"OGNOP": 11,
|
||||
"HCOUNT": 1,
|
||||
"AVALUE": 120,
|
||||
"OVALUE": 33,
|
||||
"picPath": "\\企事业单位调查\\42118110620700050000T.jpg",
|
||||
"lgtd": 115.137669,
|
||||
"lttd": 31.134292,
|
||||
"elev": 78.51
|
||||
},
|
||||
{
|
||||
"PID": "4211811062090005E06A",
|
||||
"NAME": "龟山中心卫生院",
|
||||
"ADCD": "421181106209000",
|
||||
"WSCD": "WFA9800121QD0000",
|
||||
"TYPE": "1",
|
||||
"OCODE": "420735505",
|
||||
"ADDRESS": "龟山镇万家湾村",
|
||||
"AREA": 1.63,
|
||||
"OGNOP": 78,
|
||||
"HCOUNT": 2,
|
||||
"AVALUE": 130,
|
||||
"OVALUE": 156,
|
||||
"picPath": "\\企事业单位调查\\42118110620900050000U.jpg",
|
||||
"lgtd": 115.183105,
|
||||
"lttd": 31.075457,
|
||||
"elev": 282.26
|
||||
},
|
||||
{
|
||||
"PID": "4211811062110005E06z",
|
||||
"NAME": "龟山镇中心幼儿园",
|
||||
"ADCD": "421181106211000",
|
||||
"WSCD": "WFA9800121QD0000",
|
||||
"TYPE": "1",
|
||||
"OCODE": " ",
|
||||
"ADDRESS": "龟山镇新屋湾村",
|
||||
"AREA": 1.83,
|
||||
"OGNOP": 230,
|
||||
"HCOUNT": 1,
|
||||
"AVALUE": 100,
|
||||
"OVALUE": 240,
|
||||
"picPath": "\\企事业单位调查\\42118110621100050000V.jpg",
|
||||
"lgtd": 115.179167,
|
||||
"lttd": 31.087827,
|
||||
"elev": 272.15
|
||||
},
|
||||
{
|
||||
"PID": "4211811072000005E06B",
|
||||
"NAME": "盐田河镇卫生院",
|
||||
"ADCD": "421181107200000",
|
||||
"WSCD": "WFA9800122QB0000",
|
||||
"TYPE": "1",
|
||||
"OCODE": "422214121",
|
||||
"ADDRESS": "盐田河镇三合湾村",
|
||||
"AREA": 4.85,
|
||||
"OGNOP": 90,
|
||||
"HCOUNT": 2,
|
||||
"AVALUE": 200,
|
||||
"OVALUE": 180,
|
||||
"picPath": "\\企事业单位调查\\42118110720000050000W.jpg",
|
||||
"lgtd": 115.172103,
|
||||
"lttd": 30.960563,
|
||||
"elev": 113.01
|
||||
},
|
||||
{
|
||||
"PID": "4211811072000005E06C",
|
||||
"NAME": "盐田河中心学校",
|
||||
"ADCD": "421181107200000",
|
||||
"WSCD": "WFA9800122QB0000",
|
||||
"TYPE": "1",
|
||||
"OCODE": "74766899X",
|
||||
"ADDRESS": "盐田河镇三合湾村",
|
||||
"AREA": 12.07,
|
||||
"OGNOP": 850,
|
||||
"HCOUNT": 2,
|
||||
"AVALUE": 230,
|
||||
"OVALUE": 1700,
|
||||
"picPath": "\\企事业单位调查\\42118110720000050000X.jpg",
|
||||
"lgtd": 115.166556,
|
||||
"lttd": 30.962625,
|
||||
"elev": 100.33
|
||||
},
|
||||
{
|
||||
"PID": "4211811072000005E06D",
|
||||
"NAME": "盐田河荣福院",
|
||||
"ADCD": "421181107200000",
|
||||
"WSCD": "WFA9800122QB0000",
|
||||
"TYPE": "1",
|
||||
"OCODE": " ",
|
||||
"ADDRESS": "盐田河镇三合湾村",
|
||||
"AREA": 1.03,
|
||||
"OGNOP": 40,
|
||||
"HCOUNT": 2,
|
||||
"AVALUE": 90,
|
||||
"OVALUE": 80,
|
||||
"picPath": "\\企事业单位调查\\42118110720000050000Y.jpg",
|
||||
"lgtd": 115.162694,
|
||||
"lttd": 30.965699,
|
||||
"elev": 101.58
|
||||
},
|
||||
{
|
||||
"PID": "4211811080000005E06E",
|
||||
"NAME": "张家畈中心幼儿园",
|
||||
"ADCD": "421181108000000",
|
||||
"WSCD": "WFA9900124K00000",
|
||||
"TYPE": "2",
|
||||
"OCODE": " ",
|
||||
"ADDRESS": "张家畈镇",
|
||||
"AREA": 1.8,
|
||||
"OGNOP": 20,
|
||||
"HCOUNT": 1,
|
||||
"AVALUE": 160,
|
||||
"OVALUE": 60,
|
||||
"picPath": "\\企事业单位调查\\421181108000000500010.jpg",
|
||||
"lgtd": 115.315272,
|
||||
"lttd": 31.046063,
|
||||
"elev": 88.14
|
||||
},
|
||||
{
|
||||
"PID": "4211811080000005E06F",
|
||||
"NAME": "张家畈中学",
|
||||
"ADCD": "421181108000000",
|
||||
"WSCD": "WFA9900124K00000",
|
||||
"TYPE": "1",
|
||||
"OCODE": " ",
|
||||
"ADDRESS": "张家畈镇",
|
||||
"AREA": 29.48,
|
||||
"OGNOP": 60,
|
||||
"HCOUNT": 2,
|
||||
"AVALUE": 200,
|
||||
"OVALUE": 120,
|
||||
"picPath": "\\企事业单位调查\\421181108000000500011.jpg",
|
||||
"lgtd": 115.307494,
|
||||
"lttd": 31.049166,
|
||||
"elev": 103.51
|
||||
},
|
||||
{
|
||||
"PID": "4211811080000005E06G",
|
||||
"NAME": "张家畈镇卫生院",
|
||||
"ADCD": "421181108000000",
|
||||
"WSCD": "WFA9900124K00000",
|
||||
"TYPE": "1",
|
||||
"OCODE": "420735062",
|
||||
"ADDRESS": "张家畈镇",
|
||||
"AREA": 1.35,
|
||||
"OGNOP": 80,
|
||||
"HCOUNT": 2,
|
||||
"AVALUE": 300,
|
||||
"OVALUE": 160,
|
||||
"picPath": "\\企事业单位调查\\421181108000000500012.jpg",
|
||||
"lgtd": 115.312079,
|
||||
"lttd": 31.050172,
|
||||
"elev": 100.22
|
||||
},
|
||||
{
|
||||
"PID": "4211811090000005E06J",
|
||||
"NAME": "木子店中心幼儿园",
|
||||
"ADCD": "421181109000000",
|
||||
"WSCD": "WFA9900126000000",
|
||||
"TYPE": "1",
|
||||
"OCODE": " ",
|
||||
"ADDRESS": "木子店镇",
|
||||
"AREA": 0.42,
|
||||
"OGNOP": 83,
|
||||
"HCOUNT": 1,
|
||||
"AVALUE": 80,
|
||||
"OVALUE": 166,
|
||||
"picPath": "\\企事业单位调查\\421181109000000500013.jpg",
|
||||
"lgtd": 115.36466,
|
||||
"lttd": 31.190097,
|
||||
"elev": 136.58
|
||||
},
|
||||
{
|
||||
"PID": "4211811090000005E06K",
|
||||
"NAME": "木子店中心卫生院",
|
||||
"ADCD": "421181109000000",
|
||||
"WSCD": "WFA9900126000000",
|
||||
"TYPE": "1",
|
||||
"OCODE": "422209605",
|
||||
"ADDRESS": "木子店镇",
|
||||
"AREA": 1.47,
|
||||
"OGNOP": 84,
|
||||
"HCOUNT": 2,
|
||||
"AVALUE": 300,
|
||||
"OVALUE": 168,
|
||||
"picPath": "\\企事业单位调查\\421181109000000500014.jpg",
|
||||
"lgtd": 115.364834,
|
||||
"lttd": 31.19075,
|
||||
"elev": 130.47
|
||||
},
|
||||
{
|
||||
"PID": "4211811092010005E06I",
|
||||
"NAME": "大堰河小学",
|
||||
"ADCD": "421181109201000",
|
||||
"WSCD": "WFA9900127000000",
|
||||
"TYPE": "1",
|
||||
"OCODE": " ",
|
||||
"ADDRESS": "木子店镇大堰河村",
|
||||
"AREA": 1.05,
|
||||
"OGNOP": 15,
|
||||
"HCOUNT": 3,
|
||||
"AVALUE": 140,
|
||||
"OVALUE": 30,
|
||||
"picPath": "\\企事业单位调查\\421181109201000500015.jpg",
|
||||
"lgtd": 115.354726,
|
||||
"lttd": 31.171109,
|
||||
"elev": 121.57
|
||||
},
|
||||
{
|
||||
"PID": "4211811092080005E06H",
|
||||
"NAME": "李峰山中心小学",
|
||||
"ADCD": "421181109208000",
|
||||
"WSCD": "WFA9900122000000",
|
||||
"TYPE": "1",
|
||||
"OCODE": " ",
|
||||
"ADDRESS": "木子店镇洗马河村新街组",
|
||||
"AREA": 3,
|
||||
"OGNOP": 34,
|
||||
"HCOUNT": 1,
|
||||
"AVALUE": 40,
|
||||
"OVALUE": 80,
|
||||
"picPath": "\\企事业单位调查\\421181109208000500016.jpg",
|
||||
"lgtd": 115.431192,
|
||||
"lttd": 31.292771,
|
||||
"elev": 171.67
|
||||
},
|
||||
{
|
||||
"PID": "4211811100000005E06L",
|
||||
"NAME": "三河口镇卫生院",
|
||||
"ADCD": "421181110000000",
|
||||
"WSCD": "WFA9800125P00000",
|
||||
"TYPE": "1",
|
||||
"OCODE": "420735302",
|
||||
"ADDRESS": "三河口镇发展路",
|
||||
"AREA": 1.22,
|
||||
"OGNOP": 90,
|
||||
"HCOUNT": 2,
|
||||
"AVALUE": 300,
|
||||
"OVALUE": 180,
|
||||
"picPath": "\\企事业单位调查\\421181110000000500017.JPG",
|
||||
"lgtd": 115.226839,
|
||||
"lttd": 31.3296,
|
||||
"elev": 100.42
|
||||
},
|
||||
{
|
||||
"PID": "4211811100000005E06M",
|
||||
"NAME": "三河口中学",
|
||||
"ADCD": "421181110000000",
|
||||
"WSCD": "WFA9800125P00000",
|
||||
"TYPE": "1",
|
||||
"OCODE": " ",
|
||||
"ADDRESS": "三河口镇三河口正街",
|
||||
"AREA": 11.25,
|
||||
"OGNOP": 800,
|
||||
"HCOUNT": 3,
|
||||
"AVALUE": 200,
|
||||
"OVALUE": 1600,
|
||||
"picPath": "\\企事业单位调查\\421181110000000500018.JPG",
|
||||
"lgtd": 115.230782,
|
||||
"lttd": 31.331596,
|
||||
"elev": 98.2
|
||||
},
|
||||
{
|
||||
"PID": "4211811110000005E06N",
|
||||
"NAME": "黄土岗中心卫生院",
|
||||
"ADCD": "421181111000000",
|
||||
"WSCD": "WFA980012C000000",
|
||||
"TYPE": "1",
|
||||
"OCODE": "420738511",
|
||||
"ADDRESS": "黄土岗镇商贸东街",
|
||||
"AREA": 2.59,
|
||||
"OGNOP": 81,
|
||||
"HCOUNT": 2,
|
||||
"AVALUE": 300,
|
||||
"OVALUE": 162,
|
||||
"picPath": "\\企事业单位调查\\421181111000000500019.jpg",
|
||||
"lgtd": 115.076006,
|
||||
"lttd": 31.383934,
|
||||
"elev": 80.13
|
||||
},
|
||||
{
|
||||
"PID": "4211811110000005E06P",
|
||||
"NAME": "黄土岗中学",
|
||||
"ADCD": "421181111000000",
|
||||
"WSCD": "WFA980012C000000",
|
||||
"TYPE": "1",
|
||||
"OCODE": "422210008",
|
||||
"ADDRESS": "黄土岗镇",
|
||||
"AREA": 14.5,
|
||||
"OGNOP": 1000,
|
||||
"HCOUNT": 4,
|
||||
"AVALUE": 400,
|
||||
"OVALUE": 2000,
|
||||
"picPath": "\\企事业单位调查\\42118111100000050001A.jpg",
|
||||
"lgtd": 115.079644,
|
||||
"lttd": 31.381166,
|
||||
"elev": 92.11
|
||||
},
|
||||
{
|
||||
"PID": "4211811112000005E06O",
|
||||
"NAME": "麻城五中",
|
||||
"ADCD": "421181111200000",
|
||||
"WSCD": "WFA980012C000000",
|
||||
"TYPE": "1",
|
||||
"OCODE": " ",
|
||||
"ADDRESS": "黄土岗镇鹰山畈村",
|
||||
"AREA": 6.18,
|
||||
"OGNOP": 600,
|
||||
"HCOUNT": 2,
|
||||
"AVALUE": 300,
|
||||
"OVALUE": 1200,
|
||||
"picPath": "\\企事业单位调查\\42118111120000050001B.jpg",
|
||||
"lgtd": 115.075514,
|
||||
"lttd": 31.380673,
|
||||
"elev": 75.55
|
||||
},
|
||||
{
|
||||
"PID": "4211811122170005E06R",
|
||||
"NAME": "福田河镇卫生院",
|
||||
"ADCD": "421181112217000",
|
||||
"WSCD": "WFA9800122C00000",
|
||||
"TYPE": "1",
|
||||
"OCODE": "420735740",
|
||||
"ADDRESS": "福田河镇桠枫树村一组",
|
||||
"AREA": 30,
|
||||
"OGNOP": 90,
|
||||
"HCOUNT": 7,
|
||||
"AVALUE": 160,
|
||||
"OVALUE": 180,
|
||||
"picPath": "\\企事业单位调查\\42118111221700050001C.jpg",
|
||||
"lgtd": 115.098528,
|
||||
"lttd": 31.483474,
|
||||
"elev": 100.51
|
||||
},
|
||||
{
|
||||
"PID": "4211811122290005E06Q",
|
||||
"NAME": "张店中心小学",
|
||||
"ADCD": "421181112229000",
|
||||
"WSCD": "WFA9800128000000",
|
||||
"TYPE": "1",
|
||||
"OCODE": " ",
|
||||
"ADDRESS": "福田河镇张店村三组",
|
||||
"AREA": 4,
|
||||
"OGNOP": 700,
|
||||
"HCOUNT": 4,
|
||||
"AVALUE": 200,
|
||||
"OVALUE": 1400,
|
||||
"picPath": "\\企事业单位调查\\42118111222900050001D.jpg",
|
||||
"lgtd": 115.093546,
|
||||
"lttd": 31.439997,
|
||||
"elev": 86.22
|
||||
},
|
||||
{
|
||||
"PID": "4211811132000005E06S",
|
||||
"NAME": "乘马岗镇列宁小学",
|
||||
"ADCD": "421181113200000",
|
||||
"WSCD": "WFA9800125J00000",
|
||||
"TYPE": "1",
|
||||
"OCODE": " ",
|
||||
"ADDRESS": "乘马岗镇",
|
||||
"AREA": 1.34,
|
||||
"OGNOP": 50,
|
||||
"HCOUNT": 1,
|
||||
"AVALUE": 80,
|
||||
"OVALUE": 100,
|
||||
"picPath": "\\企事业单位调查\\42118111320000050001H.jpg",
|
||||
"lgtd": 114.979245,
|
||||
"lttd": 31.353359,
|
||||
"elev": 68.73
|
||||
},
|
||||
{
|
||||
"PID": "4211811132000005E06T",
|
||||
"NAME": "乘马岗中心学校",
|
||||
"ADCD": "421181113200000",
|
||||
"WSCD": "WFA9800126J00000",
|
||||
"TYPE": "1",
|
||||
"OCODE": " ",
|
||||
"ADDRESS": "乘马岗镇",
|
||||
"AREA": 1.8,
|
||||
"OGNOP": 36,
|
||||
"HCOUNT": 1,
|
||||
"AVALUE": 110,
|
||||
"OVALUE": 72,
|
||||
"picPath": "\\企事业单位调查\\42118111320000050001E.jpg",
|
||||
"lgtd": 114.987757,
|
||||
"lttd": 31.353487,
|
||||
"elev": 67.54
|
||||
},
|
||||
{
|
||||
"PID": "4211811132000005E06U",
|
||||
"NAME": "乘马岗镇卫生院",
|
||||
"ADCD": "421181113200000",
|
||||
"WSCD": "WFA9800125J00000",
|
||||
"TYPE": "1",
|
||||
"OCODE": "420738335",
|
||||
"ADDRESS": "乘马岗镇",
|
||||
"AREA": 1.27,
|
||||
"OGNOP": 97,
|
||||
"HCOUNT": 2,
|
||||
"AVALUE": 350,
|
||||
"OVALUE": 194,
|
||||
"picPath": "\\企事业单位调查\\42118111320000050001F.jpg",
|
||||
"lgtd": 114.983515,
|
||||
"lttd": 31.348374,
|
||||
"elev": 78.53
|
||||
},
|
||||
{
|
||||
"PID": "4211811142390005E06V",
|
||||
"NAME": "塔尔岗村卫生分院",
|
||||
"ADCD": "421181114239000",
|
||||
"WSCD": "WFA9820200000000",
|
||||
"TYPE": "1",
|
||||
"OCODE": " ",
|
||||
"ADDRESS": "顺河镇塔尔岗村一组",
|
||||
"AREA": 1.05,
|
||||
"OGNOP": 10,
|
||||
"HCOUNT": 1,
|
||||
"AVALUE": 200,
|
||||
"OVALUE": 20,
|
||||
"picPath": "\\企事业单位调查\\42118111423900050001G.jpg",
|
||||
"lgtd": 114.88162,
|
||||
"lttd": 31.439457,
|
||||
"elev": 83.04
|
||||
},
|
||||
{
|
||||
"PID": "4211811142460005E06W",
|
||||
"NAME": "西张店中学",
|
||||
"ADCD": "421181114246000",
|
||||
"WSCD": "WFA9820200000000",
|
||||
"TYPE": "1",
|
||||
"OCODE": " ",
|
||||
"ADDRESS": "顺河镇西张店村老街",
|
||||
"AREA": 6,
|
||||
"OGNOP": 830,
|
||||
"HCOUNT": 1,
|
||||
"AVALUE": 300,
|
||||
"OVALUE": 800,
|
||||
"picPath": "\\企事业单位调查\\42118111424600050001I.jpg",
|
||||
"lgtd": 114.878961,
|
||||
"lttd": 31.438861,
|
||||
"elev": 83.02
|
||||
},
|
||||
{
|
||||
"PID": "4211812000000005E06X",
|
||||
"NAME": "铁门岗乡卫生院",
|
||||
"ADCD": "421181200000000",
|
||||
"WSCD": "WFA9800122V00000",
|
||||
"TYPE": "1",
|
||||
"OCODE": "42221413X",
|
||||
"ADDRESS": "铁门岗乡",
|
||||
"AREA": 0.85,
|
||||
"OGNOP": 98,
|
||||
"HCOUNT": 2,
|
||||
"AVALUE": 400,
|
||||
"OVALUE": 200,
|
||||
"picPath": "\\企事业单位调查\\42118120000000050001J.JPG",
|
||||
"lgtd": 114.850231,
|
||||
"lttd": 31.037437,
|
||||
"elev": 46.89
|
||||
},
|
||||
{
|
||||
"PID": "4211812000000005E06Y",
|
||||
"NAME": "铁门岗中心学校分校",
|
||||
"ADCD": "421181200000000",
|
||||
"WSCD": "WFA9800122V00000",
|
||||
"TYPE": "1",
|
||||
"OCODE": " ",
|
||||
"ADDRESS": "铁门岗乡",
|
||||
"AREA": 3.71,
|
||||
"OGNOP": 81,
|
||||
"HCOUNT": 3,
|
||||
"AVALUE": 100,
|
||||
"OVALUE": 100,
|
||||
"picPath": "\\企事业单位调查\\42118120000000050001L.JPG",
|
||||
"lgtd": 114.851842,
|
||||
"lttd": 31.0349,
|
||||
"elev": 39.21
|
||||
},
|
||||
{
|
||||
"PID": "4211814710000005E06e",
|
||||
"NAME": "麻城市黄金桥中心小学",
|
||||
"ADCD": "421181471000000",
|
||||
"WSCD": "WFA98201HB000000",
|
||||
"TYPE": "1",
|
||||
"OCODE": " ",
|
||||
"ADDRESS": "湖北省麻城开发区西陵一路",
|
||||
"AREA": 11.64,
|
||||
"OGNOP": 947,
|
||||
"HCOUNT": 2,
|
||||
"AVALUE": 500,
|
||||
"OVALUE": 1000,
|
||||
"picPath": "\\企事业单位调查\\42118147100000050001M.JPG",
|
||||
"lgtd": 114.962869,
|
||||
"lttd": 31.16076,
|
||||
"elev": 50.9
|
||||
},
|
||||
{
|
||||
"PID": "4211814710000005E06f",
|
||||
"NAME": "麻城开发区中心幼儿园",
|
||||
"ADCD": "421181471000000",
|
||||
"WSCD": "WFA98201HB000000",
|
||||
"TYPE": "1",
|
||||
"OCODE": " ",
|
||||
"ADDRESS": "湖北省麻城开发区西陵一路",
|
||||
"AREA": 0.72,
|
||||
"OGNOP": 350,
|
||||
"HCOUNT": 1,
|
||||
"AVALUE": 300,
|
||||
"OVALUE": 700,
|
||||
"picPath": "\\企事业单位调查\\42118147100000050001N.JPG",
|
||||
"lgtd": 114.963107,
|
||||
"lttd": 31.160409,
|
||||
"elev": 54.4
|
||||
}
|
||||
]
|
||||
144147
public/data/wxq.json
207748
public/data/yhjmh.json
|
|
@ -70,14 +70,6 @@
|
|||
"y": 0,
|
||||
"pixelRatio": 1,
|
||||
"visible": true
|
||||
},
|
||||
"巡查": {
|
||||
"width": 32,
|
||||
"height": 32,
|
||||
"x": 128,
|
||||
"y": 32,
|
||||
"pixelRatio": 1,
|
||||
"visible": true
|
||||
},
|
||||
"水库-离线": {
|
||||
"width": 32,
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 45 KiB |
|
|
@ -84,9 +84,9 @@ export const SkRealPromise = new CachePromise(
|
|||
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)
|
||||
}
|
||||
// if(obj.h1===9){
|
||||
// cs = obj.h1
|
||||
// }
|
||||
return obj
|
||||
})
|
||||
return list
|
||||
|
|
|
|||
|
|
@ -511,7 +511,8 @@ const map = {
|
|||
dispatch.runtime.setLayerSetting({ planeArea: null });
|
||||
dispatch.map.setLayerVisible({ ContourLayer: false });
|
||||
}
|
||||
if (id === 201) {
|
||||
|
||||
if (id === 201 || id === 205) {
|
||||
dispatch.map.setLayerSetting({ dom: false });
|
||||
map.setLayoutProperty('热力图', 'visibility', 'visible');
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -102,7 +102,7 @@ export default function calcLayout(view, rightStack, hidePanels) {
|
|||
} else if (view === 206) {
|
||||
left = [
|
||||
{ key: '天气' },
|
||||
{ key: '巡查任务总览', style: { height: '40rem', flexGrow: 1 } },
|
||||
{ key: '水库管理', style: { height: '40rem', flexGrow: 1 } },
|
||||
];
|
||||
leftFullHeight = true;
|
||||
} else if (view === 207) {
|
||||
|
|
@ -307,8 +307,7 @@ export default function calcLayout(view, rightStack, hidePanels) {
|
|||
];
|
||||
} else if (view === 206) {
|
||||
right = [
|
||||
{ key: '巡查问题看板', style: { height: '70%', flexGrow: 1 } },
|
||||
{ key: '水库管护', style: { height: '10rem', flexGrow: 1 } },
|
||||
{ key: '警报' },
|
||||
];
|
||||
} else if (view === 207) {
|
||||
right = [
|
||||
|
|
|
|||
|
|
@ -22,40 +22,6 @@ function initState() {
|
|||
scya:undefined,
|
||||
warnresp: {},
|
||||
warnrespTick: 1,
|
||||
skType:'1',
|
||||
skObj:{
|
||||
"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
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -83,12 +49,6 @@ const runtime = {
|
|||
setScya(state, props) {
|
||||
return { ...state, scya: props }
|
||||
},
|
||||
setSkType(state, props) {
|
||||
return { ...state, skType: props }
|
||||
},
|
||||
setSkObj(state, props) {
|
||||
return { ...state, skObj: props }
|
||||
},
|
||||
setLogoDisplaying(state, val) {
|
||||
return { ...state, logoDisplaying: val }
|
||||
},
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import {
|
|||
Box,
|
||||
} from '@material-ui/core';
|
||||
import { makeStyles } from '@material-ui/core/styles';
|
||||
import clsx from "clsx"
|
||||
|
||||
import PlayArrowIcon from '@material-ui/icons/PlayArrow';
|
||||
import PauseIcon from '@material-ui/icons/Pause';
|
||||
|
||||
|
|
@ -35,33 +35,15 @@ const useStyles = makeStyles((theme) => ({
|
|||
display: 'flex',
|
||||
alignItems: 'center',
|
||||
gap: theme.spacing(2),
|
||||
},
|
||||
controls1: {
|
||||
position: 'absolute',
|
||||
top: '50%',
|
||||
left: '50%',
|
||||
transform: 'translate(-50%, -50%)',
|
||||
padding: theme.spacing(2),
|
||||
background: 'rgba(0,0,0,0.7)',
|
||||
borderRadius: theme.spacing(1),
|
||||
display: 'flex',
|
||||
alignItems: 'center',
|
||||
gap: theme.spacing(2),
|
||||
width: '800px',
|
||||
maxWidth: '90%',
|
||||
pointerEvents: 'none',
|
||||
|
||||
},
|
||||
playButton: {
|
||||
color: '#fff',
|
||||
pointerEvents: 'auto',
|
||||
'&:hover': {
|
||||
backgroundColor: 'rgba(255,255,255,0.1)',
|
||||
},
|
||||
},
|
||||
slider: {
|
||||
color: '#1976d2',
|
||||
pointerEvents: 'auto',
|
||||
flex: 1,
|
||||
'& .MuiSlider-rail': {
|
||||
backgroundColor: 'rgba(255,255,255,0.3)',
|
||||
|
|
@ -83,7 +65,6 @@ const useStyles = makeStyles((theme) => ({
|
|||
fontSize: '0.875rem',
|
||||
minWidth: 100,
|
||||
textAlign: 'right',
|
||||
pointerEvents: 'auto',
|
||||
},
|
||||
dateDisplay: {
|
||||
position: 'absolute',
|
||||
|
|
@ -94,13 +75,9 @@ const useStyles = makeStyles((theme) => ({
|
|||
fontWeight: 500,
|
||||
textShadow: '1px 1px 2px rgba(0,0,0,0.5)',
|
||||
},
|
||||
odd: {
|
||||
zIndex: 1,
|
||||
position: 'absolute'
|
||||
}
|
||||
}));
|
||||
|
||||
const VideoPlayer = ({ videoUrl, date,odd=false }) => {
|
||||
const VideoPlayer = ({ videoUrl, date }) => {
|
||||
const classes = useStyles();
|
||||
const [playing, setPlaying] = useState(false);
|
||||
const [progress, setProgress] = useState(0);
|
||||
|
|
@ -143,7 +120,7 @@ const VideoPlayer = ({ videoUrl, date,odd=false }) => {
|
|||
};
|
||||
|
||||
return (
|
||||
<div className={clsx({[classes.root]:true,[classes.odd]:odd})}>
|
||||
<div className={classes.root}>
|
||||
<div className={classes.videoContainer}>
|
||||
<video
|
||||
ref={videoRef}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import { makeStyles } from '@material-ui/core/styles';
|
|||
const useStyles = makeStyles(() => ({
|
||||
card: {
|
||||
marginBottom: '16px',
|
||||
backgroundColor: 'transparent',
|
||||
// backgroundColor: '#fff',
|
||||
'&:hover': {
|
||||
boxShadow: '0 4px 12px rgba(0,0,0,0.1)'
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import { makeStyles } from '@material-ui/core/styles';
|
|||
const useStyles = makeStyles(() => ({
|
||||
card: {
|
||||
marginBottom: '16px',
|
||||
backgroundColor: 'transparent',
|
||||
// backgroundColor: '#fff',
|
||||
'&:hover': {
|
||||
boxShadow: '0 4px 12px rgba(0,0,0,0.1)'
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ const useStyles = makeStyles((theme) => ({
|
|||
},
|
||||
statsContainer: {
|
||||
marginTop: theme.spacing(2),
|
||||
backgroundColor: 'transparent',
|
||||
backgroundColor: 'rgba(0, 0, 0, 0.2)',
|
||||
borderRadius: theme.shape.borderRadius,
|
||||
padding: theme.spacing(2)
|
||||
},
|
||||
|
|
@ -81,55 +81,55 @@ const useStyles = makeStyles((theme) => ({
|
|||
const RainfallMonitor = () => {
|
||||
const rainfallList = [
|
||||
{
|
||||
time: '2024-12-10 10:00:00',
|
||||
time: '2020-07-25 00:00:00',
|
||||
rainfall: 1.5,
|
||||
magnified: 3,
|
||||
simulated: 4.5
|
||||
},
|
||||
{
|
||||
time: '2024-12-10 11:00:00',
|
||||
time: '2020-07-25 01:00:00',
|
||||
rainfall: 1.5,
|
||||
magnified: 3,
|
||||
simulated: 4.5
|
||||
},
|
||||
{
|
||||
time: '2024-12-10 12:00:00',
|
||||
time: '2020-07-25 02:00:00',
|
||||
rainfall: 4.5,
|
||||
magnified: 9,
|
||||
simulated: 13.5
|
||||
},
|
||||
{
|
||||
time: '2024-12-10 13:00:00',
|
||||
time: '2020-07-25 03:00:00',
|
||||
rainfall: 1.5,
|
||||
magnified: 3,
|
||||
simulated: 4.5
|
||||
},
|
||||
{
|
||||
time: '2024-12-10 14:00:00',
|
||||
time: '2020-07-25 04:00:00',
|
||||
rainfall: 1.5,
|
||||
magnified: 3,
|
||||
simulated: 4.5
|
||||
},
|
||||
{
|
||||
time: '2024-12-10 15:00:00',
|
||||
time: '2020-07-25 05:00:00',
|
||||
rainfall: 0,
|
||||
magnified: 0,
|
||||
simulated: 0
|
||||
},
|
||||
{
|
||||
time: '2024-12-10 16:00:00',
|
||||
time: '2020-07-25 06:00:00',
|
||||
rainfall: 1.5,
|
||||
magnified: 3,
|
||||
simulated: 4.5
|
||||
},
|
||||
{
|
||||
time: '2024-12-10 17:00:00',
|
||||
time: '2020-07-25 07:00:00',
|
||||
rainfall: 1.5,
|
||||
magnified: 3,
|
||||
simulated: 4.5
|
||||
},
|
||||
{
|
||||
time: '2024-12-10 18:00:00',
|
||||
time: '2020-07-25 08:00:00',
|
||||
rainfall: 3,
|
||||
magnified: 6,
|
||||
simulated: 9
|
||||
|
|
@ -163,10 +163,10 @@ const RainfallMonitor = () => {
|
|||
<Table>
|
||||
<TableHead>
|
||||
<TableRow>
|
||||
<TableCell style={{width:'37%'}}>时间</TableCell>
|
||||
<TableCell style={{width:'20%'}}>面雨量(mm)</TableCell>
|
||||
<TableCell style={{width:'20%'}}>放大量(mm)</TableCell>
|
||||
<TableCell style={{width:'20%'}}>预演面雨量(mm)</TableCell>
|
||||
<TableCell>时间</TableCell>
|
||||
<TableCell>面雨量(mm)</TableCell>
|
||||
<TableCell>放大量(mm)</TableCell>
|
||||
<TableCell>预演面雨量(mm)</TableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
<TableBody>
|
||||
|
|
@ -202,7 +202,7 @@ const RainfallMonitor = () => {
|
|||
))}
|
||||
</Box>
|
||||
<Box className={classes.statsRow}>
|
||||
<Typography variant="subtitle2" style={{ color: "#fff", width: '80px' }}></Typography>
|
||||
<Typography variant="subtitle2" style={{ color: "#fff", width: '120' }}></Typography>
|
||||
{['>102.0', '>125.0', '>141.0', '>163.0', '>188.0'].map((threshold, index) => (
|
||||
<Box key={index} display="flex" flexDirection="column" alignItems="center">
|
||||
<Typography variant="body2">{threshold}</Typography>
|
||||
|
|
|
|||
|
|
@ -31,7 +31,6 @@ import ShuizhiLayer from '../../MapCtrl/mapstyle/shuizhilayer';
|
|||
import TrsqLayer from '../../MapCtrl/mapstyle/trsqlayer';
|
||||
import ShuichangLayer from '../../MapCtrl/mapstyle/shuichangLayer'
|
||||
import ShuiyuandiLayer from '../../MapCtrl/mapstyle/shuiyuandiLayer'
|
||||
import XunchaLayer from '../../MapCtrl/mapstyle/xunchalayer';
|
||||
|
||||
|
||||
|
||||
|
|
@ -150,9 +149,6 @@ function LayersDlg({ onClose }) {
|
|||
<div className={classes.catItem}>
|
||||
<RowItem icon="水源地" label="水源地" name={ShuiyuandiLayer.LayerName} checked={!!layerVisible[ShuiyuandiLayer.LayerName]} onChange={layerVisibleChanged} />
|
||||
</div>
|
||||
<div className={classes.catItem}>
|
||||
<RowItem icon="巡查" label="巡查" name={XunchaLayer.LayerName} checked={!!layerVisible[XunchaLayer.LayerName]} onChange={layerVisibleChanged} />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className={classes.catRoot}>
|
||||
|
|
|
|||
|
|
@ -1,41 +0,0 @@
|
|||
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 }) {
|
||||
const [value, setValue] = React.useState(0);
|
||||
|
||||
return (
|
||||
<Dialog
|
||||
open={true}
|
||||
onClose={onClose}
|
||||
maxWidth="xl"
|
||||
style={{ borderRadius: 0 }}
|
||||
PaperComponent={DpPaperComponent}
|
||||
BackdropComponent={DpBackgroundDrop}
|
||||
>
|
||||
<div className="boxhead"></div>
|
||||
<DialogContent style={{ padding: 0, width: '70rem', overflowX: 'hidden',height:'80rem' }}>
|
||||
<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/shuikugh.png`} style={{width:'100%'}}></img>
|
||||
</div>
|
||||
|
||||
</DialogContent>
|
||||
<div className="boxfoot"></div>
|
||||
</Dialog>
|
||||
)
|
||||
}
|
||||
|
||||
export default React.memo(HDStDlg);
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
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 }) {
|
||||
const [value, setValue] = React.useState(0);
|
||||
|
||||
return (
|
||||
<Dialog
|
||||
open={true}
|
||||
onClose={onClose}
|
||||
maxWidth="xl"
|
||||
style={{ borderRadius: 0 }}
|
||||
PaperComponent={DpPaperComponent}
|
||||
BackdropComponent={DpBackgroundDrop}
|
||||
>
|
||||
<div className="boxhead"></div>
|
||||
<DialogContent style={{ padding: 0, width: '60rem', overflowX: 'hidden',height:'80rem' }}>
|
||||
<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/xcxq.png`} style={{width:'100%'}}></img>
|
||||
</div>
|
||||
</DialogContent>
|
||||
<div className="boxfoot"></div>
|
||||
</Dialog>
|
||||
)
|
||||
}
|
||||
|
||||
export default React.memo(HDStDlg);
|
||||
|
|
@ -1,377 +0,0 @@
|
|||
import React, { useState,useEffect } from 'react';
|
||||
import { makeStyles } from '@material-ui/core/styles';
|
||||
import {
|
||||
Paper,
|
||||
Table,
|
||||
TableBody,
|
||||
TableCell,
|
||||
TableContainer,
|
||||
TableHead,
|
||||
TableRow,
|
||||
TextField,
|
||||
Button,
|
||||
Box,
|
||||
IconButton,
|
||||
ButtonGroup,
|
||||
Grid
|
||||
} from '@material-ui/core';
|
||||
import SearchIcon from '@material-ui/icons/Search';
|
||||
import RefreshIcon from '@material-ui/icons/Refresh';
|
||||
import { DatePicker } from 'antd';
|
||||
import moment from 'moment';
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import ModalView from './view'
|
||||
const { RangePicker } = DatePicker;
|
||||
|
||||
const useStyles = makeStyles((theme) => ({
|
||||
root: {
|
||||
width: '100%',
|
||||
backgroundColor: 'transparent',
|
||||
color: '#fff'
|
||||
},
|
||||
toolbar: {
|
||||
padding: theme.spacing(2),
|
||||
display: 'flex',
|
||||
gap: theme.spacing(2),
|
||||
alignItems: 'center',
|
||||
borderBottom: '1px solid rgba(255, 255, 255, 0.1)'
|
||||
},
|
||||
searchRow: {
|
||||
display: 'flex',
|
||||
gap: theme.spacing(2),
|
||||
alignItems: 'center',
|
||||
flexWrap: 'wrap'
|
||||
},
|
||||
searchField: {
|
||||
'& .MuiInputBase-root': {
|
||||
color: '#fff',
|
||||
backgroundColor: 'rgba(255, 255, 255, 0.05)',
|
||||
borderRadius: 4,
|
||||
width: 200
|
||||
},
|
||||
'& .MuiInputLabel-root': {
|
||||
color: '#fff'
|
||||
},
|
||||
'& .MuiOutlinedInput-notchedOutline': {
|
||||
borderColor: 'rgba(255, 255, 255, 0.1)'
|
||||
}
|
||||
},
|
||||
datePicker: {
|
||||
'& .MuiInputBase-root': {
|
||||
color: '#fff',
|
||||
backgroundColor: 'rgba(255, 255, 255, 0.05)',
|
||||
width: 200
|
||||
},
|
||||
'& .MuiIconButton-root': {
|
||||
color: '#fff'
|
||||
},
|
||||
'& .MuiOutlinedInput-notchedOutline': {
|
||||
borderColor: 'rgba(255, 255, 255, 0.1)'
|
||||
}
|
||||
},
|
||||
buttonGroup: {
|
||||
'& .MuiButton-root': {
|
||||
color: '#fff',
|
||||
borderColor: 'rgba(255, 255, 255, 0.3)',
|
||||
'&.active': {
|
||||
backgroundColor: '#2196f3',
|
||||
borderColor: '#2196f3'
|
||||
}
|
||||
}
|
||||
},
|
||||
table: {
|
||||
'& .MuiTableCell-head': {
|
||||
backgroundColor: 'rgba(255, 255, 255, 0.05)',
|
||||
color: '#fff',
|
||||
fontWeight: 'bold',
|
||||
borderBottom: '1px solid rgba(255, 255, 255, 0.1)'
|
||||
},
|
||||
'& .MuiTableCell-body': {
|
||||
color: '#fff',
|
||||
borderBottom: '1px solid rgba(255, 255, 255, 0.1)'
|
||||
}
|
||||
},
|
||||
status: {
|
||||
padding: '4px 8px',
|
||||
borderRadius: 4,
|
||||
backgroundColor: 'rgba(33, 150, 243, 0.1)',
|
||||
color: '#2196f3'
|
||||
},
|
||||
actionButton: {
|
||||
color: '#2196f3',
|
||||
'&:hover': {
|
||||
backgroundColor: 'rgba(33, 150, 243, 0.1)'
|
||||
}
|
||||
}
|
||||
}));
|
||||
|
||||
const TaskList = () => {
|
||||
const classes = useStyles();
|
||||
const [startDate, setStartDate] = useState(null);
|
||||
const dispatch = useDispatch();
|
||||
const [endDate, setEndDate] = useState(null);
|
||||
const [activeType, setActiveType] = useState('daily');
|
||||
const [visible, setVisible] = useState(false)
|
||||
const handleTypeChange = (type) => {
|
||||
setActiveType(type);
|
||||
};
|
||||
|
||||
const columns = [
|
||||
{ id: 'sequence', label: '序号', width: 70 },
|
||||
{ id: 'city', label: '市' },
|
||||
{ id: 'district', label: '区县' },
|
||||
{ id: 'location', label: '街道乡镇' },
|
||||
{ id: 'taskType', label: '任务标题' },
|
||||
{ id: 'taskContent', label: '任务内容' },
|
||||
{ id: 'status', label: '任务状态' },
|
||||
{ id: 'person', label: '巡查人' },
|
||||
{ id: 'startTime', label: '开始时间' },
|
||||
{ id: 'endTime', label: '结束时间' },
|
||||
{ id: 'problems', label: '问题数量', width: 100 },
|
||||
{ id: 'processed', label: '待处理', width: 100 },
|
||||
{ id: 'actions', label: '操作', width: 150 }
|
||||
];
|
||||
|
||||
const mockData = [
|
||||
{
|
||||
sequence: 1,
|
||||
city: '黄冈市',
|
||||
district: '麻城市',
|
||||
location: '',
|
||||
taskType: '06-02明山水库日常巡查',
|
||||
taskContent: '20250602每日巡检',
|
||||
status: '未完成',
|
||||
person: '姜兴军',
|
||||
startTime: '2025-06-02 00:00:00',
|
||||
endTime: '2025-06-08 23:59:59',
|
||||
problems: 0,
|
||||
processed: 0,
|
||||
createTime: '2025-06-02 02:00:00',
|
||||
creator: ''
|
||||
},
|
||||
{
|
||||
sequence: 2,
|
||||
city: '黄冈市',
|
||||
district: '麻城市',
|
||||
location: '',
|
||||
taskType: '06-02浮桥河水库汛前巡查',
|
||||
taskContent: '20250602每日巡检',
|
||||
status: '未完成',
|
||||
person: '熊杰',
|
||||
startTime: '2025-06-02 00:00:00',
|
||||
endTime: '2025-06-08 23:59:59',
|
||||
problems: 0,
|
||||
processed: 0,
|
||||
createTime: '2025-06-02 02:00:00',
|
||||
creator: ''
|
||||
},
|
||||
{
|
||||
sequence: 3,
|
||||
city: '黄冈市',
|
||||
district: '麻城市',
|
||||
location: '',
|
||||
taskType: '06-02永丰水库特别检查',
|
||||
taskContent: '20250602每日巡检',
|
||||
status: '未完成',
|
||||
person: '白斌',
|
||||
startTime: '2025-06-02 00:00:00',
|
||||
endTime: '2025-06-08 23:59:59',
|
||||
problems: 0,
|
||||
processed: 0,
|
||||
createTime: '2025-06-02 02:00:00',
|
||||
creator: ''
|
||||
},
|
||||
{
|
||||
sequence: 4,
|
||||
city: '黄冈市',
|
||||
district: '麻城市',
|
||||
location: '',
|
||||
taskType: '06-02永红水库日常巡查',
|
||||
taskContent: '20250602每日巡检',
|
||||
status: '未完成',
|
||||
person: '于静',
|
||||
startTime: '2025-06-02 00:00:00',
|
||||
endTime: '2025-06-08 23:59:59',
|
||||
problems: 0,
|
||||
processed: 0,
|
||||
createTime: '2025-06-02 02:00:00',
|
||||
creator: ''
|
||||
},{
|
||||
sequence: 5,
|
||||
city: '黄冈市',
|
||||
district: '麻城市',
|
||||
location: '',
|
||||
taskType: '06-02四新水库日常巡查',
|
||||
taskContent: '20250602每日巡检',
|
||||
status: '未完成',
|
||||
person: '何义红',
|
||||
startTime: '2025-06-02 00:00:00',
|
||||
endTime: '2025-06-08 23:59:59',
|
||||
problems: 0,
|
||||
processed: 0,
|
||||
createTime: '2025-06-02 02:00:00',
|
||||
creator: ''
|
||||
},
|
||||
];
|
||||
const flyTo = () => {
|
||||
// dispatch?.runtime.setInfoDlg({ layerId: 'ChaoshiDetailLayer', properties: {} })
|
||||
setVisible(true)
|
||||
}
|
||||
const [params, setParams] = useState({ tm: [] })
|
||||
|
||||
const searchTm = (e) => {
|
||||
setParams({
|
||||
...params,
|
||||
stm: e[0].format("YYYY-MM-DD HH:mm"),
|
||||
etm: e[1].format("YYYY-MM-DD HH:mm"),
|
||||
tm: e,
|
||||
})
|
||||
};
|
||||
useEffect(() => {
|
||||
let options = "";
|
||||
options = {
|
||||
etm: moment().add(1, 'hour').set({ minute: 0, second: 0 }).format("YYYY-MM-DD HH:mm"),
|
||||
stm: moment().subtract(7, 'days').add(1, 'hour').set({ minute: 0, second: 0 }).format("YYYY-MM-DD HH:mm"),
|
||||
tm: [
|
||||
moment().subtract(7, 'days').add(1, 'hour').set({ minute: 0, second: 0 }),
|
||||
moment().add(1, 'hour').set({ minute: 0, second: 0 }),
|
||||
],
|
||||
}
|
||||
|
||||
setParams(options)
|
||||
|
||||
}, [])
|
||||
|
||||
return (
|
||||
<Paper className={classes.root}>
|
||||
<Box className={classes.toolbar}>
|
||||
<Box className={classes.searchRow}>
|
||||
<ButtonGroup className={classes.buttonGroup}>
|
||||
<Button
|
||||
className={activeType === 'daily' ? 'active' : ''}
|
||||
onClick={() => handleTypeChange('daily')}
|
||||
>
|
||||
日常巡查(3)
|
||||
</Button>
|
||||
<Button
|
||||
className={activeType === 'flood' ? 'active' : ''}
|
||||
onClick={() => handleTypeChange('flood')}
|
||||
>
|
||||
汛期巡查(1)
|
||||
</Button>
|
||||
<Button
|
||||
className={activeType === 'special' ? 'active' : ''}
|
||||
onClick={() => handleTypeChange('special')}
|
||||
>
|
||||
特别巡查(1)
|
||||
</Button>
|
||||
<Button
|
||||
className={activeType === 'all' ? 'active' : ''}
|
||||
onClick={() => handleTypeChange('all')}
|
||||
>
|
||||
全部(5024)
|
||||
</Button>
|
||||
</ButtonGroup>
|
||||
</Box>
|
||||
<Box className={classes.searchRow}>
|
||||
<TextField
|
||||
className={classes.searchField}
|
||||
variant="outlined"
|
||||
size="small"
|
||||
placeholder="请输入水库名称"
|
||||
/>
|
||||
<TextField
|
||||
className={classes.searchField}
|
||||
variant="outlined"
|
||||
size="small"
|
||||
placeholder="请输入任务标题"
|
||||
/>
|
||||
<div style={{ display: 'flex', alignItems: 'center',width:'40%' }}>
|
||||
<div style={{ color: "#fff" }}>时段选择:</div>
|
||||
<div className='tm' style={{ position: "relative", zIndex: 999999, color: "#fff", width: "70%", margin: '10px' }}>
|
||||
<RangePicker
|
||||
// width="100%"
|
||||
className='time-picker'
|
||||
style={{
|
||||
flex: 1,
|
||||
background: "transparent",
|
||||
border: "none",
|
||||
color: "#fff",
|
||||
}}
|
||||
onChange={searchTm}
|
||||
allowClear
|
||||
format="YYYY-MM-DD HH:mm"
|
||||
showTime={{
|
||||
format: 'HH:mm',
|
||||
}}
|
||||
value={params.tm}
|
||||
getPopupContainer={trigger => trigger.parentElement}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<Button
|
||||
variant="contained"
|
||||
color="primary"
|
||||
startIcon={<SearchIcon />}
|
||||
>
|
||||
查询
|
||||
</Button>
|
||||
<Button
|
||||
variant="outlined"
|
||||
style={{ color: '#fff', borderColor: 'rgba(255, 255, 255, 0.3)' }}
|
||||
startIcon={<RefreshIcon />}
|
||||
>
|
||||
重置
|
||||
</Button>
|
||||
</Box>
|
||||
</Box>
|
||||
<TableContainer>
|
||||
<Table className={classes.table} size="small">
|
||||
<TableHead>
|
||||
<TableRow>
|
||||
{columns.map((column) => (
|
||||
<TableCell
|
||||
key={column.id}
|
||||
style={{ width: column.width }}
|
||||
>
|
||||
{column.label}
|
||||
</TableCell>
|
||||
))}
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
<TableBody>
|
||||
{mockData.map((row, index) => (
|
||||
<TableRow key={index}>
|
||||
<TableCell>{row.sequence}</TableCell>
|
||||
<TableCell>{row.city}</TableCell>
|
||||
<TableCell>{row.district}</TableCell>
|
||||
<TableCell>{row.location}</TableCell>
|
||||
<TableCell>{row.taskType}</TableCell>
|
||||
<TableCell>{row.taskContent}</TableCell>
|
||||
<TableCell>
|
||||
<span className={classes.status}>{row.status}</span>
|
||||
</TableCell>
|
||||
<TableCell>{row.person}</TableCell>
|
||||
<TableCell>{row.startTime}</TableCell>
|
||||
<TableCell>{row.endTime}</TableCell>
|
||||
<TableCell>{row.problems}</TableCell>
|
||||
<TableCell>{row.processed}</TableCell>
|
||||
<TableCell>
|
||||
<IconButton className={classes.actionButton} size="small" onClick={flyTo}>
|
||||
查看
|
||||
</IconButton>
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
))}
|
||||
</TableBody>
|
||||
</Table>
|
||||
</TableContainer>
|
||||
<ModalView
|
||||
open={visible}
|
||||
onClose={() => setVisible(false)}
|
||||
></ModalView>
|
||||
</Paper>
|
||||
);
|
||||
};
|
||||
|
||||
export default TaskList;
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
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';
|
||||
import ContentDetail from './detail'
|
||||
function HDStDlg({ record, onClose }) {
|
||||
const [value, setValue] = React.useState(0);
|
||||
|
||||
return (
|
||||
<Dialog
|
||||
open={true}
|
||||
onClose={onClose}
|
||||
maxWidth="xl"
|
||||
style={{ borderRadius: 0 }}
|
||||
PaperComponent={DpPaperComponent}
|
||||
BackdropComponent={DpBackgroundDrop}
|
||||
>
|
||||
<div className="boxhead"></div>
|
||||
<DialogContent style={{ padding: 0, width: '110rem', overflowX: 'hidden',height:'80rem' }}>
|
||||
<DpAppBar position="sticky">
|
||||
<DpTabs value={value} indicatorColor="primary" onChange={(_, v) => setValue(v)}>
|
||||
<DpTab label="超时详情" />
|
||||
</DpTabs>
|
||||
<DpCloseButton onClick={onClose} />
|
||||
</DpAppBar>
|
||||
|
||||
<ContentDetail />
|
||||
</DialogContent>
|
||||
<div className="boxfoot"></div>
|
||||
</Dialog>
|
||||
)
|
||||
}
|
||||
|
||||
export default React.memo(HDStDlg);
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
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: '60rem', overflowX: 'hidden',height:'80rem' }}>
|
||||
<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/xcxq.png`} style={{width:'100%'}}></img>
|
||||
</div>
|
||||
</DialogContent>
|
||||
<div className="boxfoot"></div>
|
||||
</Dialog>
|
||||
)
|
||||
}
|
||||
|
||||
export default React.memo(HDStDlg);
|
||||
|
|
@ -8,15 +8,9 @@ import DpAppBar from '../../../../layouts/mui/DpAppBar';
|
|||
import DpBackgroundDrop from '../../../../layouts/mui/DpBackdrop';
|
||||
import DpCloseButton from '../../../../layouts/mui/DpCloseButton';
|
||||
import Zdya from './zdscya'
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
|
||||
function HDStDlg({ record, onClose }) {
|
||||
const dispatch = useDispatch();
|
||||
const [value, setValue] = React.useState(0);
|
||||
const loadFa = () => {
|
||||
onClose()
|
||||
dispatch.runtime.setYyfa({ yy: 111 })
|
||||
}
|
||||
|
||||
return (
|
||||
<Dialog
|
||||
open={true}
|
||||
|
|
@ -35,7 +29,7 @@ function HDStDlg({ record, onClose }) {
|
|||
<DpCloseButton onClick={onClose} />
|
||||
</DpAppBar>
|
||||
|
||||
<Zdya loadFa={loadFa} />
|
||||
<Zdya />
|
||||
</DialogContent>
|
||||
<div className="boxfoot"></div>
|
||||
</Dialog>
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ const useStyles = makeStyles((theme) => ({
|
|||
},
|
||||
}));
|
||||
|
||||
const SchemeOptimization = ({loadFa}) => {
|
||||
const SchemeOptimization = () => {
|
||||
const classes = useStyles();
|
||||
const [reservoirs, setReservoirs] = useState([
|
||||
{ name: '浮标河水库', safeLevel: 64.80, storage: 16110, maxOutflow: 20.00 },
|
||||
|
|
@ -100,7 +100,7 @@ const SchemeOptimization = ({loadFa}) => {
|
|||
const [data, setData] = useState(checkData)
|
||||
const changeSw = (e, id) => {
|
||||
const checked = e.target.checked
|
||||
const data1 = data.map(item => {
|
||||
const data1 = checkData.map(item => {
|
||||
if (item.id == id) {
|
||||
item.checked = checked;
|
||||
}
|
||||
|
|
@ -196,7 +196,7 @@ const SchemeOptimization = ({loadFa}) => {
|
|||
<TableCell>{scheme.households}</TableCell>
|
||||
<TableCell>{scheme.population}</TableCell>
|
||||
<TableCell>
|
||||
<button className={classes.addButton} style={{ marginRight: 8 }} onClick={loadFa}>加载方案</button>
|
||||
<button className={classes.addButton} style={{ marginRight: 8 }}>加载方案</button>
|
||||
<button className={classes.addButton}>导出方案库</button>
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
|
|
|
|||
|
|
@ -37,9 +37,6 @@ import YascDlg from './YascDlg';
|
|||
import YbcgDlg from './YbcgDlg'
|
||||
import DdcgDlg from './DdcgDlg'
|
||||
import FadbDlg from './FadbDlg'
|
||||
import ShuikuyhDlg from './ShuikuyhDlg';
|
||||
import XunchaDlg from './XunchaDlg';
|
||||
import XcxqDlg from './XcxqDlg';
|
||||
|
||||
|
||||
function InfoDlg() {
|
||||
|
|
@ -125,16 +122,8 @@ function InfoDlg() {
|
|||
return <DdcgDlg record={properties} onClose={handleClose} />
|
||||
} else if (layerId === 'FadbLayer') {
|
||||
return <FadbDlg record={properties} onClose={handleClose} />
|
||||
} else if (layerId === 'ShuikuyanghuLayer') {
|
||||
return <ShuikuyhDlg record={properties} onClose={handleClose} />
|
||||
}else if (layerId === 'XunchachaoshiLayer') {
|
||||
return <XunchaDlg record={properties} onClose={handleClose} />
|
||||
}else if (layerId === 'ChaoshiDetailLayer') {
|
||||
return <PdfDlg record={properties} onClose={handleClose} />
|
||||
}else if (layerId === 'XcxqLayer') {
|
||||
return <XcxqDlg record={properties} onClose={handleClose} />
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -83,7 +83,6 @@ export const iconstyles = {
|
|||
土壤墒情: { backgroundPosition: '37.5% -40%',backgroundSize: '1895% 1650%' },
|
||||
水厂监测: { backgroundPosition: '0.5% -34%',backgroundSize: '1895% 1650%' },
|
||||
水源地: { backgroundPosition: '53.3% -106.7%',backgroundSize: '1597% 1550%' },
|
||||
巡查: { backgroundPosition: '26.8% -99.4%',backgroundSize: '1597% 1550%' },
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -126,10 +126,6 @@ export default function MapCtrl({ initParams, onLoad }) {
|
|||
}
|
||||
layer.featureClicked(props, dispatch);
|
||||
}
|
||||
if(feature.layer.id==='sk1111'||feature.layer.id==='sk2222'){
|
||||
const record = feature.properties
|
||||
dispatch.runtime.setFeaturePop({ type: 'RealSkPop', properties: record, coordinates: [record.lgtd, record.lttd] });
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -126,7 +126,6 @@ export default class DcpjLayer extends BaseLayer {
|
|||
// return false
|
||||
// }
|
||||
// })
|
||||
// debugger
|
||||
ms.setData(parseGeoJSON(data));
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,7 +35,6 @@ import ShuichangLayer from "./shuichangLayer"
|
|||
import ShuiyuandiLayer from "./shuiyuandiLayer"
|
||||
import ShuikuLayer from "./shuikuLayer"
|
||||
import RainDrpLayer from "./rainDrpLayer"
|
||||
import XunchaLayer from "./xunchalayer"
|
||||
|
||||
|
||||
|
||||
|
|
@ -67,7 +66,6 @@ class LayerMgr {
|
|||
this.layers.push(new ShuiyuandiLayer());
|
||||
this.layers.push(new ShuikuLayer());
|
||||
this.layers.push(new RainDrpLayer());
|
||||
this.layers.push(new XunchaLayer());
|
||||
//
|
||||
|
||||
|
||||
|
|
@ -214,7 +212,6 @@ class LayerMgr {
|
|||
this.layerMap.ShuiyuandiLayer.getStyle(),
|
||||
this.layerMap.ShuikuLayer.getStyle(),
|
||||
this.layerMap.RainDrpLayer.getStyle(),
|
||||
this.layerMap.XunchaLayer.getStyle(),
|
||||
//
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ import ShuichangLayer from "./shuichangLayer";
|
|||
import ShuiyuandiLayer from "./shuiyuandiLayer";
|
||||
import ShuikuLayer from "./shuikuLayer";
|
||||
import RainDrpLayer from "./rainDrpLayer"
|
||||
import XunchaLayer from "./xunchalayer"
|
||||
|
||||
|
||||
const hash = window.location.origin;
|
||||
|
|
@ -225,10 +224,6 @@ const sources = {
|
|||
[ShuikuLayer.SourceName]: {
|
||||
type: 'geojson',
|
||||
data: { type: 'FeatureCollection', features: [] },
|
||||
},
|
||||
[XunchaLayer.SourceName]: {
|
||||
type: 'geojson',
|
||||
data: { type: 'FeatureCollection', features: [] },
|
||||
},
|
||||
[RainDrpLayer.SourceName]: {
|
||||
type: 'geojson',
|
||||
|
|
|
|||
|
|
@ -1,878 +0,0 @@
|
|||
import clone from "clone";
|
||||
import { PicStPromise, TestPicStPromise } from "../../../../models/_/real";
|
||||
import { parseGeoJSON } from "../../../../utils/tools";
|
||||
import { InfoPopNames } from "../../InfoPops";
|
||||
import BaseLayer from "./baselayer";
|
||||
|
||||
const SourceName = '巡查';
|
||||
|
||||
const ShapeStyle = {
|
||||
id: SourceName,
|
||||
type: 'symbol',
|
||||
source: SourceName,
|
||||
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],
|
||||
|
||||
'visibility': 'none',
|
||||
},
|
||||
paint: {
|
||||
'text-color': '#fff'
|
||||
}
|
||||
};
|
||||
|
||||
const page1 = [
|
||||
{
|
||||
"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"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"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": 0,
|
||||
"h3": 0,
|
||||
"h6": 0,
|
||||
"h12": 0,
|
||||
"h24": 0,
|
||||
"h48": 16.5,
|
||||
"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": 0,
|
||||
"h3": 0,
|
||||
"h6": 0,
|
||||
"h12": 0,
|
||||
"h24": 0,
|
||||
"h48": 12.5,
|
||||
"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": "716112601",
|
||||
"type": "sk",
|
||||
"hasRz": true,
|
||||
"stnm": "永丰水库",
|
||||
"adcd": "421181003000",
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 115.057222,
|
||||
"lttd": 31.110833,
|
||||
"elev": 0,
|
||||
"damel": 79.57,
|
||||
"dsflz": 77.82,
|
||||
"fsltdz": 76.96,
|
||||
"ddz": 64.96,
|
||||
"zcxsw": 76.96,
|
||||
"drpTm": "2025-04-11T06:00:00.000Z",
|
||||
"today": 0,
|
||||
"h1": 0,
|
||||
"h3": 0,
|
||||
"h6": 0,
|
||||
"h12": 0,
|
||||
"h24": 0,
|
||||
"h48": 0,
|
||||
"drpState": 2,
|
||||
"rz": 71.88,
|
||||
"w": 1.178,
|
||||
"a_fsltdz": -5.079999999999998,
|
||||
"rzTm": "2025-04-11T06:00:00.000Z",
|
||||
"rzWarning": 0,
|
||||
"rzState": 2,
|
||||
"pic": [
|
||||
{
|
||||
"stcd": "716112601",
|
||||
"tm": "2025-04-11T06:02:20.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2025/0411/716112601/20250411140220.jpg"
|
||||
},
|
||||
{
|
||||
"stcd": "716112601",
|
||||
"tm": "2025-04-11T06:04:01.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2025/0411/716112602/20250411140401.jpg"
|
||||
}
|
||||
],
|
||||
"aRz": -5.08
|
||||
},
|
||||
{
|
||||
"stcd": "716115401",
|
||||
"type": "sk",
|
||||
"hasRz": true,
|
||||
"stnm": "长冲水库",
|
||||
"adcd": "421181110000",
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 115.061389,
|
||||
"lttd": 31.408611,
|
||||
"elev": 0,
|
||||
"damel": 21.6,
|
||||
"dsflz": 20.15,
|
||||
"fsltdz": 130.8,
|
||||
"ddz": 0,
|
||||
"zcxsw": 130.8,
|
||||
"drpTm": "2024-05-17T08:00:00.000Z",
|
||||
"today": 0,
|
||||
"h1": 0,
|
||||
"h3": 0,
|
||||
"h6": 0,
|
||||
"h12": 0,
|
||||
"h24": 0,
|
||||
"h48": 0,
|
||||
"drpState": 2,
|
||||
"rz": 126.41,
|
||||
"w": 0.374,
|
||||
"a_fsltdz": -4.390000000000015,
|
||||
"rzTm": "2024-05-17T06:00:00.000Z",
|
||||
"rzWarning": 0,
|
||||
"rzState": 2,
|
||||
"pic": [
|
||||
{
|
||||
"stcd": "716115401",
|
||||
"tm": "2024-05-17T08:05:00.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2024/0517/716115401/20240517160500.jpg"
|
||||
},
|
||||
{
|
||||
"stcd": "716115401",
|
||||
"tm": "2024-05-17T08:20:00.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2024/0517/716115402/20240517162000.jpg"
|
||||
}
|
||||
],
|
||||
"aRz": -4.39
|
||||
},
|
||||
{
|
||||
"stcd": "716115301",
|
||||
"type": "sk",
|
||||
"hasRz": true,
|
||||
"stnm": "葡萄冲水库",
|
||||
"adcd": "421181110000",
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 115.051389,
|
||||
"lttd": 31.423333,
|
||||
"elev": 0,
|
||||
"damel": 15.8,
|
||||
"dsflz": 14.73,
|
||||
"fsltdz": 14.3,
|
||||
"ddz": 9.48,
|
||||
"zcxsw": 14.3,
|
||||
"drpTm": "2025-04-11T05:00:00.000Z",
|
||||
"today": 0,
|
||||
"h1": 0,
|
||||
"h3": 0,
|
||||
"h6": 0,
|
||||
"h12": 0,
|
||||
"h24": 0,
|
||||
"h48": 0,
|
||||
"drpState": 2,
|
||||
"rz": 213.75,
|
||||
"w": 0.04,
|
||||
"a_fsltdz": 199.45,
|
||||
"rzTm": "2025-04-11T05:00:00.000Z",
|
||||
"rzWarning": 1,
|
||||
"rzState": 2,
|
||||
"pic": [
|
||||
{
|
||||
"stcd": "716115301",
|
||||
"tm": "2023-03-12T08:02:00.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716115301/20230312160200.jpg"
|
||||
},
|
||||
{
|
||||
"stcd": "716115301",
|
||||
"tm": "2023-03-12T07:11:00.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716115302/20230312151100.jpg"
|
||||
}
|
||||
],
|
||||
"aRz": 199.45
|
||||
},
|
||||
{
|
||||
"stcd": "716115701",
|
||||
"type": "sk",
|
||||
"hasRz": true,
|
||||
"stnm": "二五冲水库",
|
||||
"adcd": "421181110000",
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 115.087222,
|
||||
"lttd": 31.378333,
|
||||
"elev": 0,
|
||||
"damel": 11.2,
|
||||
"dsflz": 10.07,
|
||||
"fsltdz": 108.55,
|
||||
"ddz": 1.5,
|
||||
"zcxsw": 108.55,
|
||||
"drpTm": "2025-03-22T08:00:00.000Z",
|
||||
"today": 0,
|
||||
"h1": 0,
|
||||
"h3": 0,
|
||||
"h6": 0,
|
||||
"h12": 0,
|
||||
"h24": 0,
|
||||
"h48": 0,
|
||||
"drpState": 2,
|
||||
"rz": 99.65,
|
||||
"w": 0.038,
|
||||
"a_fsltdz": -8.899999999999991,
|
||||
"rzTm": "2025-03-22T08:00:00.000Z",
|
||||
"rzWarning": 0,
|
||||
"rzState": 2,
|
||||
"pic": [
|
||||
{
|
||||
"stcd": "716115701",
|
||||
"tm": "2025-03-06T23:01:00.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2025/0307/716115701/20250307070100.jpg"
|
||||
},
|
||||
{
|
||||
"stcd": "716115701",
|
||||
"tm": "2024-10-18T06:28:00.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2024/1018/716115702/20241018142800.jpg"
|
||||
}
|
||||
],
|
||||
"aRz": -8.9
|
||||
},
|
||||
{
|
||||
"stcd": "716115501",
|
||||
"type": "sk",
|
||||
"hasRz": true,
|
||||
"stnm": "石鼓庙水库",
|
||||
"adcd": "421181110000",
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 114.049444,
|
||||
"lttd": 31.392222,
|
||||
"elev": 0,
|
||||
"damel": 106.15,
|
||||
"dsflz": 104.92,
|
||||
"fsltdz": 102.45,
|
||||
"ddz": 6.7,
|
||||
"zcxsw": 102.45,
|
||||
"drpTm": "2024-11-17T04:00:00.000Z",
|
||||
"today": 0,
|
||||
"h1": 0,
|
||||
"h3": 0,
|
||||
"h6": 0,
|
||||
"h12": 0,
|
||||
"h24": 0,
|
||||
"h48": 0,
|
||||
"drpState": 2,
|
||||
"rz": 95.86,
|
||||
"w": 0.073,
|
||||
"a_fsltdz": -6.590000000000003,
|
||||
"rzTm": "2024-08-21T01:00:00.000Z",
|
||||
"rzWarning": 0,
|
||||
"rzState": 2,
|
||||
"pic": [
|
||||
{
|
||||
"stcd": "716115501",
|
||||
"tm": "2023-03-12T07:04:32.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716115501/20230312150432.jpg"
|
||||
},
|
||||
{
|
||||
"stcd": "716115501",
|
||||
"tm": "2023-03-12T07:08:39.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716115502/20230312150839.jpg"
|
||||
}
|
||||
],
|
||||
"aRz": -6.59
|
||||
},
|
||||
{
|
||||
"stcd": "716115601",
|
||||
"type": "sk",
|
||||
"hasRz": true,
|
||||
"stnm": "滚冲水库",
|
||||
"adcd": "421181110000",
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 115.027778,
|
||||
"lttd": 31.386944,
|
||||
"elev": 0,
|
||||
"damel": 129.72,
|
||||
"dsflz": 129.17,
|
||||
"fsltdz": 128.3,
|
||||
"ddz": 123,
|
||||
"zcxsw": 128.3,
|
||||
"drpTm": "2025-04-11T04:00:00.000Z",
|
||||
"today": 0,
|
||||
"h1": 0,
|
||||
"h3": 0,
|
||||
"h6": 0,
|
||||
"h12": 0,
|
||||
"h24": 0,
|
||||
"h48": 0,
|
||||
"drpState": 2,
|
||||
"rz": 123.03,
|
||||
"w": 0.02,
|
||||
"a_fsltdz": -5.27000000000001,
|
||||
"rzTm": "2025-04-11T04:00:00.000Z",
|
||||
"rzWarning": 0,
|
||||
"rzState": 2,
|
||||
"pic": [
|
||||
{
|
||||
"stcd": "716115601",
|
||||
"tm": "2023-03-12T07:03:00.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716115601/20230312150300.jpg"
|
||||
},
|
||||
{
|
||||
"stcd": "716115601",
|
||||
"tm": "2023-03-12T07:11:00.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716115602/20230312151100.jpg"
|
||||
}
|
||||
],
|
||||
"aRz": -5.27
|
||||
},
|
||||
{
|
||||
"stcd": "716108601",
|
||||
"type": "sk",
|
||||
"hasRz": true,
|
||||
"stnm": "吴家垸水库",
|
||||
"adcd": "421181110000",
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 115.029167,
|
||||
"lttd": 31.427222,
|
||||
"elev": 0,
|
||||
"damel": 15.7,
|
||||
"dsflz": 13.85,
|
||||
"fsltdz": 173.9,
|
||||
"ddz": 4.6,
|
||||
"zcxsw": 173.9,
|
||||
"drpTm": "2025-04-11T05:00:00.000Z",
|
||||
"today": 0,
|
||||
"h1": 0,
|
||||
"h3": 0,
|
||||
"h6": 0,
|
||||
"h12": 0,
|
||||
"h24": 0,
|
||||
"h48": 0,
|
||||
"drpState": 2,
|
||||
"rz": 169.14,
|
||||
"w": 0.11,
|
||||
"a_fsltdz": -4.760000000000019,
|
||||
"rzTm": "2025-04-11T05:00:00.000Z",
|
||||
"rzWarning": 0,
|
||||
"rzState": 2,
|
||||
"pic": [
|
||||
{
|
||||
"stcd": "716108601",
|
||||
"tm": "2023-03-12T08:01:41.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716108601/20230312160141.jpg"
|
||||
},
|
||||
{
|
||||
"stcd": "716108601",
|
||||
"tm": "2023-03-12T07:04:17.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716108602/20230312150417.jpg"
|
||||
}
|
||||
],
|
||||
"aRz": -4.76
|
||||
},
|
||||
{
|
||||
"stcd": "716113401",
|
||||
"type": "sk",
|
||||
"hasRz": true,
|
||||
"stnm": "鲇鱼坝水库",
|
||||
"adcd": "421181102000",
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 114.731667,
|
||||
"lttd": 31.019444,
|
||||
"elev": 0,
|
||||
"damel": 55.73,
|
||||
"dsflz": 52.9,
|
||||
"fsltdz": 50.63,
|
||||
"ddz": 42.83,
|
||||
"zcxsw": 50.63,
|
||||
"drpTm": "2025-04-11T05:00:00.000Z",
|
||||
"today": 0,
|
||||
"h1": 0,
|
||||
"h3": 0,
|
||||
"h6": 0,
|
||||
"h12": 0,
|
||||
"h24": 0,
|
||||
"h48": 0,
|
||||
"drpState": 2,
|
||||
"rz": 48.05,
|
||||
"w": 2.584,
|
||||
"a_fsltdz": -2.5800000000000054,
|
||||
"rzTm": "2025-04-11T05:00:00.000Z",
|
||||
"rzWarning": 0,
|
||||
"rzState": 2,
|
||||
"pic": [
|
||||
{
|
||||
"stcd": "716113401",
|
||||
"tm": "2023-03-12T07:07:01.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716113401/20230312150701.jpg"
|
||||
},
|
||||
{
|
||||
"stcd": "716113401",
|
||||
"tm": "2023-03-12T07:15:09.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716113402/20230312151509.jpg"
|
||||
}
|
||||
],
|
||||
"aRz": -2.58
|
||||
},
|
||||
{
|
||||
"stcd": "716126501",
|
||||
"type": "sk",
|
||||
"hasRz": true,
|
||||
"stnm": "破堰水库",
|
||||
"adcd": "421181102000",
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 114.696111,
|
||||
"lttd": 31.025556,
|
||||
"elev": 0,
|
||||
"damel": 18.48,
|
||||
"dsflz": 15.23,
|
||||
"fsltdz": 74.2,
|
||||
"ddz": 6.3,
|
||||
"zcxsw": 74.2,
|
||||
"drpTm": "2025-04-11T05:00:00.000Z",
|
||||
"today": 0,
|
||||
"h1": 0,
|
||||
"h3": 0,
|
||||
"h6": 0,
|
||||
"h12": 0,
|
||||
"h24": 0,
|
||||
"h48": 0,
|
||||
"drpState": 2,
|
||||
"rz": 64.47,
|
||||
"w": 0.265,
|
||||
"a_fsltdz": -9.730000000000004,
|
||||
"rzTm": "2025-04-11T05:00:00.000Z",
|
||||
"rzWarning": 0,
|
||||
"rzState": 2,
|
||||
"pic": [
|
||||
{
|
||||
"stcd": "716126501",
|
||||
"tm": "2023-03-12T07:04:21.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716126501/20230312150421.jpg"
|
||||
},
|
||||
{
|
||||
"stcd": "716126501",
|
||||
"tm": "2023-03-12T07:10:00.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716126502/20230312151000.jpg"
|
||||
}
|
||||
],
|
||||
"aRz": -9.73
|
||||
},
|
||||
{
|
||||
"stcd": "716107371",
|
||||
"type": "sk",
|
||||
"hasRz": true,
|
||||
"stnm": "群英水库",
|
||||
"adcd": "421181102000",
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 114.726944,
|
||||
"lttd": 31.054444,
|
||||
"elev": 0,
|
||||
"damel": 7.4,
|
||||
"dsflz": 6.02,
|
||||
"fsltdz": 65.6,
|
||||
"ddz": 4.1,
|
||||
"zcxsw": 65.6,
|
||||
"drpTm": "2025-04-11T05:00:00.000Z",
|
||||
"today": 0,
|
||||
"h1": 0,
|
||||
"h3": 0,
|
||||
"h6": 0,
|
||||
"h12": 0,
|
||||
"h24": 0,
|
||||
"h48": 0,
|
||||
"drpState": 2,
|
||||
"rz": 68.66,
|
||||
"w": 0,
|
||||
"a_fsltdz": 3.0600000000000023,
|
||||
"rzTm": "2025-04-11T05:00:00.000Z",
|
||||
"rzWarning": 1,
|
||||
"rzState": 2,
|
||||
"pic": [
|
||||
{
|
||||
"stcd": "716107371",
|
||||
"tm": "2023-03-12T07:23:00.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716107371/20230312152300.jpg"
|
||||
},
|
||||
{
|
||||
"stcd": "716107371",
|
||||
"tm": "2023-03-12T07:16:00.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716107372/20230312151600.jpg"
|
||||
}
|
||||
],
|
||||
"aRz": 3.06
|
||||
},
|
||||
{
|
||||
"stcd": "716126301",
|
||||
"type": "sk",
|
||||
"hasRz": true,
|
||||
"stnm": "淮海水库",
|
||||
"adcd": "421181102000",
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 114.694722,
|
||||
"lttd": 31.053333,
|
||||
"elev": 0,
|
||||
"damel": 11.2,
|
||||
"dsflz": 9.97,
|
||||
"fsltdz": 9.6,
|
||||
"ddz": 6.3,
|
||||
"zcxsw": 9.6,
|
||||
"drpTm": "2025-04-11T05:00:00.000Z",
|
||||
"today": 0,
|
||||
"h1": 0,
|
||||
"h3": 0,
|
||||
"h6": 0,
|
||||
"h12": 0,
|
||||
"h24": 0,
|
||||
"h48": 0,
|
||||
"drpState": 2,
|
||||
"rz": 64.96,
|
||||
"w": 0.129,
|
||||
"a_fsltdz": 55.35999999999999,
|
||||
"rzTm": "2025-04-11T05:00:00.000Z",
|
||||
"rzWarning": 1,
|
||||
"rzState": 2,
|
||||
"pic": [
|
||||
{
|
||||
"stcd": "716126301",
|
||||
"tm": "2023-03-12T07:04:00.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716126301/20230312150400.jpg"
|
||||
},
|
||||
{
|
||||
"stcd": "716126301",
|
||||
"tm": "2023-03-12T07:10:00.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716126302/20230312151000.jpg"
|
||||
}
|
||||
],
|
||||
"aRz": 55.36
|
||||
},
|
||||
{
|
||||
"stcd": "716108501",
|
||||
"type": "sk",
|
||||
"hasRz": true,
|
||||
"stnm": "东风水库",
|
||||
"adcd": "421181102000",
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 115.232222,
|
||||
"lttd": 30.970556,
|
||||
"elev": 0,
|
||||
"damel": 81.7,
|
||||
"dsflz": 80.22,
|
||||
"fsltdz": 79,
|
||||
"ddz": 76.2,
|
||||
"zcxsw": 79,
|
||||
"drpTm": "2025-03-22T08:00:00.000Z",
|
||||
"today": 0,
|
||||
"h1": 0,
|
||||
"h3": 0,
|
||||
"h6": 0,
|
||||
"h12": 0,
|
||||
"h24": 0,
|
||||
"h48": 0,
|
||||
"drpState": 2,
|
||||
"rz": 78.22,
|
||||
"w": 0.203,
|
||||
"a_fsltdz": -0.7800000000000011,
|
||||
"rzTm": "2025-03-22T08:00:00.000Z",
|
||||
"rzWarning": 0,
|
||||
"rzState": 2,
|
||||
"pic": [
|
||||
{
|
||||
"stcd": "716108501",
|
||||
"tm": "2024-09-08T02:44:00.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2024/0908/716108501/20240908104400.jpg"
|
||||
},
|
||||
{
|
||||
"stcd": "716108501",
|
||||
"tm": "2024-08-26T09:20:00.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2024/0826/716108502/20240826172000.jpg"
|
||||
}
|
||||
],
|
||||
"aRz": -0.78
|
||||
},
|
||||
{
|
||||
"stcd": "716126601",
|
||||
"type": "sk",
|
||||
"hasRz": true,
|
||||
"stnm": "毛屋湾水库",
|
||||
"adcd": "421181102000",
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 114.693889,
|
||||
"lttd": 31.019722,
|
||||
"elev": 0,
|
||||
"damel": 10,
|
||||
"dsflz": 9.8,
|
||||
"fsltdz": 66.57,
|
||||
"ddz": 5,
|
||||
"zcxsw": 66.57,
|
||||
"drpTm": "2024-12-30T06:00:00.000Z",
|
||||
"today": 0,
|
||||
"h1": 0,
|
||||
"h3": 0,
|
||||
"h6": 0,
|
||||
"h12": 0,
|
||||
"h24": 0,
|
||||
"h48": 0,
|
||||
"drpState": 2,
|
||||
"rz": 65.41,
|
||||
"w": 0.039,
|
||||
"a_fsltdz": -1.1599999999999966,
|
||||
"rzTm": "2024-05-15T06:00:00.000Z",
|
||||
"rzWarning": 0,
|
||||
"rzState": 2,
|
||||
"pic": [
|
||||
{
|
||||
"stcd": "716126601",
|
||||
"tm": "2024-03-11T02:02:00.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2024/0311/716126601/20240311100200.jpg"
|
||||
},
|
||||
{
|
||||
"stcd": "716126601",
|
||||
"tm": "2024-05-15T06:07:00.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2024/0515/716126602/20240515140700.jpg"
|
||||
}
|
||||
],
|
||||
"aRz": -1.16
|
||||
},
|
||||
{
|
||||
"stcd": "7CS000081",
|
||||
"type": "sk",
|
||||
"hasRz": true,
|
||||
"stnm": "陡山洪水库",
|
||||
"adcd": "421181102000",
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 114.724722,
|
||||
"lttd": 31.007222,
|
||||
"elev": 0,
|
||||
"damel": 56.7,
|
||||
"dsflz": 55.6,
|
||||
"fsltdz": 5.8,
|
||||
"ddz": 49.71,
|
||||
"zcxsw": 5.8,
|
||||
"drpTm": "2025-04-11T05:00:00.000Z",
|
||||
"today": 0,
|
||||
"h1": 0,
|
||||
"h3": 0,
|
||||
"h6": 0,
|
||||
"h12": 0,
|
||||
"h24": 0,
|
||||
"h48": 0,
|
||||
"drpState": 2,
|
||||
"rz": 51.26,
|
||||
"w": 0.034,
|
||||
"a_fsltdz": 45.46,
|
||||
"rzTm": "2025-04-11T05:00:00.000Z",
|
||||
"rzWarning": 1,
|
||||
"rzState": 2,
|
||||
"pic": [
|
||||
{
|
||||
"stcd": "7CS000081",
|
||||
"tm": "2023-03-12T08:01:48.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/7CS000081/20230312160148.jpg"
|
||||
},
|
||||
{
|
||||
"stcd": "7CS000081",
|
||||
"tm": "2023-03-12T07:05:33.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/7CS000082/20230312150533.jpg"
|
||||
}
|
||||
],
|
||||
"aRz": 45.46
|
||||
},
|
||||
{
|
||||
"stcd": "716107391",
|
||||
"type": "sk",
|
||||
"hasRz": true,
|
||||
"stnm": "高岗水库",
|
||||
"adcd": "421181102000",
|
||||
"wscd": null,
|
||||
"importancy": 0,
|
||||
"lgtd": 114.731389,
|
||||
"lttd": 31.042222,
|
||||
"elev": 0,
|
||||
"damel": 41.7,
|
||||
"dsflz": 41.6,
|
||||
"fsltdz": 40,
|
||||
"ddz": 35.56,
|
||||
"zcxsw": 40,
|
||||
"drpTm": "2025-04-11T05:00:00.000Z",
|
||||
"today": 0,
|
||||
"h1": 0,
|
||||
"h3": 0,
|
||||
"h6": 0,
|
||||
"h12": 0,
|
||||
"h24": 0,
|
||||
"h48": 0,
|
||||
"drpState": 2,
|
||||
"rz": 51.42,
|
||||
"w": 0.044,
|
||||
"a_fsltdz": 11.420000000000002,
|
||||
"rzTm": "2025-04-11T05:00:00.000Z",
|
||||
"rzWarning": 1,
|
||||
"rzState": 2,
|
||||
"pic": [
|
||||
{
|
||||
"stcd": "716107391",
|
||||
"tm": "2023-03-12T07:03:00.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716107391/20230312150300.jpg"
|
||||
},
|
||||
{
|
||||
"stcd": "716107391",
|
||||
"tm": "2023-03-12T07:10:00.000Z",
|
||||
"url": "http://223.75.53.106:8891/skjgimages/2023/0312/716107392/20230312151000.jpg"
|
||||
}
|
||||
],
|
||||
"aRz": 11.42
|
||||
},
|
||||
]
|
||||
|
||||
export default class XunchaLayer extends BaseLayer {
|
||||
|
||||
static LayerName = 'XunchaLayer';
|
||||
|
||||
static SourceName = SourceName;
|
||||
|
||||
getStyle() {
|
||||
|
||||
const ret = clone(ShapeStyle);
|
||||
this._setStyleVisibility(ret);
|
||||
return ret;
|
||||
|
||||
}
|
||||
|
||||
getName() {
|
||||
return XunchaLayer.LayerName;
|
||||
}
|
||||
|
||||
getSubLayers() {
|
||||
return [ShapeStyle.id];
|
||||
}
|
||||
|
||||
async doRefreshLayer(mapCtrl) {
|
||||
const ms = mapCtrl.getSource(SourceName);
|
||||
|
||||
let data =
|
||||
// await PicStPromise.get();
|
||||
[...page1].map((item)=>{
|
||||
const obj = {...item}
|
||||
obj.lgtd = item.lgtd + 0.0019
|
||||
obj.lttd = item.lttd
|
||||
return obj
|
||||
})
|
||||
ms.setData(parseGeoJSON(data));
|
||||
return true;
|
||||
}
|
||||
|
||||
getFeatureTip(record) {
|
||||
return '';
|
||||
}
|
||||
|
||||
featureClicked(properties, dispatch) {
|
||||
dispatch?.runtime.setInfoDlg({ layerId: 'XcxqLayer', properties: {} })
|
||||
}
|
||||
}
|
||||
|
|
@ -119,9 +119,6 @@ import Skyb from './panels/Skyb'
|
|||
import ShuikuYa from './panels/Yuanyfa'
|
||||
import Diaodujg from './panels/Diaodujg'
|
||||
import Duibifx from './panels/Duibifx'
|
||||
import Xczl from './panels/Xczl'
|
||||
import Xckb from './panels/Xcwtkb'
|
||||
import Shuikugh from './panels/Shuikugh'
|
||||
export default function PanelIndex({ name, style, ...params }) {
|
||||
if (name === '天气') {
|
||||
return (
|
||||
|
|
@ -350,12 +347,6 @@ export default function PanelIndex({ name, style, ...params }) {
|
|||
return <Ddcg style={style} />
|
||||
} else if (name === '防汛方案对比') {
|
||||
return <Fadb style={style} />
|
||||
}else if (name === '巡查任务总览') {
|
||||
return <Xczl />
|
||||
}else if (name === '巡查问题看板') {
|
||||
return <Xckb />
|
||||
}else if (name === '水库管护') {
|
||||
return <Shuikugh />
|
||||
} else if (name === '水库水量统计') {
|
||||
return <Sksltj style={style} />
|
||||
} else if (name === '洪水防御') {
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ const VIEWS = [
|
|||
{ 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: 206, title: '水库管理', img: '/assets/menu/水库管理.png' },
|
||||
] },
|
||||
{
|
||||
id: 300, title: '水厂', img: '/assets/menu/水利设施.png', children: [
|
||||
|
|
|
|||
|
|
@ -1,183 +0,0 @@
|
|||
import React, { useState, useRef } from 'react';
|
||||
import {
|
||||
IconButton,
|
||||
Slider,
|
||||
Box,
|
||||
} from '@material-ui/core';
|
||||
import { makeStyles } from '@material-ui/core/styles';
|
||||
import clsx from "clsx"
|
||||
import PlayArrowIcon from '@material-ui/icons/PlayArrow';
|
||||
import PauseIcon from '@material-ui/icons/Pause';
|
||||
|
||||
const useStyles = makeStyles((theme) => ({
|
||||
root: {
|
||||
position: 'relative',
|
||||
width: '100%',
|
||||
height: '100%',
|
||||
backgroundColor: '#000',
|
||||
},
|
||||
videoContainer: {
|
||||
width: '100%',
|
||||
height: '100%',
|
||||
'& video': {
|
||||
width: '100%',
|
||||
height: '100%',
|
||||
objectFit: 'cover',
|
||||
},
|
||||
},
|
||||
controls: {
|
||||
position: 'absolute',
|
||||
bottom: 0,
|
||||
left: 0,
|
||||
right: 0,
|
||||
padding: theme.spacing(1, 2),
|
||||
background: 'linear-gradient(to top, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0) 100%)',
|
||||
display: 'flex',
|
||||
alignItems: 'center',
|
||||
gap: theme.spacing(2),
|
||||
},
|
||||
controls1: {
|
||||
position: 'absolute',
|
||||
top: '85%',
|
||||
left: '50%',
|
||||
transform: 'translate(-50%, -50%)',
|
||||
padding: theme.spacing(2),
|
||||
background: 'rgba(0,0,0,0.7)',
|
||||
borderRadius: theme.spacing(1),
|
||||
display: 'flex',
|
||||
alignItems: 'center',
|
||||
gap: theme.spacing(2),
|
||||
width: '800px',
|
||||
maxWidth: '90%',
|
||||
pointerEvents: 'none',
|
||||
|
||||
},
|
||||
playButton: {
|
||||
color: '#fff',
|
||||
pointerEvents: 'auto',
|
||||
'&:hover': {
|
||||
backgroundColor: 'rgba(255,255,255,0.1)',
|
||||
},
|
||||
},
|
||||
slider: {
|
||||
color: '#1976d2',
|
||||
pointerEvents: 'auto',
|
||||
flex: 1,
|
||||
'& .MuiSlider-rail': {
|
||||
backgroundColor: 'rgba(255,255,255,0.3)',
|
||||
},
|
||||
'& .MuiSlider-track': {
|
||||
backgroundColor: '#1976d2',
|
||||
},
|
||||
'& .MuiSlider-thumb': {
|
||||
width: 12,
|
||||
height: 12,
|
||||
backgroundColor: '#fff',
|
||||
'&:hover, &.Mui-focusVisible': {
|
||||
boxShadow: '0 0 0 8px rgba(25,118,210,0.16)',
|
||||
},
|
||||
},
|
||||
},
|
||||
timeDisplay: {
|
||||
color: '#fff',
|
||||
fontSize: '0.875rem',
|
||||
minWidth: 100,
|
||||
textAlign: 'right',
|
||||
pointerEvents: 'auto',
|
||||
},
|
||||
dateDisplay: {
|
||||
position: 'absolute',
|
||||
top: theme.spacing(2),
|
||||
left: theme.spacing(2),
|
||||
color: '#fff',
|
||||
fontSize: '1.25rem',
|
||||
fontWeight: 500,
|
||||
textShadow: '1px 1px 2px rgba(0,0,0,0.5)',
|
||||
},
|
||||
odd: {
|
||||
zIndex: 1,
|
||||
position: 'absolute'
|
||||
}
|
||||
}));
|
||||
|
||||
const VideoPlayer = ({ videoUrl, date,odd=false }) => {
|
||||
const classes = useStyles();
|
||||
const [playing, setPlaying] = useState(false);
|
||||
const [progress, setProgress] = useState(0);
|
||||
const [currentTime, setCurrentTime] = useState(0);
|
||||
const [duration, setDuration] = useState(0);
|
||||
const videoRef = useRef(null);
|
||||
|
||||
const handlePlayPause = () => {
|
||||
if (playing) {
|
||||
videoRef.current.pause();
|
||||
} else {
|
||||
videoRef.current.play();
|
||||
}
|
||||
setPlaying(!playing);
|
||||
};
|
||||
|
||||
const handleTimeUpdate = () => {
|
||||
const video = videoRef.current;
|
||||
if (video) {
|
||||
const progress = (video.currentTime / video.duration) * 100;
|
||||
setProgress(progress);
|
||||
setCurrentTime(video.currentTime);
|
||||
}
|
||||
};
|
||||
|
||||
const handleLoadedMetadata = () => {
|
||||
setDuration(videoRef.current.duration);
|
||||
};
|
||||
|
||||
const handleSliderChange = (event, newValue) => {
|
||||
const time = (newValue / 100) * duration;
|
||||
videoRef.current.currentTime = time;
|
||||
setProgress(newValue);
|
||||
};
|
||||
|
||||
const formatTime = (time) => {
|
||||
const minutes = Math.floor(time / 60);
|
||||
const seconds = Math.floor(time % 60);
|
||||
return `${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;
|
||||
};
|
||||
|
||||
return (
|
||||
<div className={clsx({[classes.root]:true,[classes.odd]:odd})}>
|
||||
<div className={classes.videoContainer}>
|
||||
<video
|
||||
ref={videoRef}
|
||||
onTimeUpdate={handleTimeUpdate}
|
||||
onLoadedMetadata={handleLoadedMetadata}
|
||||
>
|
||||
<source src={videoUrl} type="video/mp4" />
|
||||
</video>
|
||||
</div>
|
||||
|
||||
<div className={classes.dateDisplay}>
|
||||
{date}
|
||||
</div>
|
||||
|
||||
<div className={clsx({[classes.controls]:odd,[classes.controls1]:odd})}>
|
||||
<IconButton
|
||||
className={classes.playButton}
|
||||
onClick={handlePlayPause}
|
||||
>
|
||||
{playing ? <PauseIcon /> : <PlayArrowIcon />}
|
||||
</IconButton>
|
||||
|
||||
<Slider
|
||||
className={classes.slider}
|
||||
value={progress}
|
||||
onChange={handleSliderChange}
|
||||
/>
|
||||
|
||||
<Box className={classes.timeDisplay}>
|
||||
{formatTime(currentTime)} / {formatTime(duration)}
|
||||
</Box>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default VideoPlayer;
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
import React, { useEffect } from 'react';
|
||||
import { useSelector, useDispatch } from 'react-redux';
|
||||
import React,{useEffect} from 'react';
|
||||
import { useSelector,useDispatch } from 'react-redux';
|
||||
import { TransitionGroup, CSSTransition } from 'react-transition-group';
|
||||
import './index.less';
|
||||
import ActionDock from './components/ActionDock';
|
||||
|
|
@ -10,7 +10,6 @@ import MapCtrl from './MapCtrl';
|
|||
import InfoDlg from './InfoDlg';
|
||||
import clsx from 'clsx';
|
||||
import Calculating from './components/Calculating';
|
||||
import VideoPlayer from './components/VideoCom/index';
|
||||
//import SocketCtrl from './components/SocketCtrl';
|
||||
|
||||
|
||||
|
|
@ -22,10 +21,10 @@ export default function Demo1() {
|
|||
const yyRes = useSelector(s => s.runtime.yyObj);
|
||||
const isSc = useSelector(s => s.runtime.scya);
|
||||
const wg = useSelector(s => s.runtime.shkshObj)
|
||||
console.log('wg', wg);
|
||||
|
||||
|
||||
console.log('wg',wg);
|
||||
|
||||
|
||||
|
||||
return (
|
||||
<div className="demo1">
|
||||
<div style={{ position: 'absolute', left: 0, bottom: 0, right: 0, top: 0, zIndex: 0 }}>
|
||||
|
|
@ -34,15 +33,10 @@ export default function Demo1() {
|
|||
|
||||
{
|
||||
yyRes.yy &&
|
||||
<VideoPlayer
|
||||
videoUrl={`${process.env.PUBLIC_URL}/assets/gaoguan.mp4`}
|
||||
date=""
|
||||
odd={true}
|
||||
/>
|
||||
// <>
|
||||
// <img src={`${process.env.PUBLIC_URL}/assets/yytc.png`} alt="" style={{ zIndex: 0.1, position: 'absolute' }} />
|
||||
// <img src={`${process.env.PUBLIC_URL}/assets/yy.png`} alt="" style={{ zIndex: 0.2, position: 'absolute', bottom: 150, left: '32%', width: 700 }} />
|
||||
// </>
|
||||
<>
|
||||
<img src={`${process.env.PUBLIC_URL}/assets/yytc.png`} alt="" style={{ zIndex: 0.1, position: 'absolute' }} />
|
||||
<img src={`${process.env.PUBLIC_URL}/assets/yy.png`} alt="" style={{ zIndex: 0.2, position: 'absolute', bottom: 150, left: '32%', width: 700 }} />
|
||||
</>
|
||||
}
|
||||
|
||||
{
|
||||
|
|
@ -81,8 +75,8 @@ export default function Demo1() {
|
|||
<PanelIndex name={key} {...params} />
|
||||
</CSSTransition>
|
||||
)
|
||||
} else if (wg) {
|
||||
return (
|
||||
} else if(wg) {
|
||||
return (
|
||||
<CSSTransition key={key} unmountOnExit exit={false} timeout={500} classNames="dp-panelgroup">
|
||||
<PanelIndex name={key} {...params} />
|
||||
</CSSTransition>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ function DrpReal({ style }) {
|
|||
return (
|
||||
<PanelBox
|
||||
style={style}
|
||||
title="方案对比"
|
||||
title="对比分析"
|
||||
color="green"
|
||||
>
|
||||
<img src='/assets/duibifenxi.png' style={{width:'429.81px', height:'254px',marginLeft:'1px'}}/>
|
||||
|
|
|
|||
|
|
@ -110,7 +110,7 @@ function HDReal({ style }) {
|
|||
const toggleAutoRefresh = () => {
|
||||
dispatch.realview.setHdAutoRefresh(!hdAutoRefresh);
|
||||
}
|
||||
const [renderChart, setRenderChart] = useState(false)
|
||||
|
||||
|
||||
|
||||
return (
|
||||
|
|
@ -136,18 +136,15 @@ function HDReal({ style }) {
|
|||
<div className='skyb-box' >
|
||||
<div className='rain-yb'>
|
||||
<div className='title-yb'>水库洪水演进</div>
|
||||
<TableYj onChange={() => setRenderChart(true)}/>
|
||||
<TableYj onChange={() => {}}/>
|
||||
</div>
|
||||
<div className='rain-yb'>
|
||||
<div className='title-yb'>下游淹没影响</div>
|
||||
<img src={`${process.env.PUBLIC_URL}/assets/cgfx.png`} alt="" style={{ width: 420}} />
|
||||
</div>
|
||||
{
|
||||
renderChart &&<div style={{position:'absolute',top:80,right:450}}>
|
||||
<div style={{position:'absolute',top:80,right:450}}>
|
||||
<img src={`${process.env.PUBLIC_URL}/assets/dcjg.jpg`} alt="" style={{ width: 370}} />
|
||||
</div>
|
||||
}
|
||||
|
||||
</div>
|
||||
</> :
|
||||
<Empty description={<span style={{color:"#fff"}}>暂无数据</span>}/>
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ import {
|
|||
} from '@material-ui/core';
|
||||
import AddIcon from '@material-ui/icons/Add';
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import DpTableCell from '../../../../layouts/mui/DpTableCell';
|
||||
|
||||
import RemoveIcon from '@material-ui/icons/Remove';
|
||||
import config from '../../../../config';
|
||||
|
|
@ -215,14 +214,14 @@ export default function Overall({ style }) {
|
|||
|
||||
</div>
|
||||
|
||||
<TableContainer >
|
||||
<Table stickyHeader>
|
||||
<TableHead >
|
||||
<TableContainer>
|
||||
<Table className={classes.table}>
|
||||
<TableHead>
|
||||
<TableRow>
|
||||
<DpTableCell style={{ width: '50%' }}>站名</DpTableCell>
|
||||
<DpTableCell style={{ width: '20%' }}>累计雨量(mm)</DpTableCell>
|
||||
<DpTableCell style={{ width: '15%' }}>所属政区</DpTableCell>
|
||||
<DpTableCell style={{ width: '15%' }}>所属流域</DpTableCell>
|
||||
<TableCell style={{ width: '50%' }}>站名</TableCell>
|
||||
<TableCell style={{ width: '20%' }}>累计雨量(mm)</TableCell>
|
||||
<TableCell style={{ width: '15%' }}>所属政区</TableCell>
|
||||
<TableCell style={{ width: '15%' }}>所属流域</TableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
<TableBody>
|
||||
|
|
@ -232,7 +231,7 @@ export default function Overall({ style }) {
|
|||
// className={classes.stationRow}
|
||||
className={`${classes.warningRow} ${station.color}`}
|
||||
>
|
||||
<DpTableCell>
|
||||
<TableCell>
|
||||
<Box display="flex" alignItems="center">
|
||||
<IconButton
|
||||
size="small"
|
||||
|
|
@ -243,29 +242,29 @@ export default function Overall({ style }) {
|
|||
</IconButton>
|
||||
{station.name}({station.count})
|
||||
</Box>
|
||||
</DpTableCell>
|
||||
<DpTableCell></DpTableCell>
|
||||
<DpTableCell></DpTableCell>
|
||||
<DpTableCell></DpTableCell>
|
||||
</TableCell>
|
||||
<TableCell></TableCell>
|
||||
<TableCell></TableCell>
|
||||
<TableCell></TableCell>
|
||||
</TableRow>
|
||||
<TableRow>
|
||||
<DpTableCell colSpan={4} style={{ padding: 0 }}>
|
||||
<TableCell colSpan={4} style={{ padding: 0 }}>
|
||||
<Collapse in={expanded[station.id]} timeout="auto" unmountOnExit>
|
||||
<Box className={`${classes.expandedRow} ${station.color}`}>
|
||||
{/* 展开的详细内容可以在这里添加 */}{
|
||||
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>
|
||||
<TableCell style={{ width: '25%' }}>{item.stnm}</TableCell>
|
||||
<TableCell style={{ width: '20%' }}>{item.today}</TableCell>
|
||||
<TableCell style={{ width: '25%' }}>阎家河镇</TableCell>
|
||||
<TableCell style={{ width: '30%' }}>桃林河</TableCell>
|
||||
</TableRow>
|
||||
))
|
||||
}
|
||||
|
||||
</Box>
|
||||
</Collapse>
|
||||
</DpTableCell>
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
</React.Fragment>
|
||||
))}
|
||||
|
|
|
|||
|
|
@ -134,11 +134,11 @@ function HDReal({ style }) {
|
|||
}
|
||||
>
|
||||
{
|
||||
num.length ?
|
||||
num.length ? num.map(item => (
|
||||
<div style={{ padding: '5px' }}>
|
||||
<img src={`${process.env.PUBLIC_URL}/assets/${num.length == 1 ? 'duibi1':'duibi2'}.png`} alt="" style={{ width: 420 }} />
|
||||
<img src={`${process.env.PUBLIC_URL}/assets/duibi1.png`} alt="" style={{ width: 420 }} />
|
||||
</div>
|
||||
|
||||
))
|
||||
:
|
||||
<Empty description={<span style={{ color: "#fff" }}>暂无数据</span>} />
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
import React, { useEffect, useMemo, useState } from 'react';
|
||||
import React, { useMemo, useState } from 'react';
|
||||
import useRequest from '../../../../utils/useRequest';
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import PanelBox from '../../components/PanelBox';
|
||||
import { parseGeoJSON } from "../../../../utils/tools";
|
||||
import { DrpRealPromise, HDRealPromise } from "../../../../models/_/real";
|
||||
|
||||
import Table from '@material-ui/core/Table';
|
||||
import TableContainer from '@material-ui/core/TableContainer';
|
||||
import TableBody from '@material-ui/core/TableBody';
|
||||
|
|
@ -856,129 +855,9 @@ const data5 = [
|
|||
|
||||
function DrpReal({ style }) {
|
||||
const [tab,setTab] = useState('1')
|
||||
const [drpData,setDrpData] = useState([])
|
||||
const [hdData,setHdData] = useState([])
|
||||
|
||||
|
||||
const dispatch = useDispatch();
|
||||
const skObj = useSelector(s => s.runtime.skObj);
|
||||
|
||||
|
||||
useEffect(()=>{
|
||||
getDrp(skObj)
|
||||
getHd(skObj)
|
||||
},[skObj])
|
||||
|
||||
useEffect(()=>{
|
||||
const map = window.__mapref;
|
||||
|
||||
|
||||
|
||||
if(map){
|
||||
if(tab==='1'&&drpData?.length>0){
|
||||
setLayer(drpData,'drp')
|
||||
}
|
||||
}
|
||||
|
||||
},[drpData,hdData,skObj,tab])
|
||||
|
||||
const getDrp = async(skObj)=>{
|
||||
const { lgtd, lttd } = skObj
|
||||
const step = 0.05
|
||||
let data = await DrpRealPromise.get();
|
||||
if (Array.isArray(data)) {
|
||||
data = data.filter(o => {
|
||||
if(o.type !== 'sk'){
|
||||
if(
|
||||
lgtd-step<o.lgtd && o.lgtd<lgtd+step &&
|
||||
lttd-step<o.lttd && o.lttd<lttd+step
|
||||
){return true}
|
||||
else{
|
||||
return false
|
||||
}
|
||||
|
||||
}else{
|
||||
return false
|
||||
}
|
||||
});
|
||||
}
|
||||
setDrpData(data)
|
||||
}
|
||||
|
||||
const getHd = async(skObj)=>{
|
||||
const { lgtd, lttd } = skObj
|
||||
const step = 0.1
|
||||
let data = await HDRealPromise.get();
|
||||
if (Array.isArray(data)) {
|
||||
data = data.filter(o => {
|
||||
if(o.type !== 'sk'){
|
||||
if(
|
||||
lgtd-step<o.lgtd && o.lgtd<lgtd+step &&
|
||||
lttd-step<o.lttd && o.lttd<lttd+step
|
||||
){return true}
|
||||
else{
|
||||
return false
|
||||
}
|
||||
|
||||
}else{
|
||||
return false
|
||||
}
|
||||
});
|
||||
}
|
||||
setHdData(data)
|
||||
}
|
||||
|
||||
const setLayer = (data=[],type)=>{
|
||||
if(data.length===0){return}
|
||||
const map = window.__mapref;
|
||||
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': '水库-离线', // 从properties中动态读取icon字段
|
||||
'icon-size': [
|
||||
'interpolate', ['linear'], ['zoom'],
|
||||
10, 0.6,
|
||||
14, 0.6,
|
||||
],
|
||||
'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('sk1111').setData(parseGeoJSON(data))
|
||||
}
|
||||
|
||||
|
||||
return (
|
||||
<PanelBox
|
||||
style={style}
|
||||
|
|
@ -987,18 +866,38 @@ function DrpReal({ style }) {
|
|||
tabs={
|
||||
<span className="button-group">
|
||||
<span className={clsx({ active: tab==='1' })} onClick={() => {
|
||||
dispatch.map.setLayerVisible({'BxjcLayer':true});
|
||||
dispatch.map.setLayerVisible({'SyjcLayer':false});
|
||||
dispatch.map.setLayerVisible({'SljcLayer':false});
|
||||
dispatch.map.setLayerVisible({'ByjcLayer':false});
|
||||
setTab('1')
|
||||
}}>雨量站</span>
|
||||
<span className={clsx({ active: tab==='2' })} onClick={() => {
|
||||
dispatch.map.setLayerVisible({'BxjcLayer':false});
|
||||
dispatch.map.setLayerVisible({'SyjcLayer':true});
|
||||
dispatch.map.setLayerVisible({'SljcLayer':false});
|
||||
dispatch.map.setLayerVisible({'ByjcLayer':false});
|
||||
setTab('2')
|
||||
}}>水位站</span>
|
||||
<span className={clsx({ active: tab==='3' })} onClick={() => {
|
||||
dispatch.map.setLayerVisible({'BxjcLayer':false});
|
||||
dispatch.map.setLayerVisible({'SyjcLayer':false});
|
||||
dispatch.map.setLayerVisible({'SljcLayer':true});
|
||||
dispatch.map.setLayerVisible({'ByjcLayer':false});
|
||||
setTab('3')
|
||||
}}>流量站</span>
|
||||
<span className={clsx({ active: tab==='4' })} onClick={() => {
|
||||
dispatch.map.setLayerVisible({'BxjcLayer':false});
|
||||
dispatch.map.setLayerVisible({'SyjcLayer':false});
|
||||
dispatch.map.setLayerVisible({'SljcLayer':false});
|
||||
dispatch.map.setLayerVisible({'ByjcLayer':true});
|
||||
setTab('4')
|
||||
}}>图像站</span>
|
||||
<span className={clsx({ active: tab==='5' })} onClick={() => {
|
||||
dispatch.map.setLayerVisible({'BxjcLayer':false});
|
||||
dispatch.map.setLayerVisible({'SyjcLayer':false});
|
||||
dispatch.map.setLayerVisible({'SljcLayer':false});
|
||||
dispatch.map.setLayerVisible({'ByjcLayer':true});
|
||||
setTab('5')
|
||||
}}>视频站</span>
|
||||
</span>
|
||||
|
|
@ -1011,19 +910,19 @@ function DrpReal({ style }) {
|
|||
<Table size="small" stickyHeader>
|
||||
<TableHead>
|
||||
<TableRow>
|
||||
{/* <DpTableCell style={{ minWidth:'50px' }} align="center">序号</DpTableCell> */}
|
||||
<DpTableCell style={{ minWidth: '5rem' }} align="left">站点名称</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '5rem' }} align="center">1h时段雨量(mm)</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '6rem' }} align="center">时间</DpTableCell>
|
||||
<DpTableCell style={{ minWidth:'50px' }} align="center">序号</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '8rem' }} align="center">站点名称</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '6rem' }} align="center">1h时段雨量(mm)</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '3rem' }} align="center">时间</DpTableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
<TableBody>
|
||||
{drpData.map((row,index) => (
|
||||
{data1.map((row,index) => (
|
||||
<DpTableRow key={row.stcd}>
|
||||
{/* <DpTableCell align="center">{index+1}</DpTableCell> */}
|
||||
<DpTableCell align="center">{index+1}</DpTableCell>
|
||||
<DpTableCell component="th" scope="row">
|
||||
<div className="table-ellipsis cursor-pointer" onClick={() => {
|
||||
const { lgtd, lttd } = row;
|
||||
const { res_lon:lgtd, res_lat:lttd } = row;
|
||||
if (lgtd && lttd) {
|
||||
dispatch.runtime.setCameraTarget({
|
||||
center: [lgtd, lttd],
|
||||
|
|
@ -1034,7 +933,7 @@ function DrpReal({ style }) {
|
|||
}
|
||||
}}>{row.stnm}</div>
|
||||
</DpTableCell>
|
||||
<DpTableCell align="center">{(row.h1).toFixed(2)}</DpTableCell>
|
||||
<DpTableCell align="center">{(row.h1/2.7).toFixed(2)}</DpTableCell>
|
||||
<DpTableCell align="center">{row.tm.slice(0,10)}</DpTableCell>
|
||||
</DpTableRow>
|
||||
))}
|
||||
|
|
@ -1046,6 +945,7 @@ function DrpReal({ style }) {
|
|||
<Table size="small" stickyHeader>
|
||||
<TableHead>
|
||||
<TableRow>
|
||||
<DpTableCell style={{ minWidth: '50px' }} align="center">序号</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '4rem' }} align="center">名称</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '4rem' }} align="center">水位</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '4rem' }} align="center">保证水位 </DpTableCell>
|
||||
|
|
@ -1053,11 +953,12 @@ function DrpReal({ style }) {
|
|||
</TableRow>
|
||||
</TableHead>
|
||||
<TableBody>
|
||||
{hdData.map((row,index) => (
|
||||
{data2.map((row,index) => (
|
||||
<DpTableRow key={row.stcd}>
|
||||
<DpTableCell align="center">{index+1}</DpTableCell>
|
||||
<DpTableCell component="th" scope="row">
|
||||
<div className="table-ellipsis cursor-pointer" onClick={() => {
|
||||
const { lgtd, lttd } = row;
|
||||
const { res_lon:lgtd, res_lat:lttd } = row;
|
||||
if (lgtd && lttd) {
|
||||
dispatch.runtime.setCameraTarget({
|
||||
center: [lgtd, lttd],
|
||||
|
|
@ -1069,8 +970,8 @@ function DrpReal({ style }) {
|
|||
}}>{row.stnm}</div>
|
||||
</DpTableCell>
|
||||
<DpTableCell align="center">{row.rz}</DpTableCell>
|
||||
<DpTableCell align="center">{row.rz+5}</DpTableCell>
|
||||
<DpTableCell align="center">{row.rz+5.5}</DpTableCell>
|
||||
<DpTableCell align="center">{row.rz+4}</DpTableCell>
|
||||
</DpTableRow>
|
||||
))}
|
||||
</TableBody>
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import {
|
|||
Button,
|
||||
Table,
|
||||
TableBody,
|
||||
TableCell,
|
||||
TableContainer,
|
||||
TableHead,
|
||||
TableRow,
|
||||
|
|
@ -21,8 +22,6 @@ import {
|
|||
} from '@material-ui/core';
|
||||
import AddIcon from '@material-ui/icons/Add';
|
||||
import RemoveIcon from '@material-ui/icons/Remove';
|
||||
import DpTableCell from '../../../../layouts/mui/DpTableCell';
|
||||
|
||||
const useStyles = makeStyles((theme) => ({
|
||||
root: {
|
||||
color: '#fff',
|
||||
|
|
@ -142,20 +141,20 @@ export default function Overall({ style }) {
|
|||
|
||||
|
||||
<TableContainer>
|
||||
<Table >
|
||||
<Table className={classes.table}>
|
||||
<TableHead>
|
||||
<TableRow>
|
||||
<DpTableCell style={{ width: '35%' }}>站名</DpTableCell>
|
||||
<DpTableCell style={{ width: '30%' }}>水位(mm)</DpTableCell>
|
||||
<DpTableCell style={{ width: '15%' }}>所属政区</DpTableCell>
|
||||
<DpTableCell style={{ width: '15%' }}>所属流域</DpTableCell>
|
||||
<TableCell style={{ width: '35%' }}>站名</TableCell>
|
||||
<TableCell style={{ width: '30%' }}>水位(mm)</TableCell>
|
||||
<TableCell style={{ width: '15%' }}>所属政区</TableCell>
|
||||
<TableCell style={{ width: '15%' }}>所属流域</TableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
<TableBody>
|
||||
{stations.map((station) => (
|
||||
<React.Fragment key={station.id}>
|
||||
<TableRow className={`${classes.warningRow} ${station.type}`}>
|
||||
<DpTableCell>
|
||||
<TableCell>
|
||||
<Box display="flex" alignItems="center">
|
||||
<IconButton
|
||||
size="small"
|
||||
|
|
@ -166,25 +165,25 @@ export default function Overall({ style }) {
|
|||
</IconButton>
|
||||
{station.name}({station.count})
|
||||
</Box>
|
||||
</DpTableCell>
|
||||
<DpTableCell></DpTableCell>
|
||||
<DpTableCell></DpTableCell>
|
||||
<DpTableCell></DpTableCell>
|
||||
</TableCell>
|
||||
<TableCell></TableCell>
|
||||
<TableCell></TableCell>
|
||||
<TableCell></TableCell>
|
||||
</TableRow>
|
||||
<TableRow>
|
||||
<DpTableCell colSpan={4} style={{ padding: 0 }}>
|
||||
<TableCell 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>
|
||||
<TableCell style={{ width: '25%' }}>站名</TableCell>
|
||||
<TableCell style={{ width: '20%' }}>水位(m)</TableCell>
|
||||
<TableCell style={{ width: '25%' }}>所属政区</TableCell>
|
||||
<TableCell style={{ width: '30%' }}>所属流域</TableCell>
|
||||
</TableRow> */}
|
||||
</Box>
|
||||
</Collapse>
|
||||
</DpTableCell>
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
</React.Fragment>
|
||||
))}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
import React, { useEffect, useMemo, useState } from 'react';
|
||||
import React, { useMemo, useState } from 'react';
|
||||
import useRequest from '../../../../utils/useRequest';
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import PanelBox from '../../components/PanelBox';
|
||||
import { DrpRealPromise, HDRealPromise } from "../../../../models/_/real";
|
||||
|
||||
import Table from '@material-ui/core/Table';
|
||||
import TableContainer from '@material-ui/core/TableContainer';
|
||||
import TableBody from '@material-ui/core/TableBody';
|
||||
|
|
@ -11,6 +11,7 @@ import TableRow from '@material-ui/core/TableRow';
|
|||
import DpTableCell from '../../../../layouts/mui/DpTableCell';
|
||||
import DpTableRow from '../../../../layouts/mui/DpTableRow';
|
||||
import clsx from 'clsx';
|
||||
import { renderDrp } from '../../../../utils/renutils';
|
||||
import { adnmExact, adnmZhen } from '../../../../models/_/adcd';
|
||||
|
||||
|
||||
|
|
@ -1269,92 +1270,7 @@ const data4 = [
|
|||
|
||||
function DrpReal({ style }) {
|
||||
const [tab,setTab] = useState('1')
|
||||
const [wxqData,setWxqData] = useState([])
|
||||
const [azdData,setAzdData] = useState([])
|
||||
const [qsydwData,setQsydwData] = useState([])
|
||||
const [yhjmhData,setYhjmhData] = useState([])
|
||||
|
||||
|
||||
|
||||
|
||||
const dispatch = useDispatch();
|
||||
const skObj = useSelector(s => s.runtime.skObj);
|
||||
useEffect(()=>{
|
||||
getDrp(skObj)
|
||||
getAzd(skObj)
|
||||
getQsydw(skObj)
|
||||
getYhjmh(skObj)
|
||||
},[skObj])
|
||||
|
||||
const getDrp = async(skObj)=>{
|
||||
const { lgtd, lttd } = skObj
|
||||
const step = 0.1
|
||||
let data = await fetch(`${process.env.PUBLIC_URL}/data/wxq.json`).then((response) => response.json())
|
||||
.catch(() => null)
|
||||
const list = []
|
||||
data = data.filter(item => {
|
||||
const arr = item.geometry.coordinates?.[0]?.[0]
|
||||
if(arr?.length!==3){
|
||||
return false
|
||||
}
|
||||
if(
|
||||
lgtd-step<arr[0] && arr[0]<lgtd+step &&
|
||||
lttd-step<arr[1] && arr[1]<lttd+step
|
||||
){return true}
|
||||
else{
|
||||
return false
|
||||
}
|
||||
});
|
||||
setWxqData(data)
|
||||
}
|
||||
const getAzd = async(skObj)=>{
|
||||
const { lgtd, lttd } = skObj
|
||||
const step = 0.1
|
||||
let data = await fetch(`${process.env.PUBLIC_URL}/data/azd.json`).then((response) => response.json())
|
||||
.catch(() => null)
|
||||
data = data.filter(item => {
|
||||
if(
|
||||
lgtd-step<item.lgtd && item.lgtd<lgtd+step &&
|
||||
lttd-step<item.lttd && item.lttd<lttd+step
|
||||
){return true}
|
||||
else{
|
||||
return false
|
||||
}
|
||||
});
|
||||
setAzdData(data)
|
||||
}
|
||||
const getQsydw = async(skObj)=>{
|
||||
const { lgtd, lttd } = skObj
|
||||
const step = 0.1
|
||||
let data = await fetch(`${process.env.PUBLIC_URL}/data/qsydw.json`).then((response) => response.json())
|
||||
.catch(() => null)
|
||||
data = data.filter(item => {
|
||||
if(
|
||||
lgtd-step<item.lgtd && item.lgtd<lgtd+step &&
|
||||
lttd-step<item.lttd && item.lttd<lttd+step
|
||||
){return true}
|
||||
else{
|
||||
return false
|
||||
}
|
||||
});
|
||||
setQsydwData(data)
|
||||
}
|
||||
const getYhjmh = async(skObj)=>{
|
||||
const { lgtd, lttd } = skObj
|
||||
const step = 0.1
|
||||
let data = await fetch(`${process.env.PUBLIC_URL}/data/yhjmh.json`).then((response) => response.json())
|
||||
.catch(() => null)
|
||||
data = data.filter(item => {
|
||||
if(
|
||||
lgtd-step<item.lgtd && item.lgtd<lgtd+step &&
|
||||
lttd-step<item.lttd && item.lttd<lttd+step
|
||||
){return true}
|
||||
else{
|
||||
return false
|
||||
}
|
||||
});
|
||||
setYhjmhData(data)
|
||||
}
|
||||
|
||||
|
||||
return (
|
||||
|
|
@ -1365,15 +1281,31 @@ function DrpReal({ style }) {
|
|||
tabs={
|
||||
<span className="button-group">
|
||||
<span className={clsx({ active: tab==='1' })} onClick={() => {
|
||||
dispatch.map.setLayerVisible({'BxjcLayer':true});
|
||||
dispatch.map.setLayerVisible({'SyjcLayer':false});
|
||||
dispatch.map.setLayerVisible({'SljcLayer':false});
|
||||
dispatch.map.setLayerVisible({'ByjcLayer':false});
|
||||
setTab('1')
|
||||
}}>危险区</span>
|
||||
<span className={clsx({ active: tab==='2' })} onClick={() => {
|
||||
dispatch.map.setLayerVisible({'BxjcLayer':false});
|
||||
dispatch.map.setLayerVisible({'SyjcLayer':true});
|
||||
dispatch.map.setLayerVisible({'SljcLayer':false});
|
||||
dispatch.map.setLayerVisible({'ByjcLayer':false});
|
||||
setTab('2')
|
||||
}}>安置点</span>
|
||||
<span className={clsx({ active: tab==='3' })} onClick={() => {
|
||||
dispatch.map.setLayerVisible({'BxjcLayer':false});
|
||||
dispatch.map.setLayerVisible({'SyjcLayer':false});
|
||||
dispatch.map.setLayerVisible({'SljcLayer':true});
|
||||
dispatch.map.setLayerVisible({'ByjcLayer':false});
|
||||
setTab('3')
|
||||
}}>企事业单位</span>
|
||||
<span className={clsx({ active: tab==='4' })} onClick={() => {
|
||||
dispatch.map.setLayerVisible({'BxjcLayer':false});
|
||||
dispatch.map.setLayerVisible({'SyjcLayer':false});
|
||||
dispatch.map.setLayerVisible({'SljcLayer':false});
|
||||
dispatch.map.setLayerVisible({'ByjcLayer':true});
|
||||
setTab('4')
|
||||
}}>沿河居民户</span>
|
||||
</span>
|
||||
|
|
@ -1386,15 +1318,15 @@ function DrpReal({ style }) {
|
|||
<Table size="small" stickyHeader>
|
||||
<TableHead>
|
||||
<TableRow>
|
||||
{/* <DpTableCell style={{ minWidth:'50px' }} align="center">序号</DpTableCell> */}
|
||||
<DpTableCell style={{ minWidth:'50px' }} align="center">序号</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '8rem' }} align="center">名称</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '6rem' }} align="center">行政区</DpTableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
<TableBody>
|
||||
{wxqData.map((row,index) => (
|
||||
{data1.map((row,index) => (
|
||||
<DpTableRow key={row.stcd}>
|
||||
{/* <DpTableCell align="center">{index+1}</DpTableCell> */}
|
||||
<DpTableCell align="center">{index+1}</DpTableCell>
|
||||
<DpTableCell component="th" scope="row">
|
||||
<div className="table-ellipsis cursor-pointer" onClick={() => {
|
||||
const { res_lon:lgtd, res_lat:lttd } = row;
|
||||
|
|
@ -1419,18 +1351,22 @@ function DrpReal({ style }) {
|
|||
<Table size="small" stickyHeader>
|
||||
<TableHead>
|
||||
<TableRow>
|
||||
{/* <DpTableCell style={{ minWidth: '50px' }} align="center">序号</DpTableCell> */}
|
||||
<DpTableCell style={{ minWidth: '8rem' }} align="center">名称</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '50px' }} align="center">序号</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '8rem' }} align="center">水库名称</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '8rem' }} align="center">行政区</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '4rem' }} align="center">测点</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '6rem' }} align="center">渗压水位</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '10rem' }} align="center">监测时间</DpTableCell>
|
||||
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
<TableBody>
|
||||
{azdData.map((row,index) => (
|
||||
{data2.map((row,index) => (
|
||||
<DpTableRow key={row.stcd}>
|
||||
{/* <DpTableCell align="center">{index+1}</DpTableCell> */}
|
||||
<DpTableCell align="center">{index+1}</DpTableCell>
|
||||
<DpTableCell component="th" scope="row">
|
||||
<div className="table-ellipsis cursor-pointer" onClick={() => {
|
||||
const { lgtd, lttd } = row;
|
||||
const { res_lon:lgtd, res_lat:lttd } = row;
|
||||
if (lgtd && lttd) {
|
||||
dispatch.runtime.setCameraTarget({
|
||||
center: [lgtd, lttd],
|
||||
|
|
@ -1439,9 +1375,13 @@ function DrpReal({ style }) {
|
|||
bearing: 0
|
||||
});
|
||||
}
|
||||
}}>{row.NAME}</div>
|
||||
}}>{row.res_nm}</div>
|
||||
</DpTableCell>
|
||||
<DpTableCell align="center">{adnmZhen(row.ADCD)}</DpTableCell>
|
||||
<DpTableCell align="center">{row.town_nm}</DpTableCell>
|
||||
<DpTableCell align="center">{row.cd_nm}</DpTableCell>
|
||||
<DpTableCell align="center">{row.value}</DpTableCell>
|
||||
<DpTableCell align="center">{row.dt}</DpTableCell>
|
||||
|
||||
</DpTableRow>
|
||||
))}
|
||||
</TableBody>
|
||||
|
|
@ -1452,18 +1392,21 @@ function DrpReal({ style }) {
|
|||
<Table size="small" stickyHeader>
|
||||
<TableHead>
|
||||
<TableRow>
|
||||
{/* <DpTableCell style={{ minWidth: '50px' }} align="center">序号</DpTableCell> */}
|
||||
<DpTableCell style={{ minWidth: '8rem' }} align="left">名称</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '8rem' }} align="center">行政区</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '50px' }} align="center">序号</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '6rem' }} align="center">水库名称</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '7rem' }} align="center">行政区</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '4rem' }} align="center">测点</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '6rem' }} align="center">渗流量</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '8rem' }} align="center">监测时间</DpTableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
<TableBody>
|
||||
{qsydwData.map((row,index) => (
|
||||
{data3.map((row,index) => (
|
||||
<DpTableRow key={row.stcd}>
|
||||
{/* <DpTableCell align="center">{index+1}</DpTableCell> */}
|
||||
<DpTableCell align="center">{index+1}</DpTableCell>
|
||||
<DpTableCell component="th" scope="row">
|
||||
<div className="table-ellipsis cursor-pointer" onClick={() => {
|
||||
const { lgtd, lttd } = row;
|
||||
const { res_lon:lgtd, res_lat:lttd } = row;
|
||||
if (lgtd && lttd) {
|
||||
dispatch.runtime.setCameraTarget({
|
||||
center: [lgtd, lttd],
|
||||
|
|
@ -1472,9 +1415,12 @@ function DrpReal({ style }) {
|
|||
bearing: 0
|
||||
});
|
||||
}
|
||||
}}>{row.NAME}</div>
|
||||
}}>{row.res_nm}</div>
|
||||
</DpTableCell>
|
||||
<DpTableCell align="center">{adnmZhen(row.ADCD)}</DpTableCell>
|
||||
<DpTableCell align="center">{row.town_nm}</DpTableCell>
|
||||
<DpTableCell align="center">{row.cd_nm}</DpTableCell>
|
||||
<DpTableCell align="center">{row.value}</DpTableCell>
|
||||
<DpTableCell align="center">{row.dt}</DpTableCell>
|
||||
</DpTableRow>
|
||||
))}
|
||||
</TableBody>
|
||||
|
|
@ -1485,18 +1431,21 @@ function DrpReal({ style }) {
|
|||
<Table size="small" stickyHeader>
|
||||
<TableHead>
|
||||
<TableRow>
|
||||
{/* <DpTableCell style={{ minWidth: '50px' }} align="center">序号</DpTableCell> */}
|
||||
<DpTableCell style={{ minWidth: '5.5rem' }} align="left">沿河居民户</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '50px' }} align="center">序号</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '5.5rem' }} align="center">水库名称</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '7rem' }} align="center">行政区</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '6rem' }} align="center">测点</DpTableCell>
|
||||
<DpTableCell style={{ minWidth: '6rem' }} align="center">状态</DpTableCell>
|
||||
{/* <DpTableCell style={{ minWidth: '8rem' }} align="center">监测时间</DpTableCell> */}
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
<TableBody>
|
||||
{yhjmhData.map((row,index) => (
|
||||
{data4.map((row,index) => (
|
||||
<DpTableRow key={row.stcd}>
|
||||
{/* <DpTableCell align="center">{index+1}</DpTableCell> */}
|
||||
<DpTableCell align="center">{index+1}</DpTableCell>
|
||||
<DpTableCell component="th" scope="row">
|
||||
<div className="table-ellipsis cursor-pointer" onClick={() => {
|
||||
const { lgtd, lttd } = row;
|
||||
const { res_lon:lgtd, res_lat:lttd } = row;
|
||||
if (lgtd && lttd) {
|
||||
dispatch.runtime.setCameraTarget({
|
||||
center: [lgtd, lttd],
|
||||
|
|
@ -1505,9 +1454,12 @@ function DrpReal({ style }) {
|
|||
bearing: 0
|
||||
});
|
||||
}
|
||||
}}>{row.HNAME}</div>
|
||||
}}>{row.res_nm}</div>
|
||||
</DpTableCell>
|
||||
<DpTableCell align="center">{adnmZhen(row.ADCD)}</DpTableCell>
|
||||
<DpTableCell align="center">{row.town_nm}</DpTableCell>
|
||||
<DpTableCell align="center">{row.res_nm}</DpTableCell>
|
||||
<DpTableCell align="center">{row?.children?.[0]?.termite_status==='y'?<span style={{color:'#ff4d4f',display:'flex',alignItems:'center'}}><div style={{width:'10px',height:'10px',borderRadius:'10px',marginRight:'7px',background:'#ff4d4f'}}></div>有白蚁</span>:<span style={{color:'#3af6cd',display:'flex',alignItems:'center'}}><div style={{width:'10px',height:'10px',borderRadius:'10px',marginRight:'7px',background:'#3af6cd'}}></div>无白蚁</span>}</DpTableCell>
|
||||
{/* <DpTableCell align="center">{row.dt}</DpTableCell> */}
|
||||
</DpTableRow>
|
||||
))}
|
||||
</TableBody>
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import {
|
|||
Button,
|
||||
Table,
|
||||
TableBody,
|
||||
|
||||
TableCell,
|
||||
TableContainer,
|
||||
TableHead,
|
||||
TableRow,
|
||||
|
|
@ -26,7 +26,6 @@ import RemoveIcon from '@material-ui/icons/Remove';
|
|||
import WarningIcon from '@material-ui/icons/Warning';
|
||||
import AddIcon from '@material-ui/icons/Add';
|
||||
import { useDispatch } from 'react-redux';
|
||||
import DpTableCell from '../../../../layouts/mui/DpTableCell';
|
||||
|
||||
import { DatePicker } from 'antd';
|
||||
import moment from 'moment';
|
||||
|
|
@ -136,11 +135,11 @@ export default function Overall({ style }) {
|
|||
useEffect(() => {
|
||||
let options = "";
|
||||
options = {
|
||||
etm: moment().add(1, 'days').add(1, 'hour').set({ minute: 0, second: 0 }).format("YYYY-MM-DD HH:mm"),
|
||||
stm: moment().add(1, 'hour').set({ minute: 0, second: 0 }).format("YYYY-MM-DD HH:mm"),
|
||||
etm: moment().add(1, 'hour').set({ minute: 0, second: 0 }).format("YYYY-MM-DD HH:mm"),
|
||||
stm: moment().subtract(7, 'days').add(1, 'hour').set({ minute: 0, second: 0 }).format("YYYY-MM-DD HH:mm"),
|
||||
tm: [
|
||||
moment().add(1, 'hour').set({ minute: 0, second: 0 }).hours(9),
|
||||
moment().add(1, 'days').add(1, 'hour').set({ minute: 0, second: 0 }).hours(9),
|
||||
moment().subtract(7, 'days').add(1, 'hour').set({ minute: 0, second: 0 }),
|
||||
moment().add(1, 'hour').set({ minute: 0, second: 0 }),
|
||||
],
|
||||
}
|
||||
|
||||
|
|
@ -241,19 +240,19 @@ export default function Overall({ style }) {
|
|||
</div>
|
||||
</div>
|
||||
<TableContainer component={Paper} style={{ backgroundColor: 'transparent' }}>
|
||||
<Table stickyHeader>
|
||||
<Table className={classes.table}>
|
||||
<TableHead>
|
||||
<TableRow>
|
||||
<DpTableCell>乡镇</DpTableCell>
|
||||
<DpTableCell>预警时间</DpTableCell>
|
||||
<DpTableCell>预警状态</DpTableCell>
|
||||
<TableCell>乡镇</TableCell>
|
||||
<TableCell>预警时间</TableCell>
|
||||
<TableCell>预警状态</TableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
<TableBody>
|
||||
{warningData.map((row) => (
|
||||
<React.Fragment key={row.type}>
|
||||
<TableRow className={`${classes.warningRow} ${row.type}`}>
|
||||
<DpTableCell>
|
||||
<TableCell>
|
||||
<Box display="flex" alignItems="center">
|
||||
{expanded[row.type] ? (
|
||||
<RemoveIcon
|
||||
|
|
@ -268,14 +267,14 @@ export default function Overall({ style }) {
|
|||
)}
|
||||
{row.label}
|
||||
</Box>
|
||||
</DpTableCell>
|
||||
<DpTableCell></DpTableCell>
|
||||
<DpTableCell>
|
||||
</TableCell>
|
||||
<TableCell></TableCell>
|
||||
<TableCell>
|
||||
{row.count}个乡镇
|
||||
</DpTableCell>
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
<TableRow>
|
||||
<DpTableCell colSpan={3} style={{ padding: 0 }}>
|
||||
<TableCell colSpan={3} style={{ padding: 0 }}>
|
||||
<Collapse in={expanded[row.type]} timeout="auto" unmountOnExit>
|
||||
<Box className={classes.expandedContent}>
|
||||
{/* 这里可以添加展开后显示的详细内容 */}
|
||||
|
|
@ -283,15 +282,15 @@ export default function Overall({ style }) {
|
|||
{
|
||||
row.type == 'immediate' ? zyData.map(item => (
|
||||
<TableRow onClick={() => flyTo(item)}>
|
||||
<DpTableCell style={{ width: '30%' }}><div
|
||||
<TableCell style={{ width: '30%' }}><div
|
||||
className="table-ellipsis cursor-pointer"
|
||||
>{item.adnm}</div></DpTableCell>
|
||||
<DpTableCell style={{ width: '40%' }}><div
|
||||
>{item.adnm}</div></TableCell>
|
||||
<TableCell style={{ width: '40%' }}><div
|
||||
className="table-ellipsis cursor-pointer"
|
||||
>{item.warnetm}</div></DpTableCell>
|
||||
<DpTableCell style={{ width: '30%' }}><div
|
||||
>{item.warnetm}</div></TableCell>
|
||||
<TableCell style={{ width: '30%' }}><div
|
||||
className="table-ellipsis cursor-pointer"
|
||||
>{item.status}</div></DpTableCell>
|
||||
>{item.status}</div></TableCell>
|
||||
</TableRow>
|
||||
))
|
||||
|
||||
|
|
@ -300,7 +299,7 @@ export default function Overall({ style }) {
|
|||
}
|
||||
</Box>
|
||||
</Collapse>
|
||||
</DpTableCell>
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
</React.Fragment>
|
||||
))}
|
||||
|
|
|
|||
|
|
@ -1,51 +0,0 @@
|
|||
import React from 'react';
|
||||
|
||||
import Dialog from '@material-ui/core/Dialog';
|
||||
import DialogContent from '@material-ui/core/DialogContent';
|
||||
import DpPaperComponent from '../../../../layouts/mui/DpPaperCompanent';
|
||||
import { FormGroup, MenuItem, Select, Switch, Typography } from '@material-ui/core';
|
||||
import DpDialogTitle from '../../../../layouts/mui/DpDialogTitle';
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import { getLayerSetting, getLayerVisible } from '../../../../models/map/selectors';
|
||||
import DpBackgroundDrop from '../../../../layouts/mui/DpBackdrop';
|
||||
|
||||
|
||||
function Setting({ onClose }) {
|
||||
const layerVisible = useSelector(getLayerVisible);
|
||||
const layerSetting = useSelector(getLayerSetting);
|
||||
|
||||
const dispath = useDispatch();
|
||||
|
||||
return (
|
||||
<Dialog
|
||||
open={true}
|
||||
onClose={onClose}
|
||||
maxWidth="xl"
|
||||
style={{ borderRadius: 0 }}
|
||||
PaperComponent={DpPaperComponent}
|
||||
BackdropComponent={DpBackgroundDrop}
|
||||
>
|
||||
<div className="boxhead"></div>
|
||||
|
||||
<DpDialogTitle>河道水位显示设置</DpDialogTitle>
|
||||
<DialogContent>
|
||||
<div style={{ width: 320, padding: '1rem 0' }}>
|
||||
<FormGroup>
|
||||
<div style={{ marginBottom: '1rem' }}>
|
||||
<Typography variant="subtitle2">显示河道水位图层</Typography>
|
||||
<Switch
|
||||
checked={!!layerVisible.RealHDLayer}
|
||||
color="primary"
|
||||
edge="start"
|
||||
onChange={(e) => dispath.map.setLayerVisible({ RealHDLayer: e.target.checked })}
|
||||
/>
|
||||
</div>
|
||||
</FormGroup>
|
||||
</div>
|
||||
</DialogContent>
|
||||
<div className="boxfoot"></div>
|
||||
</Dialog>
|
||||
)
|
||||
}
|
||||
|
||||
export default Setting;
|
||||
|
|
@ -1,157 +0,0 @@
|
|||
const data = [
|
||||
{
|
||||
"addvcd": "420800000000000",
|
||||
"moditime": "2022-05-01 21:00:00",
|
||||
"comments": "漳河遥测",
|
||||
"src": "zhzj",
|
||||
"esstym": "",
|
||||
"mvalue": {
|
||||
"slmmmt": null,
|
||||
"slm60": 0,
|
||||
"exkey": "@",
|
||||
"slm80": 0,
|
||||
"hitrsn": null,
|
||||
"crpty": null,
|
||||
"crpgrwprd": null,
|
||||
"srlslm": null,
|
||||
"stcd": "ZH201417",
|
||||
"slm10": 24,
|
||||
"slm20": 5.3,
|
||||
"slm30": 44.3,
|
||||
"slm40": 44.3,
|
||||
"tm": "2024-08-03 05:00",
|
||||
"slm100": 0,
|
||||
"vtavslm": null,
|
||||
"slmAvg": 24.5
|
||||
},
|
||||
"lttd": 30.8456,
|
||||
"sttp": "SS",
|
||||
"irrCode": "D00000010",
|
||||
"sort": 9999,
|
||||
"hasImg": false,
|
||||
"stlc": "荆门市",
|
||||
"dtmel": 0,
|
||||
"stcd": "ZH201417",
|
||||
"stnm": "马山二组(墒情)",
|
||||
"addvcd_dictText": "荆门市",
|
||||
"lgtd": 112.2321,
|
||||
"irrCode_dictText": "漳河实验站",
|
||||
"bsnm": "漳河流域"
|
||||
},
|
||||
{
|
||||
"addvcd": "420800000000000",
|
||||
"moditime": "2022-05-01 21:00:00",
|
||||
"comments": "漳河遥测",
|
||||
"src": "zhzj",
|
||||
"esstym": "",
|
||||
"mvalue": {
|
||||
"slmmmt": null,
|
||||
"slm60": 0,
|
||||
"exkey": "@",
|
||||
"slm80": 0,
|
||||
"hitrsn": null,
|
||||
"crpty": null,
|
||||
"crpgrwprd": null,
|
||||
"srlslm": null,
|
||||
"stcd": "ZH201421",
|
||||
"slm10": 12.1,
|
||||
"slm20": 16.2,
|
||||
"slm30": 12.8,
|
||||
"slm40": 12.8,
|
||||
"tm": "2024-08-15 08:00",
|
||||
"slm100": 0,
|
||||
"vtavslm": null,
|
||||
"slmAvg": 13.7
|
||||
},
|
||||
"lttd": 30.8446,
|
||||
"sttp": "SS",
|
||||
"irrCode": "D00000010",
|
||||
"sort": 9999,
|
||||
"hasImg": false,
|
||||
"stlc": "荆门市",
|
||||
"dtmel": 0,
|
||||
"stcd": "ZH201421",
|
||||
"stnm": "槐桥四组(墒情)",
|
||||
"addvcd_dictText": "荆门市",
|
||||
"lgtd": 112.203,
|
||||
"irrCode_dictText": "漳河实验站",
|
||||
"bsnm": "漳河流域"
|
||||
},
|
||||
{
|
||||
"addvcd": "420800000000000",
|
||||
"moditime": "2022-05-01 21:00:00",
|
||||
"src": "zhzj",
|
||||
"esstym": "",
|
||||
"mvalue": {
|
||||
"slmmmt": null,
|
||||
"slm60": 0,
|
||||
"exkey": "@",
|
||||
"slm80": 0,
|
||||
"hitrsn": null,
|
||||
"crpty": null,
|
||||
"crpgrwprd": null,
|
||||
"srlslm": null,
|
||||
"stcd": "ZH201418",
|
||||
"slm10": 16.5,
|
||||
"slm20": 12.5,
|
||||
"slm30": 0,
|
||||
"slm40": 0,
|
||||
"tm": "2024-09-19 11:00",
|
||||
"slm100": 0,
|
||||
"vtavslm": null,
|
||||
"slmAvg": 14.5
|
||||
},
|
||||
"lttd": 30.8866,
|
||||
"sttp": "SS",
|
||||
"irrCode": "D00000010",
|
||||
"sort": 9999,
|
||||
"hasImg": false,
|
||||
"stlc": "荆门市",
|
||||
"dtmel": 0,
|
||||
"stcd": "ZH201418",
|
||||
"stnm": "双碑一组(墒情)",
|
||||
"addvcd_dictText": "荆门市",
|
||||
"lgtd": 112.2006,
|
||||
"irrCode_dictText": "漳河实验站",
|
||||
"bsnm": "漳河流域"
|
||||
},
|
||||
{
|
||||
"addvcd": "420800000000000",
|
||||
"moditime": "2022-05-01 21:00:00",
|
||||
"comments": "水资源多孔闸门控制系统",
|
||||
"src": "zhzj",
|
||||
"esstym": "",
|
||||
"mvalue": {
|
||||
"slmmmt": null,
|
||||
"slm60": null,
|
||||
"exkey": "@",
|
||||
"slm80": null,
|
||||
"hitrsn": null,
|
||||
"crpty": null,
|
||||
"crpgrwprd": null,
|
||||
"srlslm": null,
|
||||
"stcd": "4211221031",
|
||||
"slm10": 31,
|
||||
"slm20": 42.6,
|
||||
"slm30": null,
|
||||
"slm40": 26.6,
|
||||
"tm": "2025-05-26 09:00",
|
||||
"slm100": null,
|
||||
"vtavslm": null,
|
||||
"slmAvg": 33.4
|
||||
},
|
||||
"lttd": 30.904191,
|
||||
"sttp": "SS",
|
||||
"irrCode": "D00000010",
|
||||
"sort": 9999,
|
||||
"hasImg": false,
|
||||
"stlc": "荆门市",
|
||||
"stcd": "4211221031",
|
||||
"stnm": "试验站墒情",
|
||||
"addvcd_dictText": "荆门市",
|
||||
"lgtd": 112.087806,
|
||||
"irrCode_dictText": "漳河实验站",
|
||||
"bsnm": "漳河流域"
|
||||
}
|
||||
]
|
||||
export default data;
|
||||
|
|
@ -1,197 +0,0 @@
|
|||
import React, { useMemo, useState } from 'react';
|
||||
import useRequest from '../../../../utils/useRequest';
|
||||
import PanelBox from '../../components/PanelBox';
|
||||
|
||||
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 { useDispatch, useSelector } from 'react-redux';
|
||||
import useRefresh from '../../../../utils/useRefresh';
|
||||
import { HDRealPromise } from '../../../../models/_/real';
|
||||
import clsx from 'clsx';
|
||||
import { renderHDRz } from '../../../../utils/renutils';
|
||||
import Setting from './Setting';
|
||||
import { InfoPopNames } from '../../InfoPops';
|
||||
import config from '../../../../config';
|
||||
import moment from 'moment';
|
||||
import { Empty } from 'antd'
|
||||
import TableYj from './tableYj';
|
||||
import { Select, MenuItem } from '@material-ui/core/index'
|
||||
|
||||
// import showData from './constant'
|
||||
function rzRender(rz, base) {
|
||||
return (
|
||||
<DpTableCell align="right" style={{ color: rz >= base ? 'red' : '#fff' }}>
|
||||
{typeof base === 'number' ? base.toFixed(2) : ''}
|
||||
</DpTableCell>
|
||||
);
|
||||
}
|
||||
|
||||
function HDReal({ style }) {
|
||||
const dispatch = useDispatch();
|
||||
const tableRzFilter = useSelector(s => s.realview.tableRzFilter);
|
||||
const hdAutoRefresh = useSelector(s => s.realview.hdAutoRefresh);
|
||||
const num = useSelector(s => s.runtime.duibifxNum)
|
||||
|
||||
const yyRes = useSelector(s => s.runtime.yyObj);
|
||||
const [setting, showSetting] = useState(false);
|
||||
const [dimension, setDimension] = useState('ft');
|
||||
|
||||
|
||||
const data = [
|
||||
|
||||
{
|
||||
"guid": "42118120003",
|
||||
"code": "",
|
||||
"name": "浮桥河水库",
|
||||
"resRegCode": "42000020030-A4",
|
||||
"adName": "白果镇",
|
||||
"engScal": "大(2)型",
|
||||
"place": "湖北省-黄冈市-麻城市-白果镇",
|
||||
"lon": "115.068090",
|
||||
"lat": "31.026170",
|
||||
'username': '熊杰',
|
||||
taskType: '除草除杂',
|
||||
tm: '2025-06-02 17:38:00',
|
||||
status: '已处理'
|
||||
},
|
||||
{
|
||||
"guid": "42118120003",
|
||||
"code": "",
|
||||
"name": "浮桥河水库",
|
||||
"resRegCode": "42000020030-A4",
|
||||
"adName": "白果镇",
|
||||
"engScal": "大(2)型",
|
||||
"place": "湖北省-黄冈市-麻城市-白果镇",
|
||||
"lon": "115.068090",
|
||||
"lat": "31.026170",
|
||||
'username': '白斌',
|
||||
taskType: '除草除杂',
|
||||
tm: '2025-06-02 17:09:11',
|
||||
status: '已处理'
|
||||
},
|
||||
{
|
||||
"guid": "42118120003",
|
||||
"code": "",
|
||||
"name": "明山水库",
|
||||
"resRegCode": "42000020030-A4",
|
||||
"adName": "白果镇",
|
||||
"engScal": "大(2)型",
|
||||
"place": "湖北省-黄冈市-麻城市-白果镇",
|
||||
"lon": "115.068090",
|
||||
"lat": "31.026170",
|
||||
'username': '余静',
|
||||
taskType: '危险提示',
|
||||
tm: '2025-06-02 16:10:00',
|
||||
status: '已处理'
|
||||
},
|
||||
{
|
||||
"guid": "42118120003",
|
||||
"code": "",
|
||||
"name": "永红水库",
|
||||
"resRegCode": "42000020030-A4",
|
||||
"adName": "白果镇",
|
||||
"engScal": "大(2)型",
|
||||
"place": "湖北省-黄冈市-麻城市-白果镇",
|
||||
"lon": "115.068090",
|
||||
"lat": "31.026170",
|
||||
'username': '周真',
|
||||
taskType: '设备养护',
|
||||
tm: '2025-06-02 15:00:49',
|
||||
status: '待处理'
|
||||
},
|
||||
{
|
||||
"guid": "42118120003",
|
||||
"code": "",
|
||||
"name": "永丰水库",
|
||||
"resRegCode": "42000020030-A4",
|
||||
"adName": "白果镇",
|
||||
"engScal": "大(2)型",
|
||||
"place": "湖北省-黄冈市-麻城市-白果镇",
|
||||
"lon": "115.068090",
|
||||
"lat": "31.026170",
|
||||
'username': '陈发',
|
||||
taskType: '除草除杂',
|
||||
tm: '2025-06-02 14:43:49',
|
||||
status: '已处理'
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
const [list, setList] = useState(data)
|
||||
const onChange = (event) => {
|
||||
const value = event.target.value;
|
||||
setDimension(value);
|
||||
const newData = data.filter(item => item.taskType == value);
|
||||
if (newData.length) {
|
||||
setList(newData);
|
||||
} else {
|
||||
setList(data)
|
||||
}
|
||||
}
|
||||
const flyTo = () => {
|
||||
dispatch?.runtime.setInfoDlg({ layerId: 'ShuikuyanghuLayer', properties: {} })
|
||||
}
|
||||
return (
|
||||
<PanelBox
|
||||
style={style}
|
||||
title="水库管护"
|
||||
color="green"
|
||||
extra={
|
||||
<>
|
||||
<div style={{ height: '30px', overflow: 'hidden' }}>
|
||||
<Select
|
||||
labelId="analysis-select-label"
|
||||
value={dimension}
|
||||
label="请选择管护类型"
|
||||
onChange={onChange}
|
||||
>
|
||||
<MenuItem value="ft">请选择管护类型</MenuItem>
|
||||
<MenuItem value="除草除杂">除草除杂</MenuItem>
|
||||
<MenuItem value="设备养护">设备养护</MenuItem>
|
||||
<MenuItem value="危险提示">危险提示</MenuItem>
|
||||
</Select>
|
||||
</div>
|
||||
</>
|
||||
}
|
||||
>
|
||||
<TableContainer style={{ height: '200px', overflow: 'auto' }}>
|
||||
<Table size="small" stickyHeader>
|
||||
<TableHead>
|
||||
<TableRow>
|
||||
<DpTableCell style={{ width: '30%' }} align="center">水库名称</DpTableCell>
|
||||
<DpTableCell style={{ width: '20%' }} align="center">管护类型</DpTableCell>
|
||||
<DpTableCell style={{ width: '25%' }} align="center">内容</DpTableCell>
|
||||
<DpTableCell style={{ width: '25%' }} align="center">上报时间</DpTableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
<TableBody>
|
||||
{list.map((row, index) => (
|
||||
<DpTableRow key={row.stcd} onClick={flyTo}>
|
||||
<DpTableCell align="center">
|
||||
<div
|
||||
className="table-ellipsis cursor-pointer"
|
||||
>{row.name}</div>
|
||||
</DpTableCell>
|
||||
<DpTableCell align="center">{row.taskType}</DpTableCell>
|
||||
<DpTableCell align="center">一切正常</DpTableCell>
|
||||
<DpTableCell align="center"> <div
|
||||
className="table-ellipsis cursor-pointer"
|
||||
>{row.tm}</div></DpTableCell>
|
||||
</DpTableRow>
|
||||
))}
|
||||
</TableBody>
|
||||
</Table>
|
||||
</TableContainer>
|
||||
{
|
||||
setting && <Setting onClose={() => showSetting(false)} />
|
||||
}
|
||||
</PanelBox>
|
||||
)
|
||||
}
|
||||
|
||||
export default HDReal;
|
||||
|
|
@ -1,171 +0,0 @@
|
|||
|
||||
import React from 'react';
|
||||
import { makeStyles } from '@material-ui/core/styles';
|
||||
import {
|
||||
Table,
|
||||
TableBody,
|
||||
TableCell,
|
||||
TableContainer,
|
||||
TableHead,
|
||||
TableRow,
|
||||
Paper,
|
||||
} from '@material-ui/core';
|
||||
const reservoirData = [
|
||||
{
|
||||
name: '明山水库',
|
||||
maxInflow: {
|
||||
value: 12.32,
|
||||
time: '03-23 14:32'
|
||||
},
|
||||
totalStorage: 17.98,
|
||||
maxOutflow: {
|
||||
value: 12.32,
|
||||
time: '03-23 14:32'
|
||||
}
|
||||
}
|
||||
];
|
||||
|
||||
const useStyles = makeStyles((theme) => ({
|
||||
root: {
|
||||
width: '100%',
|
||||
// padding: '20px',
|
||||
background: '#0d1117',
|
||||
borderRadius: '8px',
|
||||
position: 'relative',
|
||||
},
|
||||
tableContainer: {
|
||||
background: 'transparent',
|
||||
maxHeight: '100%',
|
||||
overflowX: 'auto',
|
||||
'&::-webkit-scrollbar': {
|
||||
height: '8px',
|
||||
},
|
||||
'&::-webkit-scrollbar-track': {
|
||||
// background: 'rgba(255, 255, 255, 0.1)',
|
||||
borderRadius: '4px',
|
||||
},
|
||||
'&::-webkit-scrollbar-thumb': {
|
||||
// background: 'rgba(255, 255, 255, 0.2)',
|
||||
borderRadius: '4px',
|
||||
'&:hover': {
|
||||
background: 'rgba(255, 255, 255, 0.3)',
|
||||
},
|
||||
},
|
||||
},
|
||||
table: {
|
||||
minWidth: 800,
|
||||
// background: 'linear-gradient(180deg, rgba(22, 27, 34, 0.8) 0%, rgba(13, 17, 23, 0.8) 100%)',
|
||||
backdropFilter: 'blur(10px)',
|
||||
},
|
||||
tableHead: {
|
||||
background: 'linear-gradient(180deg, rgba(22, 27, 34, 0.9) 0%, rgba(22, 27, 34, 0.7) 100%)',
|
||||
},
|
||||
headerCell: {
|
||||
color: '#c9d1d9',
|
||||
fontWeight: 600,
|
||||
textAlign: 'center',
|
||||
borderBottom: '1px solid rgba(48, 54, 61, 0.6)',
|
||||
borderRight: '1px solid rgba(48, 54, 61, 0.6)',
|
||||
padding: 0,
|
||||
whiteSpace: 'nowrap',
|
||||
'&:last-child': {
|
||||
borderRight: 'none',
|
||||
},
|
||||
},
|
||||
cell: {
|
||||
color: '#c9d1d9',
|
||||
textAlign: 'center',
|
||||
borderBottom: '1px solid rgba(48, 54, 61, 0.6)',
|
||||
borderRight: '1px solid rgba(48, 54, 61, 0.6)',
|
||||
padding: '12px 20px',
|
||||
whiteSpace: 'nowrap',
|
||||
'&:last-child': {
|
||||
borderRight: 'none',
|
||||
},
|
||||
},
|
||||
timeText: {
|
||||
fontSize: '0.85em',
|
||||
color: '#8b949e',
|
||||
marginLeft: '4px',
|
||||
},
|
||||
scrollIndicator: {
|
||||
position: 'absolute',
|
||||
bottom: 0,
|
||||
left: 0,
|
||||
right: 0,
|
||||
height: '4px',
|
||||
background: 'rgba(255, 255, 255, 0.1)',
|
||||
borderRadius: '2px',
|
||||
},
|
||||
scrollProgress: {
|
||||
height: '100%',
|
||||
background: 'rgba(255, 255, 255, 0.3)',
|
||||
borderRadius: '2px',
|
||||
width: '50%',
|
||||
transform: 'translateX(0%)',
|
||||
transition: 'transform 0.3s ease',
|
||||
},
|
||||
}));
|
||||
|
||||
const ReservoirTable = () => {
|
||||
const classes = useStyles();
|
||||
const [scrollPosition, setScrollPosition] = React.useState(0);
|
||||
|
||||
const handleScroll = (e) => {
|
||||
const target = e.target;
|
||||
const scrollLeft = target.scrollLeft;
|
||||
const maxScroll = target.scrollWidth - target.clientWidth;
|
||||
const position = (scrollLeft / maxScroll) * 100;
|
||||
setScrollPosition(position);
|
||||
};
|
||||
|
||||
const formatFlowCell = (data) => (
|
||||
<>
|
||||
{data.value}
|
||||
<span className={classes.timeText}>({data.time})</span>
|
||||
</>
|
||||
);
|
||||
|
||||
return (
|
||||
<Paper className={classes.root} elevation={0}>
|
||||
<TableContainer className={classes.tableContainer} >
|
||||
<Table >
|
||||
<TableHead >
|
||||
<TableRow>
|
||||
<TableCell className={classes.headerCell}>水库名称</TableCell>
|
||||
<TableCell className={classes.headerCell}>
|
||||
最大入库流量<br/>(m³/s)
|
||||
</TableCell>
|
||||
<TableCell className={classes.headerCell}>
|
||||
总入库水量<br/>(万m³)
|
||||
</TableCell>
|
||||
<TableCell className={classes.headerCell}>
|
||||
最大出库流量<br/>(m³/s)
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
<TableBody>
|
||||
{reservoirData.map((item, index) => (
|
||||
<TableRow key={index}>
|
||||
<TableCell className={classes.cell}>{item.name}</TableCell>
|
||||
<TableCell className={classes.cell}>{formatFlowCell(item.maxInflow)}</TableCell>
|
||||
<TableCell className={classes.cell}>{item.totalStorage}</TableCell>
|
||||
<TableCell className={classes.cell}>{formatFlowCell(item.maxOutflow)}</TableCell>
|
||||
</TableRow>
|
||||
))}
|
||||
</TableBody>
|
||||
</Table>
|
||||
</TableContainer>
|
||||
<div className={classes.scrollIndicator}>
|
||||
<div
|
||||
className={classes.scrollProgress}
|
||||
style={{
|
||||
transform: `translateX(${scrollPosition}%)`
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
</Paper>
|
||||
);
|
||||
};
|
||||
|
||||
export default ReservoirTable;
|
||||
|
|
@ -15,7 +15,7 @@ import {
|
|||
Button,
|
||||
Table,
|
||||
TableBody,
|
||||
|
||||
TableCell,
|
||||
TableContainer,
|
||||
TableHead,
|
||||
TableRow,
|
||||
|
|
@ -24,7 +24,6 @@ import {
|
|||
} from '@material-ui/core';
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import config from '../../../../config';
|
||||
import DpTableCell from '../../../../layouts/mui/DpTableCell';
|
||||
|
||||
import AddIcon from '@material-ui/icons/Add';
|
||||
import RemoveIcon from '@material-ui/icons/Remove';
|
||||
|
|
@ -207,21 +206,21 @@ export default function Overall({ style }) {
|
|||
|
||||
|
||||
<TableContainer>
|
||||
<Table stickyHeader>
|
||||
<Table className={classes.table}>
|
||||
<TableHead>
|
||||
<TableRow>
|
||||
<DpTableCell style={{ width: '40%' }}>站名</DpTableCell>
|
||||
<DpTableCell style={{ width: '14%' }}>水位(mm)</DpTableCell>
|
||||
<DpTableCell style={{ width: '15%' }}>所属政区</DpTableCell>
|
||||
<DpTableCell style={{ width: '15%' }}>所属流域</DpTableCell>
|
||||
<DpTableCell style={{ width: '16%' }}>预案</DpTableCell>
|
||||
<TableCell style={{ width: '40%' }}>站名</TableCell>
|
||||
<TableCell style={{ width: '14%' }}>水位(mm)</TableCell>
|
||||
<TableCell style={{ width: '15%' }}>所属政区</TableCell>
|
||||
<TableCell style={{ width: '15%' }}>所属流域</TableCell>
|
||||
<TableCell style={{ width: '16%' }}>预案</TableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
<TableBody>
|
||||
{stations.map((station) => (
|
||||
<React.Fragment key={station.id}>
|
||||
<TableRow className={`${classes.warningRow} ${station.color}`}>
|
||||
<DpTableCell>
|
||||
<TableCell>
|
||||
<Box display="flex" alignItems="center">
|
||||
<IconButton
|
||||
size="small"
|
||||
|
|
@ -232,39 +231,39 @@ export default function Overall({ style }) {
|
|||
</IconButton>
|
||||
{station.name}({station.count})
|
||||
</Box>
|
||||
</DpTableCell>
|
||||
<DpTableCell></DpTableCell>
|
||||
<DpTableCell></DpTableCell>
|
||||
<DpTableCell></DpTableCell>
|
||||
<DpTableCell></DpTableCell>
|
||||
</TableCell>
|
||||
<TableCell></TableCell>
|
||||
<TableCell></TableCell>
|
||||
<TableCell></TableCell>
|
||||
<TableCell></TableCell>
|
||||
</TableRow>
|
||||
<TableRow>
|
||||
<DpTableCell colSpan={5} style={{ padding: 0 }}>
|
||||
<TableCell colSpan={5} style={{ padding: 0 }}>
|
||||
<Collapse in={expanded[station.id]} timeout="auto" unmountOnExit>
|
||||
<Box className={`${classes.expandedRow} ${station.color}`}>
|
||||
{/* 展开的详细内容可以在这里添加 */}
|
||||
{
|
||||
station.id == "cxx" && <TableRow onClick={() => flyTo()}>
|
||||
<DpTableCell style={{ width: '20%' }}><div
|
||||
<TableCell style={{ width: '20%' }}><div
|
||||
className="table-ellipsis cursor-pointer"
|
||||
>永红水库</div></DpTableCell>
|
||||
<DpTableCell style={{ width: '20%' }}>130.15(0.25)</DpTableCell>
|
||||
<DpTableCell style={{ width: '20%' }}><div
|
||||
>永红水库</div></TableCell>
|
||||
<TableCell style={{ width: '20%' }}>130.15(0.25)</TableCell>
|
||||
<TableCell style={{ width: '20%' }}><div
|
||||
className="table-ellipsis cursor-pointer"
|
||||
>阎家河镇</div></DpTableCell>
|
||||
<DpTableCell style={{ width: '20%' }}>阎家河</DpTableCell>
|
||||
<DpTableCell style={{ width: '20%' }}><a
|
||||
>阎家河镇</div></TableCell>
|
||||
<TableCell style={{ width: '20%' }}>阎家河</TableCell>
|
||||
<TableCell style={{ width: '20%' }}><a
|
||||
className="table-ellipsis cursor-pointer"
|
||||
onClick={() => {
|
||||
dispatch?.runtime.setInfoDlg({ layerId: 'PdfLayer', properties: {planName:'麻城市山洪灾害防御预案'} })
|
||||
}}
|
||||
>麻城市山洪灾害防御预案</a></DpTableCell>
|
||||
>麻城市山洪灾害防御预案</a></TableCell>
|
||||
</TableRow>
|
||||
}
|
||||
|
||||
</Box>
|
||||
</Collapse>
|
||||
</DpTableCell>
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
</React.Fragment>
|
||||
))}
|
||||
|
|
|
|||
|
|
@ -257,60 +257,6 @@ function DrpReal({ style }) {
|
|||
</div>
|
||||
:null
|
||||
}
|
||||
{
|
||||
tab==='灌溉'?
|
||||
<div style={{width:"100%",display:'flex',fontSize:'12px',justifyContent:'space-around',padding:'0.5rem 0'}}>
|
||||
<div style={{width:'8rem',padding:'0.5rem 0.5rem',background:'#2a5278',display:'flex',flexDirection:'column',justifyContent:'flex-start',alignItems:'center',color:"#ffffff"}}>
|
||||
<div><span style={{color:'#76b1d4',fontSize:'22px'}}>12.53</span> m³/s</div>
|
||||
<div style={{textAlign:'center'}}>灌溉流量站(2025-06-02 09:00)</div>
|
||||
</div>
|
||||
<div style={{width:'8rem',padding:'0.5rem 0.5rem',background:'#2a5278',display:'flex',flexDirection:'column',justifyContent:'flex-start',alignItems:'center',color:"#ffffff"}}>
|
||||
<div><span style={{color:'#76b1d4',fontSize:'22px'}}>364.21</span> 万m³</div>
|
||||
<div style={{marginTop:'5px'}}>月供水量</div>
|
||||
</div>
|
||||
<div style={{width:'8rem',padding:'0.5rem 0.5rem',background:'#2a5278',display:'flex',flexDirection:'column',justifyContent:'flex-start',alignItems:'center',color:"#ffffff"}}>
|
||||
<div><span style={{color:'#76b1d4',fontSize:'22px'}}>427.48</span> 万m³</div>
|
||||
<div style={{marginTop:'5px'}}>年供水量</div>
|
||||
</div>
|
||||
</div>
|
||||
:null
|
||||
}
|
||||
{
|
||||
tab==='发电'?
|
||||
<div style={{width:"100%",display:'flex',fontSize:'12px',justifyContent:'space-around',padding:'0.5rem 0'}}>
|
||||
<div style={{width:'8rem',padding:'0.5rem 0.5rem',background:'#2a5278',display:'flex',flexDirection:'column',justifyContent:'flex-start',alignItems:'center',color:"#ffffff"}}>
|
||||
<div><span style={{color:'#76b1d4',fontSize:'22px'}}>2.41</span> m³/s</div>
|
||||
<div style={{textAlign:'center'}}>发电流量站(2025-06-02 09:00)</div>
|
||||
</div>
|
||||
<div style={{width:'8rem',padding:'0.5rem 0.5rem',background:'#2a5278',display:'flex',flexDirection:'column',justifyContent:'flex-start',alignItems:'center',color:"#ffffff"}}>
|
||||
<div><span style={{color:'#76b1d4',fontSize:'22px'}}>426.12</span> 万m³</div>
|
||||
<div style={{marginTop:'5px'}}>月供水量</div>
|
||||
</div>
|
||||
<div style={{width:'8rem',padding:'0.5rem 0.5rem',background:'#2a5278',display:'flex',flexDirection:'column',justifyContent:'flex-start',alignItems:'center',color:"#ffffff"}}>
|
||||
<div><span style={{color:'#76b1d4',fontSize:'22px'}}>425.15</span> 万m³</div>
|
||||
<div style={{marginTop:'5px'}}>年供水量</div>
|
||||
</div>
|
||||
</div>
|
||||
:null
|
||||
}
|
||||
{
|
||||
tab==='泄洪'?
|
||||
<div style={{width:"100%",display:'flex',fontSize:'12px',justifyContent:'space-around',padding:'0.5rem 0'}}>
|
||||
<div style={{width:'8rem',padding:'0.5rem 0.5rem',background:'#2a5278',display:'flex',flexDirection:'column',justifyContent:'flex-start',alignItems:'center',color:"#ffffff"}}>
|
||||
<div><span style={{color:'#76b1d4',fontSize:'22px'}}>5.12</span> m³/s</div>
|
||||
<div style={{textAlign:'center'}}>泄洪流量站(2025-06-02 09:00)</div>
|
||||
</div>
|
||||
<div style={{width:'8rem',padding:'0.5rem 0.5rem',background:'#2a5278',display:'flex',flexDirection:'column',justifyContent:'flex-start',alignItems:'center',color:"#ffffff"}}>
|
||||
<div><span style={{color:'#76b1d4',fontSize:'22px'}}>211.45</span> 万m³</div>
|
||||
<div style={{marginTop:'5px'}}>月供水量</div>
|
||||
</div>
|
||||
<div style={{width:'8rem',padding:'0.5rem 0.5rem',background:'#2a5278',display:'flex',flexDirection:'column',justifyContent:'flex-start',alignItems:'center',color:"#ffffff"}}>
|
||||
<div><span style={{color:'#76b1d4',fontSize:'22px'}}>185.21</span> 万m³</div>
|
||||
<div style={{marginTop:'5px'}}>年供水量</div>
|
||||
</div>
|
||||
</div>
|
||||
:null
|
||||
}
|
||||
<div style={{width:'100%',height:'12rem'}}>
|
||||
<AreaDrpChart data={[]} tab={tab} />
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import { makeStyles } from '@material-ui/core';
|
|||
|
||||
const useStyles = makeStyles((theme) => ({
|
||||
root: {
|
||||
backgroundColor: 'transparent',
|
||||
backgroundColor: '#0d1117',
|
||||
borderRadius: 4,
|
||||
overflow: 'hidden',
|
||||
},
|
||||
|
|
@ -12,7 +12,7 @@ const useStyles = makeStyles((theme) => ({
|
|||
borderCollapse: 'collapse',
|
||||
color: '#c9d1d9',
|
||||
'& th': {
|
||||
backgroundColor: 'transparent',
|
||||
backgroundColor: '#161b22',
|
||||
padding: theme.spacing(1.5),
|
||||
textAlign: 'center',
|
||||
fontWeight: 'normal',
|
||||
|
|
|
|||
|
|
@ -52,9 +52,9 @@ function WF() {
|
|||
dispatch.runtime.setYyfa({yy:''})
|
||||
dispatch.shyjview.showWeather24h();
|
||||
const map = window.__mapref
|
||||
if (map) {
|
||||
map.setLayoutProperty('热力图', 'visibility', 'none');
|
||||
}
|
||||
map.setLayoutProperty('热力图', 'visibility', 'none');
|
||||
// if (map) {
|
||||
// }
|
||||
}
|
||||
|
||||
const genWeatherContourRadar = () => {
|
||||
|
|
@ -74,9 +74,14 @@ function WF() {
|
|||
dispatch.runtime.setLayerSetting({ contour: newContourSetting })
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
genWeatherContour24H()
|
||||
}, [])
|
||||
// useEffect(() => {
|
||||
// let timer = setTimeout(() => {
|
||||
// genWeatherContour24H()
|
||||
// },0)
|
||||
// return () => {
|
||||
// clearTimeout(timer)
|
||||
// }
|
||||
// }, [])
|
||||
|
||||
return (
|
||||
<div className={classes.root}>
|
||||
|
|
|
|||
|
|
@ -1,67 +0,0 @@
|
|||
import React from 'react';
|
||||
|
||||
import Dialog from '@material-ui/core/Dialog';
|
||||
import DialogContent from '@material-ui/core/DialogContent';
|
||||
import DpPaperComponent from '../../../../layouts/mui/DpPaperCompanent';
|
||||
import { FormGroup, MenuItem, Select, Switch, Typography } from '@material-ui/core';
|
||||
import DpDialogTitle from '../../../../layouts/mui/DpDialogTitle';
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import { getLayerSetting, getLayerVisible } from '../../../../models/map/selectors';
|
||||
import DpBackgroundDrop from '../../../../layouts/mui/DpBackdrop';
|
||||
|
||||
|
||||
function Setting({ onClose }) {
|
||||
const layerVisible = useSelector(getLayerVisible);
|
||||
const layerSetting = useSelector(getLayerSetting);
|
||||
|
||||
const dispath = useDispatch();
|
||||
|
||||
return (
|
||||
<Dialog
|
||||
open={true}
|
||||
onClose={onClose}
|
||||
maxWidth="xl"
|
||||
style={{ borderRadius: 0 }}
|
||||
PaperComponent={DpPaperComponent}
|
||||
BackdropComponent={DpBackgroundDrop}
|
||||
>
|
||||
<div className="boxhead"></div>
|
||||
|
||||
<DpDialogTitle>实时雨量显示设置</DpDialogTitle>
|
||||
<DialogContent>
|
||||
<div style={{ width: 320, padding: '1rem 0' }}>
|
||||
<FormGroup>
|
||||
<div style={{ marginBottom: '2rem' }}>
|
||||
<Typography variant="subtitle2">地图实时雨量显示雨量时段</Typography>
|
||||
<Select
|
||||
style={{ fontSize: '1.2rem' }}
|
||||
fullWidth
|
||||
value={layerSetting.drplabel}
|
||||
onChange={(event) => dispath.map.setLayerSetting({ drplabel: event.target.value })}
|
||||
>
|
||||
<MenuItem value="h1">小时雨量</MenuItem>
|
||||
<MenuItem value="h3">3小时雨量</MenuItem>
|
||||
<MenuItem value="h6">6小时雨量</MenuItem>
|
||||
<MenuItem value="h12">12小时雨量</MenuItem>
|
||||
<MenuItem value="h24">24小时雨量</MenuItem>
|
||||
<MenuItem value="h48">48小时雨量</MenuItem>
|
||||
</Select>
|
||||
</div>
|
||||
<div style={{ marginBottom: '1rem' }}>
|
||||
<Typography variant="subtitle2">显示实时雨量图层</Typography>
|
||||
<Switch
|
||||
checked={!!layerVisible.RealDrpLayer}
|
||||
color="primary"
|
||||
edge="start"
|
||||
onChange={(e) => dispath.map.setLayerVisible({ RealDrpLayer: e.target.checked })}
|
||||
/>
|
||||
</div>
|
||||
</FormGroup>
|
||||
</div>
|
||||
</DialogContent>
|
||||
<div className="boxfoot"></div>
|
||||
</Dialog>
|
||||
)
|
||||
}
|
||||
|
||||
export default Setting;
|
||||
|
|
@ -1,90 +0,0 @@
|
|||
import React, { useEffect, useRef } from 'react';
|
||||
import * as echarts from 'echarts';
|
||||
|
||||
const ProcessChart = () => {
|
||||
const chartRef = useRef(null);
|
||||
|
||||
useEffect(() => {
|
||||
const chart = echarts.init(chartRef.current);
|
||||
|
||||
const option = {
|
||||
title: [{
|
||||
text: '总计',
|
||||
left: 'center',
|
||||
top: '42%',
|
||||
textStyle: {
|
||||
color: '#fff',
|
||||
fontSize: 20,
|
||||
fontWeight: 'normal'
|
||||
}
|
||||
}, {
|
||||
text: '250',
|
||||
left: 'center',
|
||||
top: '52%',
|
||||
textStyle: {
|
||||
color: '#fff',
|
||||
fontSize: 28,
|
||||
fontWeight: 'bold'
|
||||
}
|
||||
}],
|
||||
|
||||
series: [{
|
||||
name: '处理进度',
|
||||
type: 'pie',
|
||||
radius: ['55%', '90%'],
|
||||
center: ['50%', '50%'],
|
||||
startAngle: 90,
|
||||
label: {
|
||||
show: true,
|
||||
position: 'outside',
|
||||
formatter: '{c}',
|
||||
color: '#fff',
|
||||
fontSize: 14,
|
||||
distance: 5
|
||||
},
|
||||
labelLine: {
|
||||
show: true,
|
||||
length: 10,
|
||||
length2: 10,
|
||||
lineStyle: {
|
||||
color: '#fff'
|
||||
}
|
||||
},
|
||||
data: [
|
||||
{
|
||||
value: 7,
|
||||
name: '待处理',
|
||||
itemStyle: {
|
||||
color: '#5470c6'
|
||||
}
|
||||
},
|
||||
{
|
||||
value: 243,
|
||||
name: '已处理',
|
||||
itemStyle: {
|
||||
color: '#3fb950'
|
||||
}
|
||||
}
|
||||
]
|
||||
}]
|
||||
};
|
||||
|
||||
|
||||
chart.setOption(option);
|
||||
return () => {
|
||||
chart.dispose();
|
||||
};
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<div
|
||||
ref={chartRef}
|
||||
style={{
|
||||
width: '200px',
|
||||
height: '220px'
|
||||
}}
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
||||
export default ProcessChart;
|
||||
|
|
@ -1,82 +0,0 @@
|
|||
import React from 'react';
|
||||
import { makeStyles } from '@material-ui/core/styles';
|
||||
import Box from '@material-ui/core/Box';
|
||||
import Paper from '@material-ui/core/Paper';
|
||||
import Typography from '@material-ui/core/Typography';
|
||||
|
||||
const useStyles = makeStyles((theme) => ({
|
||||
root: {
|
||||
display: 'flex',
|
||||
flexDirection: 'column',
|
||||
gap: '20px',
|
||||
},
|
||||
row: {
|
||||
display: 'flex',
|
||||
gap: '20px',
|
||||
justifyContent: 'flex-start',
|
||||
},
|
||||
card: {
|
||||
width: '200px',
|
||||
height: '100px',
|
||||
padding: '16px',
|
||||
// background: 'linear-gradient(135deg, rgba(9, 70, 113,0.5) 0%, rgba(9, 70, 113,0.8) 100%)',
|
||||
background:'rgba(6, 43, 78,.5)',
|
||||
border: '1px solid rgba(9, 70, 113,1)',
|
||||
borderRadius: '8px',
|
||||
display: 'flex',
|
||||
flexDirection: 'column',
|
||||
justifyContent: 'space-between',
|
||||
alignItems:'center',
|
||||
backdropFilter: 'blur(10px)',
|
||||
},
|
||||
title: {
|
||||
color: '#fff',
|
||||
fontSize: '16px',
|
||||
fontWeight: 'normal',
|
||||
},
|
||||
count: {
|
||||
color: '#04f21c',
|
||||
fontSize: '24px',
|
||||
fontWeight: 'bold',
|
||||
},
|
||||
}));
|
||||
|
||||
const PatrolStatistics = () => {
|
||||
const classes = useStyles();
|
||||
|
||||
const patrolTypes = [
|
||||
{ title: '日常巡查', count: 456 },
|
||||
{ title: '汛期巡查', count: 32 },
|
||||
{ title: '特别巡查', count: 3 },
|
||||
];
|
||||
|
||||
const patrolStatus = [
|
||||
{ title: '已完成', count: 456 },
|
||||
{ title: '未完成', count: 32 },
|
||||
{ title: '进行中', count: 3 },
|
||||
];
|
||||
|
||||
const StatCard = ({ title, count }) => (
|
||||
<Paper className={classes.card}>
|
||||
<Typography className={classes.title}>{title}</Typography>
|
||||
<Typography className={classes.count}>{count} <span style={{fontSize:16,color:"#fff",fontWeight:'normal'}}>次</span></Typography>
|
||||
</Paper>
|
||||
);
|
||||
|
||||
return (
|
||||
<Box className={classes.root}>
|
||||
<Box className={classes.row}>
|
||||
{patrolTypes.map((item, index) => (
|
||||
<StatCard key={`type-${index}`} {...item} />
|
||||
))}
|
||||
</Box>
|
||||
<Box className={classes.row}>
|
||||
{patrolStatus.map((item, index) => (
|
||||
<StatCard key={`status-${index}`} {...item} />
|
||||
))}
|
||||
</Box>
|
||||
</Box>
|
||||
);
|
||||
};
|
||||
|
||||
export default PatrolStatistics;
|
||||
|
|
@ -1,67 +0,0 @@
|
|||
import React from 'react';
|
||||
|
||||
import Dialog from '@material-ui/core/Dialog';
|
||||
import DialogContent from '@material-ui/core/DialogContent';
|
||||
import DpPaperComponent from '../../../../layouts/mui/DpPaperCompanent';
|
||||
import { FormGroup, MenuItem, Select, Switch, Typography } from '@material-ui/core';
|
||||
import DpDialogTitle from '../../../../layouts/mui/DpDialogTitle';
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import { getLayerSetting, getLayerVisible } from '../../../../models/map/selectors';
|
||||
import DpBackgroundDrop from '../../../../layouts/mui/DpBackdrop';
|
||||
|
||||
|
||||
function Setting({ onClose }) {
|
||||
const layerVisible = useSelector(getLayerVisible);
|
||||
const layerSetting = useSelector(getLayerSetting);
|
||||
|
||||
const dispath = useDispatch();
|
||||
|
||||
return (
|
||||
<Dialog
|
||||
open={true}
|
||||
onClose={onClose}
|
||||
maxWidth="xl"
|
||||
style={{ borderRadius: 0 }}
|
||||
PaperComponent={DpPaperComponent}
|
||||
BackdropComponent={DpBackgroundDrop}
|
||||
>
|
||||
<div className="boxhead"></div>
|
||||
|
||||
<DpDialogTitle>实时雨量显示设置</DpDialogTitle>
|
||||
<DialogContent>
|
||||
<div style={{ width: 320, padding: '1rem 0' }}>
|
||||
<FormGroup>
|
||||
<div style={{ marginBottom: '2rem' }}>
|
||||
<Typography variant="subtitle2">地图实时雨量显示雨量时段</Typography>
|
||||
<Select
|
||||
style={{ fontSize: '1.2rem' }}
|
||||
fullWidth
|
||||
value={layerSetting.drplabel}
|
||||
onChange={(event) => dispath.map.setLayerSetting({ drplabel: event.target.value })}
|
||||
>
|
||||
<MenuItem value="h1">小时雨量</MenuItem>
|
||||
<MenuItem value="h3">3小时雨量</MenuItem>
|
||||
<MenuItem value="h6">6小时雨量</MenuItem>
|
||||
<MenuItem value="h12">12小时雨量</MenuItem>
|
||||
<MenuItem value="h24">24小时雨量</MenuItem>
|
||||
<MenuItem value="h48">48小时雨量</MenuItem>
|
||||
</Select>
|
||||
</div>
|
||||
<div style={{ marginBottom: '1rem' }}>
|
||||
<Typography variant="subtitle2">显示实时雨量图层</Typography>
|
||||
<Switch
|
||||
checked={!!layerVisible.RealDrpLayer}
|
||||
color="primary"
|
||||
edge="start"
|
||||
onChange={(e) => dispath.map.setLayerVisible({ RealDrpLayer: e.target.checked })}
|
||||
/>
|
||||
</div>
|
||||
</FormGroup>
|
||||
</div>
|
||||
</DialogContent>
|
||||
<div className="boxfoot"></div>
|
||||
</Dialog>
|
||||
)
|
||||
}
|
||||
|
||||
export default Setting;
|
||||
|
|
@ -1,186 +0,0 @@
|
|||
import React, { useMemo, useState } from 'react';
|
||||
import useRequest from '../../../../utils/useRequest';
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import PanelBox from '../../components/PanelBox';
|
||||
|
||||
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 clsx from 'clsx';
|
||||
import { renderDrp } from '../../../../utils/renutils';
|
||||
import XcCard from './xcCard'
|
||||
import config from '../../../../config';
|
||||
|
||||
const data = [
|
||||
|
||||
{
|
||||
"guid": "42118120003",
|
||||
"code": "",
|
||||
"name": "浮桥河水库-汛前检查",
|
||||
"resRegCode": "42000020030-A4",
|
||||
"adName": "白果镇",
|
||||
"engScal": "大(2)型",
|
||||
"place": "湖北省-黄冈市-麻城市-白果镇",
|
||||
"lgtd": "115.068090",
|
||||
"lttd": "31.026170",
|
||||
'username': '熊杰',
|
||||
taskType: '日常巡查',
|
||||
tm: '2025-06-02 00:08:00',
|
||||
status: '进行中'
|
||||
},
|
||||
{
|
||||
"guid": "42118120003",
|
||||
"code": "",
|
||||
"name": "浮桥河水库-特别巡查",
|
||||
"resRegCode": "42000020030-A4",
|
||||
"adName": "白果镇",
|
||||
"engScal": "大(2)型",
|
||||
"place": "湖北省-黄冈市-麻城市-白果镇",
|
||||
"lgtd": "115.068090",
|
||||
"lttd": "31.026170",
|
||||
'username': '白斌',
|
||||
taskType: '汛前巡查',
|
||||
tm: '2025-06-02 00:09:00',
|
||||
status: '已完成'
|
||||
},
|
||||
{
|
||||
"guid": "42118120003",
|
||||
"code": "",
|
||||
"name": "明山水库-日常管理",
|
||||
"resRegCode": "42000020030-A4",
|
||||
"adName": "白果镇",
|
||||
"engScal": "大(2)型",
|
||||
"place": "湖北省-黄冈市-麻城市-白果镇",
|
||||
"lgtd": "115.068090",
|
||||
"lttd": "31.026170",
|
||||
'username': '余静',
|
||||
taskType: '特别巡查',
|
||||
tm: '2025-06-02 00:10:00',
|
||||
status: '未完成'
|
||||
},
|
||||
{
|
||||
"guid": "42118120003",
|
||||
"code": "",
|
||||
"name": "永红水库-日常管理",
|
||||
"resRegCode": "42000020030-A4",
|
||||
"adName": "白果镇",
|
||||
"engScal": "大(2)型",
|
||||
"place": "湖北省-黄冈市-麻城市-白果镇",
|
||||
"lgtd": "115.068090",
|
||||
"lttd": "31.026170",
|
||||
'username': '周真',
|
||||
taskType: '特别巡查',
|
||||
tm: '2025-06-02 00:10:00',
|
||||
status: '未完成'
|
||||
},
|
||||
{
|
||||
"guid": "42118120003",
|
||||
"code": "",
|
||||
"name": "永丰水库-汛前检查",
|
||||
"resRegCode": "42000020030-A4",
|
||||
"adName": "白果镇",
|
||||
"engScal": "大(2)型",
|
||||
"place": "湖北省-黄冈市-麻城市-白果镇",
|
||||
"lgtd": "115.068090",
|
||||
"lttd": "31.026170",
|
||||
'username': '陈发',
|
||||
taskType: '特别巡查',
|
||||
tm: '2025-06-02 00:10:00',
|
||||
status: '未完成'
|
||||
},
|
||||
]
|
||||
|
||||
function DrpReal({ style }) {
|
||||
const [tab, setTab] = useState('1')
|
||||
const dispatch = useDispatch();
|
||||
const flyTo = () => {
|
||||
dispatch?.runtime.setInfoDlg({ layerId: 'XunchachaoshiLayer', properties: {} })
|
||||
}
|
||||
const jumpTo = (record) => {
|
||||
const { lgtd, lttd } = record;
|
||||
if (lgtd && lttd) {
|
||||
dispatch.runtime.setCameraTarget({
|
||||
center: [lgtd, lttd + config.poiPositionOffsetY.hd],
|
||||
zoom: config.poiPositionZoom.hd,
|
||||
pitch: config.poiPitch,
|
||||
});
|
||||
}
|
||||
}
|
||||
return (
|
||||
<PanelBox
|
||||
style={style}
|
||||
title="巡查任务总览"
|
||||
color="green"
|
||||
extra={
|
||||
<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>
|
||||
}
|
||||
>
|
||||
<div className='skyb-box'>
|
||||
<div className='rain-yb'>
|
||||
<div className='title-yb'>巡查任务</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style={{ padding: 10 }}>
|
||||
<XcCard />
|
||||
</div>
|
||||
<TableContainer>
|
||||
<Table size="small" stickyHeader>
|
||||
<TableHead>
|
||||
<TableRow>
|
||||
<DpTableCell style={{ width: '20%' }} align="center">任务标题</DpTableCell>
|
||||
<DpTableCell style={{ width: '20%' }} align="center">任务类型</DpTableCell>
|
||||
<DpTableCell style={{ width: '20%' }} align="center">巡查人</DpTableCell>
|
||||
<DpTableCell style={{ width: '20%' }} align="center">巡查时间</DpTableCell>
|
||||
<DpTableCell style={{ width: '20%' }} align="center">状态</DpTableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
<TableBody>
|
||||
{data.map((row, index) => (
|
||||
<DpTableRow key={row.stcd}
|
||||
// onClick={() => jumpTo(row)}
|
||||
>
|
||||
<DpTableCell align="center">
|
||||
<div
|
||||
className="table-ellipsis cursor-pointer"
|
||||
>{row.name}</div>
|
||||
</DpTableCell>
|
||||
<DpTableCell align="center">{row.taskType}</DpTableCell>
|
||||
<DpTableCell align="center">{row.username}</DpTableCell>
|
||||
<DpTableCell align="center">
|
||||
<div
|
||||
className="table-ellipsis cursor-pointer"
|
||||
> {row.tm}</div>
|
||||
</DpTableCell>
|
||||
<DpTableCell align="center">{row.status}</DpTableCell>
|
||||
</DpTableRow>
|
||||
))}
|
||||
</TableBody>
|
||||
</Table>
|
||||
</TableContainer>
|
||||
<div className='skyb-box' style={{ marginTop: 50 }}>
|
||||
<div className='rain-yb'>
|
||||
<div className='title-yb'>数据统计</div>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<img src={`${process.env.PUBLIC_URL}/assets/sjtj1.jpg`} alt="" style={{ width: 420 }} />
|
||||
<div style={{ position: 'relative' }}>
|
||||
<img src={`${process.env.PUBLIC_URL}/assets/sjti2.png`} alt="" style={{ width: 205, height: 72 }} />
|
||||
<img src={`${process.env.PUBLIC_URL}/assets/gantanh.png`} alt=""
|
||||
style={{ width: 20, position: 'absolute', top: 12, left: 145, cursor: 'pointer' }}
|
||||
onClick={flyTo}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</PanelBox>
|
||||
)
|
||||
}
|
||||
|
||||
export default DrpReal;
|
||||
|
|
@ -1,82 +0,0 @@
|
|||
import React from 'react';
|
||||
import { makeStyles } from '@material-ui/core/styles';
|
||||
import Box from '@material-ui/core/Box';
|
||||
import Paper from '@material-ui/core/Paper';
|
||||
import Typography from '@material-ui/core/Typography';
|
||||
|
||||
const useStyles = makeStyles((theme) => ({
|
||||
root: {
|
||||
display: 'flex',
|
||||
flexDirection: 'column',
|
||||
gap: '20px',
|
||||
},
|
||||
row: {
|
||||
display: 'flex',
|
||||
gap: '20px',
|
||||
justifyContent: 'flex-start',
|
||||
},
|
||||
card: {
|
||||
width: '200px',
|
||||
height: '100px',
|
||||
padding: '16px',
|
||||
// background: 'linear-gradient(135deg, rgba(9, 70, 113,0.5) 0%, rgba(9, 70, 113,0.8) 100%)',
|
||||
background:'rgba(6, 43, 78,.5)',
|
||||
border: '1px solid rgba(9, 70, 113,1)',
|
||||
borderRadius: '8px',
|
||||
display: 'flex',
|
||||
flexDirection: 'column',
|
||||
justifyContent: 'space-between',
|
||||
alignItems:'center',
|
||||
backdropFilter: 'blur(10px)',
|
||||
},
|
||||
title: {
|
||||
color: '#fff',
|
||||
fontSize: '16px',
|
||||
fontWeight: 'normal',
|
||||
},
|
||||
count: {
|
||||
color: '#04f21c',
|
||||
fontSize: '24px',
|
||||
fontWeight: 'bold',
|
||||
},
|
||||
}));
|
||||
|
||||
const PatrolStatistics = () => {
|
||||
const classes = useStyles();
|
||||
|
||||
const patrolTypes = [
|
||||
{ title: '日常巡查', count: 456 },
|
||||
{ title: '汛期巡查', count: 32 },
|
||||
{ title: '特别巡查', count: 3 },
|
||||
];
|
||||
|
||||
const patrolStatus = [
|
||||
{ title: '已完成', count: 456 },
|
||||
{ title: '未完成', count: 32 },
|
||||
{ title: '进行中', count: 3 },
|
||||
];
|
||||
|
||||
const StatCard = ({ title, count }) => (
|
||||
<Paper className={classes.card}>
|
||||
<Typography className={classes.title}>{title}</Typography>
|
||||
<Typography className={classes.count}>{count} <span style={{fontSize:16,color:"#fff",fontWeight:'normal'}}>次</span></Typography>
|
||||
</Paper>
|
||||
);
|
||||
|
||||
return (
|
||||
<Box className={classes.root}>
|
||||
<Box className={classes.row}>
|
||||
{patrolTypes.map((item, index) => (
|
||||
<StatCard key={`type-${index}`} {...item} />
|
||||
))}
|
||||
</Box>
|
||||
<Box className={classes.row}>
|
||||
{patrolStatus.map((item, index) => (
|
||||
<StatCard key={`status-${index}`} {...item} />
|
||||
))}
|
||||
</Box>
|
||||
</Box>
|
||||
);
|
||||
};
|
||||
|
||||
export default PatrolStatistics;
|
||||
|
|
@ -270,7 +270,7 @@ const householdData = [
|
|||
|
||||
<div className="divider"></div>
|
||||
|
||||
{/* <div className="section-title">预警指标</div>
|
||||
<div className="section-title">预警指标</div>
|
||||
<div className="warning-item">
|
||||
<span className="label">准备转移:</span>
|
||||
<span className="value">1小时-mm; 3小时-mm; 6小时-mm</span>
|
||||
|
|
@ -278,7 +278,7 @@ const householdData = [
|
|||
<div className="warning-item">
|
||||
<span className="label">立即转移:</span>
|
||||
<span className="value">1小时-mm; 3小时-mm; 6小时-mm</span>
|
||||
</div> */}
|
||||
</div>
|
||||
|
||||
<div className="divider"></div>
|
||||
|
||||
|
|
|
|||
|
|
@ -72,9 +72,9 @@ export default function Warn({ style }) {
|
|||
}
|
||||
}
|
||||
|
||||
// useEffect(() => {
|
||||
// setValue(res.yy)
|
||||
// }, [res])
|
||||
useEffect(() => {
|
||||
setValue(res.yy)
|
||||
}, [res])
|
||||
const switchChange = (e) => {
|
||||
const val = e.target.checked
|
||||
setChecked(val)
|
||||
|
|
@ -102,7 +102,6 @@ export default function Warn({ style }) {
|
|||
} else if (selectedSchemes.length < 2) {
|
||||
setSelectedSchemes([...selectedSchemes, schemeId]);
|
||||
}
|
||||
// dispatch.runtime.setYyfa({})
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
|
|
@ -110,14 +109,7 @@ export default function Warn({ style }) {
|
|||
}, [selectedSchemes])
|
||||
|
||||
const productFa = () => {
|
||||
dispatch?.runtime.setInfoDlg({ layerId: 'YuananLayer', properties: {} })
|
||||
dispatch.runtime.setYyfa({})
|
||||
|
||||
}
|
||||
const changeYY = (e) => {
|
||||
setValue(e.target.value)
|
||||
|
||||
dispatch.runtime.setYyfa({})
|
||||
dispatch?.runtime.setInfoDlg({ layerId: 'YuananLayer', properties: {} })
|
||||
}
|
||||
return (
|
||||
<PanelBox
|
||||
|
|
@ -135,7 +127,7 @@ export default function Warn({ style }) {
|
|||
<FormControl fullWidth>
|
||||
<RadioGroup
|
||||
value={value}
|
||||
onChange={changeYY}
|
||||
onChange={(e) => setValue(e.target.value)}
|
||||
|
||||
>
|
||||
{
|
||||
|
|
|
|||