Compare commits

..

No commits in common. "7327089280024740515d1232d94fb8e736c7cb65" and "bb07d9d6003ebe0f543cd84d0f090edde9ccb5cd" have entirely different histories.

70 changed files with 427 additions and 409488 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 404 B

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 206 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

File diff suppressed because it is too large Load Diff

View File

@ -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
}
]

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -70,14 +70,6 @@
"y": 0,
"pixelRatio": 1,
"visible": true
},
"巡查": {
"width": 32,
"height": 32,
"x": 128,
"y": 32,
"pixelRatio": 1,
"visible": true
},
"水库-离线": {
"width": 32,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 45 KiB

View File

@ -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

View File

@ -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 {

View File

@ -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 = [

View File

@ -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 }
},

View File

@ -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}

View File

@ -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)'
}

View File

@ -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)'
}

View File

@ -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>

View File

@ -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}>

View File

@ -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);

View File

@ -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);

View File

@ -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;

View File

@ -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);

View File

@ -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);

View File

@ -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>

View File

@ -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>

View File

@ -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;
}

View File

@ -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%' },

View File

@ -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] });
}
}
});

View File

@ -126,7 +126,6 @@ export default class DcpjLayer extends BaseLayer {
// return false
// }
// })
// debugger
ms.setData(parseGeoJSON(data));
return true;
}

View File

@ -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(),
//

View File

@ -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',

View File

@ -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: {} })
}
}

View File

@ -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 === '洪水防御') {

View File

@ -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: [

View File

@ -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;

View File

@ -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>

View File

@ -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'}}/>

View File

@ -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>}/>

View File

@ -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>
))}

View File

@ -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>} />
}

View File

@ -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>

View File

@ -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>
))}

View File

@ -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>

View File

@ -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>
))}

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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/>(/s)
</TableCell>
<TableCell className={classes.headerCell}>
总入库水量<br/>(万m³)
</TableCell>
<TableCell className={classes.headerCell}>
最大出库流量<br/>(/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;

View File

@ -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>
))}

File diff suppressed because it is too large Load Diff

View File

@ -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>

View File

@ -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',

View File

@ -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}>

View File

@ -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;

View File

@ -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;

File diff suppressed because it is too large Load Diff

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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>

View File

@ -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)}
>
{

14941
yarn.lock

File diff suppressed because it is too large Load Diff