Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
CivManage
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ReactWeb5
CivManage
Commits
50fbbb21
Commit
50fbbb21
authored
Jun 07, 2022
by
皮倩雯
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: '二维底图方案配置'
parent
90a4b27a
Pipeline
#52157
waiting for manual action with stages
Changes
12
Pipelines
1
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
1422 additions
and
100 deletions
+1422
-100
SchemeConfig.less
src/pages/platformCenter/gis/schemeConfig/SchemeConfig.less
+66
-6
AddProjectModal.jsx
...ormCenter/gis/schemeConfig/TileConfig/AddProjectModal.jsx
+325
-0
BaseMap.jsx
...es/platformCenter/gis/schemeConfig/TileConfig/BaseMap.jsx
+173
-0
TileConfig.jsx
...platformCenter/gis/schemeConfig/TileConfig/TileConfig.jsx
+155
-56
card.jsx
...pages/platformCenter/gis/schemeConfig/TileConfig/card.jsx
+279
-0
VectorData.jsx
...platformCenter/gis/schemeConfig/VectorData/VectorData.jsx
+1
-1
AddModal.jsx
...atformCenter/gis/schemeConfig/projectMessage/AddModal.jsx
+12
-9
AddModalBase.jsx
...rmCenter/gis/schemeConfig/projectMessage/AddModalBase.jsx
+242
-0
card.jsx
...enter/gis/schemeConfig/projectMessage/components/card.jsx
+104
-18
projectMessage.jsx
...Center/gis/schemeConfig/projectMessage/projectMessage.jsx
+45
-8
solutionConfig.jsx
...Center/gis/schemeConfig/solutionConfig/solutionConfig.jsx
+0
-0
api.js
src/services/webConfig/api.js
+20
-2
No files found.
src/pages/platformCenter/gis/schemeConfig/SchemeConfig.less
View file @
50fbbb21
...
...
@@ -43,12 +43,21 @@
.schemeItem,
.schemeBtn {
width: 302px;
display: flex;
align-items: center;
}
.schemeBtn1 {
width: 260px;
justify-content: center;
display: flex;
align-items: center;
}
.schemeBtn {
width:
12rem
;
width:
234px
;
justify-content: center;
display: flex;
align-items: center;
}
.mapItem {
display: flex;
...
...
@@ -57,7 +66,16 @@
height: 2.2rem;
align-items: center;
margin: 0.5rem 0;
width: 14.5rem;
// width: 14.5rem;
}
.mapItem1 {
display: flex;
border: 1px solid #ccc;
border-radius: 4px;
height: 2.2rem;
align-items: center;
margin: 0.5rem 0;
width: 18.8rem;
}
.defaultTile {
background: #ccc;
...
...
@@ -69,15 +87,48 @@
width: 3rem;
justify-content: center;
}
.defaultTile1 {
background: #4699f4;
color: white;
height: 100%;
display: flex;
align-items: center;
width: 3rem;
justify-content: center;
}
.mapText {
width: 1
0
rem;
width: 1
4
rem;
text-align: center;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
padding-left: 5px;
padding-right: 5px;
}
.mapText1 {
width: 13rem;
text-align: center;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
padding-left: 5px;
padding-right: 5px;
}
.mapIcon {
margin-left: 4px;
display: flex;
justify-content: center;
align-items: center;
cursor: pointer;
margin-top: 5px;
}
.mapIcon1 {
margin-left: 4px;
display: flex;
justify-content: center;
align-items: center;
cursor: pointer;
margin-top: 5px;
}
.activeTile {
background-color: #4699f4;
...
...
@@ -104,12 +155,16 @@
.cardsList {
display: flex;
flex-wrap: wrap;
height: calc(100vh -
120
px);
height: calc(100vh -
234
px);
overflow-y: scroll;
}
.cardsList1 {
display: flex;
flex-wrap: wrap;
}
.cardItem {
width:
18
rem;
height: 2
6
rem;
width:
21
rem;
height: 2
2
rem;
margin: 0 2rem;
}
.tileContainer {
...
...
@@ -119,6 +174,11 @@
overflow: auto !important;
}
}
.TileConfigContainer {
.ant-card-head {
background-color: #ecf5ff;
}
}
.solutionContainer {
.ant-table-body {
height: calc(100vh - 250px) !important;
...
...
src/pages/platformCenter/gis/schemeConfig/TileConfig/AddProjectModal.jsx
0 → 100644
View file @
50fbbb21
/* eslint-disable prefer-promise-reject-errors */
/* eslint-disable indent */
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
{
Form
,
Modal
,
Input
,
Select
,
notification
,
InputNumber
,
Tooltip
}
from
'antd'
;
import
{
GettMaplayer
,
GetVectorService
,
SetServiceConfig
,
bindSchemeBaseMap
,
SetBaseMapschemeName
,
}
from
'@/services/webConfig/api'
;
import
{
InfoCircleOutlined
}
from
'@ant-design/icons'
;
const
{
Item
}
=
Form
;
const
{
Option
}
=
Select
;
const
AddProjectModal
=
props
=>
{
const
{
callBackSubmit
=
()
=>
{},
type
,
formObj
,
visible
,
serviceList
,
cardData
,
all
}
=
props
;
const
[
loading
,
setLoading
]
=
useState
(
false
);
const
[
baseMap
,
setBaseMap
]
=
useState
([]);
const
[
pipeArr
,
setPipeArr
]
=
useState
([]);
const
[
arr
,
setArr
]
=
useState
([]);
const
[
form
]
=
Form
.
useForm
();
// 提交
const
onSubmit
=
()
=>
{
form
.
validateFields
().
then
(
validate
=>
{
if
(
validate
)
{
setLoading
(
true
);
let
obj
=
form
.
getFieldsValue
();
if
(
type
===
'add'
)
{
// let aa = cardData.find(i => i.schemename == formObj.schemename);
// aa.baseMap.push(obj.serverName);
// aa.baseMapDetail.push({ servicename: obj.serverName, zoom: obj.zoom });
// let query = {
// schemename: formObj.schemename,
// terminalType: 'baseMapscheme',
// isBaseMap: 'false',
// jsonCfg: JSON.stringify({
// baseMap: aa.baseMap,
// baseMapDetail: aa.baseMapDetail,
// }),
// };
// SetServiceConfig(query)
// .then(res => {
// setLoading(false);
// if (res.msg === 'Ok') {
// form.resetFields();
// callBackSubmit();
// prompt('success', '瓦片新增成功');
// } else {
// prompt('fail', '瓦片新增失败');
// }
// })
// .catch(err => {
// setLoading(false);
// });
let
data
=
{
schemename
:
formObj
.
schemename
,
servicename
:
obj
.
serverName
,
zoom
:
obj
.
zoom
,
};
SetBaseMapschemeName
(
data
)
.
then
(
res
=>
{
setLoading
(
false
);
if
(
res
.
code
===
0
)
{
form
.
resetFields
();
callBackSubmit
();
prompt
(
'success'
,
'瓦片新增成功'
);
}
else
{
prompt
(
'fail'
,
'瓦片新增失败'
);
}
})
.
catch
(
err
=>
{
setLoading
(
false
);
});
}
else
{
handleEdit
();
}
}
});
};
const
prompt
=
(
type
,
content
)
=>
{
if
(
type
==
'success'
)
{
notification
.
success
({
message
:
'提示'
,
duration
:
3
,
description
:
content
,
});
}
else
{
notification
.
error
({
message
:
'提示'
,
duration
:
3
,
description
:
content
,
});
}
};
const
handleEdit
=
()
=>
{
let
obj
=
form
.
getFieldsValue
();
// let query = {
// schemename: obj.schemename,
// terminalType: 'baseMapscheme',
// isBaseMap: 'false',
// jsonCfg: JSON.stringify({
// baseMap: [obj.baseMap],
// alpha: 1,
// }),
// };
let
data
=
{
schemename
:
obj
.
schemename
,
servicename
:
obj
.
baseMap
,
zoom
:
0
,
};
SetBaseMapschemeName
(
data
)
.
then
(
res
=>
{
setLoading
(
false
);
if
(
res
.
code
===
0
)
{
form
.
resetFields
();
callBackSubmit
();
prompt
(
'success'
,
'方案新增成功'
);
}
else
{
prompt
(
'fail'
,
'方案新增失败'
);
}
})
.
catch
(
err
=>
{
setLoading
(
false
);
});
// SetServiceConfig(query)
// .then(res => {
// setLoading(false);
// if (res.msg === 'Ok') {
// form.resetFields();
// callBackSubmit();
// prompt('success', '方案新增成功');
// } else {
// prompt('fail', '方案新增失败');
// }
// })
// .catch(err => {
// setLoading(false);
// });
};
const
onFinish
=
value
=>
{};
useEffect
(()
=>
{
console
.
log
(
type
);
switch
(
type
)
{
case
'add'
:
addTile
();
break
;
case
'schemeAdd'
:
pipeNetwork
();
break
;
default
:
break
;
}
},
[
visible
]);
// 添加瓦片
const
addTile
=
()
=>
{
let
aa
=
cardData
.
find
(
i
=>
i
.
schemename
==
formObj
.
schemename
);
console
.
log
(
aa
);
let
arrNew
=
[];
aa
.
baseMapDetail
.
map
(
i
=>
{
arrNew
.
push
(
i
.
zoom
);
});
console
.
log
(
arrNew
);
setArr
(
arrNew
);
form
.
setFieldsValue
({
serverName
:
serviceList
[
0
],
});
};
// 获取管网及默认底图
const
pipeNetwork
=
()
=>
{
form
.
resetFields
();
let
req1
=
GettMaplayer
({
terminalType
:
'base'
,
isBaseMap
:
true
});
let
req2
=
GetVectorService
();
let
pipeArr
=
[],
baseMap
=
[];
Promise
.
all
([
req1
,
req2
]).
then
(
res
=>
{
if
(
res
[
0
].
msg
===
'Ok'
)
{
(
res
[
0
].
data
.
general
.
baseMap
.
layers
||
[]).
map
(
item
=>
{
baseMap
.
push
(
item
.
servicename
);
});
}
if
(
res
[
1
].
msg
===
'Ok'
)
{
(
res
[
1
].
data
.
VectorList
||
[]).
map
(
item
=>
{
pipeArr
.
push
(
item
.
ServiceName
.
split
(
'.'
)[
0
]);
});
}
setPipeArr
(
pipeArr
);
setBaseMap
(
baseMap
);
form
.
setFieldsValue
({
baseMap
:
baseMap
[
0
],
});
});
};
const
layout
=
{
layout
:
'horizontal'
,
labelCol
:
{
span
:
4
,
},
wrapperCol
:
{
span
:
18
,
},
};
// 选择服务名
const
handleChange
=
()
=>
{};
// 选择管网
const
handleService
=
value
=>
{
form
.
setFieldsValue
({
label
:
value
,
// url: `http://{IP}/PandaGIS/MapServer/Export?mapServerName=${value}`,
url
:
`http://{IP}/CityInterface/rest/services/MapServer.svc/
${
value
}
`
,
});
};
// 选择底图
const
handleBaseMap
=
()
=>
{};
return
(
<
Modal
title=
{
`${type === 'add' ? '添加底图' : '添加底图方案'}`
}
bodyStyle=
{
{
width
:
'100%'
,
minHeight
:
'100px'
}
}
style=
{
{
top
:
'150px'
}
}
width=
"700px"
destroyOnClose
maskClosable=
{
false
}
cancelText=
"取消"
okText=
"确认"
{
...
props
}
onOk=
{
()
=>
onSubmit
()
}
confirmLoading=
{
loading
}
forceRender=
{
true
}
getContainer=
{
false
}
>
{
visible
&&
(
<
Form
form=
{
form
}
{
...
layout
}
onFinish=
{
onFinish
}
>
{
type
===
'add'
?
(
<>
<
Item
label=
"服务名"
name=
"serverName"
rules=
{
[{
required
:
true
,
message
:
'请输入服务名'
}]
}
>
<
Select
onChange=
{
handleChange
}
>
{
serviceList
.
length
?
serviceList
.
map
((
item
,
index
)
=>
{
return
(
<
Option
key=
{
index
}
value=
{
item
}
>
{
item
}
</
Option
>
);
})
:
''
}
</
Select
>
</
Item
>
<
Item
label=
{
<
div
>
<
Tooltip
title=
"同一底图方案中的不同底图缩放级别不能相同"
>
<
InfoCircleOutlined
style=
{
{
color
:
'rgb(24, 144, 255)'
,
marginLeft
:
'0px'
,
marginRight
:
'5px'
,
}
}
/>
</
Tooltip
>
<
span
>
缩放级别
</
span
>
</
div
>
}
name=
"zoom"
rules=
{
[
{
required
:
true
,
message
:
'请输入缩放级别'
},
{
validator
:
(
rule
,
value
)
=>
{
const
obj
=
form
.
getFieldsValue
().
zoom
;
console
.
log
(
obj
);
if
(
arr
.
indexOf
(
obj
)
!=
-
1
)
{
console
.
log
(
111
);
return
Promise
.
reject
(
'已存在该缩放级别的底图'
);
}
return
Promise
.
resolve
();
},
},
]
}
>
<
InputNumber
min=
{
0
}
/>
</
Item
>
</>
)
:
(
<>
<
Item
label=
"方案名"
name=
"schemename"
rules=
{
[{
required
:
true
,
message
:
'请输入方案名'
}]
}
>
<
Input
placeholder=
"请输入方案名"
allowClear
/>
</
Item
>
<
Item
label=
"默认底图"
name=
"baseMap"
rules=
{
[{
required
:
true
,
message
:
'请选择底图'
}]
}
>
<
Select
onChange=
{
handleBaseMap
}
>
{
baseMap
.
length
?
baseMap
.
map
((
item
,
index
)
=>
{
return
(
<
Option
key=
{
index
}
value=
{
item
}
>
{
item
}
</
Option
>
);
})
:
''
}
</
Select
>
</
Item
>
</>
)
}
</
Form
>
)
}
</
Modal
>
);
};
export
default
AddProjectModal
;
src/pages/platformCenter/gis/schemeConfig/TileConfig/BaseMap.jsx
0 → 100644
View file @
50fbbb21
/* eslint-disable prefer-promise-reject-errors */
/*
* @Description:
* @Author: leizhe
* @Date: 2022-05-25 15:07:30
* @LastEditTime: 2022-06-02 17:20:19
* @LastEditors: leizhe
*/
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
{
Form
,
Modal
,
Input
,
Select
,
notification
,
InputNumber
,
Tooltip
}
from
'antd'
;
import
{
GettMaplayer
,
GetVectorService
,
SetServiceConfig
,
bindSchemeBaseMap
,
SetBaseMapschemeName
,
}
from
'@/services/webConfig/api'
;
import
{
InfoCircleOutlined
}
from
'@ant-design/icons'
;
const
{
Item
}
=
Form
;
const
{
Option
}
=
Select
;
const
BaseMap
=
props
=>
{
const
{
visible
,
onCancel
,
keepItem
,
keepProject
,
callBackSubmit
=
()
=>
{}
}
=
props
;
const
[
arr
,
setArr
]
=
useState
([]);
const
[
form
]
=
Form
.
useForm
();
// 删除瓦片
useEffect
(()
=>
{
console
.
log
(
keepItem
);
console
.
log
(
keepProject
);
if
(
visible
)
{
let
list
=
[];
keepItem
.
baseMapDetail
.
map
(
i
=>
{
list
.
push
(
i
.
zoom
);
});
setArr
(
list
);
let
aa
=
keepItem
.
baseMapDetail
.
find
(
i
=>
i
.
servicename
==
keepProject
);
form
.
setFieldsValue
({
zoom
:
aa
.
zoom
});
}
else
{
form
.
resetFields
();
}
},
[
visible
]);
const
onSubmit
=
()
=>
{
form
.
validateFields
().
then
(
validate
=>
{
if
(
validate
)
{
let
obj
=
form
.
getFieldsValue
();
// let aa = keepItem.baseMapDetail.find(i => i.servicename == keepProject);
// console.log(aa);
// aa.zoom = obj.zoom;
// let query = {
// schemename: keepItem.schemename,
// terminalType: 'baseMapscheme',
// isBaseMap: 'false',
// jsonCfg: JSON.stringify({
// baseMap: keepItem.baseMap,
// baseMapDetail: keepItem.baseMapDetail,
// }),
// };
// SetServiceConfig(query)
// .then(res => {
// if (res.msg === 'Ok') {
// form.resetFields();
// callBackSubmit();
// prompt('success', '编辑成功');
// } else {
// prompt('fail', '编辑失败');
// }
// })
// .catch(err => {});
let
data
=
{
schemename
:
keepItem
.
schemename
,
servicename
:
keepProject
,
zoom
:
obj
.
zoom
,
};
SetBaseMapschemeName
(
data
).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
form
.
resetFields
();
callBackSubmit
();
prompt
(
'success'
,
'编辑成功'
);
}
else
{
prompt
(
'fail'
,
'编辑失败'
);
}
});
}
});
};
const
prompt
=
(
type
,
content
)
=>
{
if
(
type
==
'success'
)
{
notification
.
success
({
message
:
'提示'
,
duration
:
3
,
description
:
content
,
});
}
else
{
notification
.
error
({
message
:
'提示'
,
duration
:
3
,
description
:
content
,
});
}
};
const
layout
=
{
layout
:
'horizontal'
,
labelCol
:
{
span
:
7
,
},
wrapperCol
:
{
span
:
15
,
},
};
const
title
=
(
<>
<
span
>
编辑
</
span
>
<
span
style=
{
{
color
:
'rgb(24, 144, 255)'
}
}
>
{
keepProject
}
</
span
>
<
span
>
的缩放级别
</
span
>
</>
);
return
(
<
Modal
title=
{
title
}
bodyStyle=
{
{
width
:
'100%'
,
minHeight
:
'100px'
}
}
style=
{
{
top
:
'150px'
}
}
width=
"400px"
destroyOnClose
maskClosable=
{
false
}
cancelText=
"取消"
okText=
"确认"
{
...
props
}
onOk=
{
()
=>
onSubmit
()
}
forceRender=
{
true
}
getContainer=
{
false
}
>
<
Form
form=
{
form
}
{
...
layout
}
onFinish=
{
onSubmit
}
>
<
Item
label=
{
<
div
>
<
Tooltip
title=
"同一底图方案中的不同底图缩放级别不能相同"
>
<
InfoCircleOutlined
style=
{
{
color
:
'rgb(24, 144, 255)'
,
marginLeft
:
'0px'
,
marginRight
:
'5px'
,
}
}
/>
</
Tooltip
>
<
span
>
缩放级别
</
span
>
</
div
>
}
style=
{
{
marginTop
:
'20px'
}
}
name=
"zoom"
rules=
{
[
{
required
:
true
,
message
:
'请输入缩放级别'
},
{
validator
:
(
rule
,
value
)
=>
{
const
obj
=
form
.
getFieldsValue
().
zoom
;
console
.
log
(
obj
);
if
(
arr
.
indexOf
(
obj
)
!=
-
1
)
{
console
.
log
(
111
);
return
Promise
.
reject
(
'已存在该缩放级别的底图'
);
}
return
Promise
.
resolve
();
},
},
]
}
>
<
InputNumber
min=
{
0
}
style=
{
{
width
:
'150px'
}
}
/>
</
Item
>
</
Form
>
</
Modal
>
);
};
export
default
BaseMap
;
src/pages/platformCenter/gis/schemeConfig/TileConfig/TileConfig.jsx
View file @
50fbbb21
import
{
Space
,
Table
,
Button
,
Popconfirm
,
notification
,
Spin
}
from
'antd'
;
/* eslint-disable indent */
import
{
Space
,
Table
,
Button
,
Popconfirm
,
notification
,
Spin
,
Divider
,
Tooltip
}
from
'antd'
;
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
{
PlusOutlined
,
UserAddOutlined
}
from
'@ant-design/icons'
;
import
AutoResponsive
from
'autoresponsive-react'
;
import
styles
from
'../SchemeConfig.less'
;
import
{
GettMaplayer
,
deleteConfig
}
from
'@/services/webConfig/api'
;
import
{
GettMaplayer
,
deleteConfig
,
GetMaplayerByTerminalType
}
from
'@/services/webConfig/api'
;
import
AddModal
from
'./AddModal'
;
import
EditModal
from
'./EditModal'
;
import
NewEditModal
from
'./NewEditModal'
;
import
Cards
from
'./card'
;
import
AddProjectModal
from
'./AddProjectModal'
;
const
TileData
=
props
=>
{
const
[
treeLoading
,
setTreeLoading
]
=
useState
(
false
);
// 弹窗显示
const
[
tileData
,
setTileData
]
=
useState
([]);
// table表格数据
const
[
cardData
,
setCardData
]
=
useState
([]);
const
[
visible
,
setVisible
]
=
useState
(
false
);
// 弹窗
const
[
projectVisible
,
setProjectVisible
]
=
useState
(
false
);
const
[
addVisible
,
setAddVisible
]
=
useState
(
false
);
// 弹窗
const
[
editVisible
,
setEditVisible
]
=
useState
(
false
);
const
[
type
,
setType
]
=
useState
(
''
);
// 弹窗类型
...
...
@@ -16,6 +23,8 @@ const TileData = props => {
const
[
flag
,
setFlag
]
=
useState
(
0
);
// 弹窗类型
const
[
baseMap
,
setBaseMap
]
=
useState
([]);
// 底图数据
const
[
name
,
setName
]
=
useState
([]);
const
[
flagAdd
,
setFlagAdd
]
=
useState
(
0
);
const
[
type1
,
setType1
]
=
useState
(
''
);
const
columns
=
[
{
title
:
'服务名'
,
...
...
@@ -74,6 +83,22 @@ const TileData = props => {
),
},
];
useEffect
(()
=>
{
setTreeLoading
(
true
);
GetMaplayerByTerminalType
({
terminalType
:
'baseMapscheme'
,
isBaseMap
:
false
,
}).
then
(
res
=>
{
console
.
log
(
'res'
,
res
);
if
(
res
.
msg
===
'Ok'
)
{
setTreeLoading
(
false
);
setCardData
(
res
.
data
.
baseMapscheme
.
optionalLayer
.
layers
);
}
else
{
setTreeLoading
(
false
);
}
});
},
[
flagAdd
]);
const
changebaseMap
=
record
=>
{
setType
(
'edit'
);
setFormObj
(
record
);
...
...
@@ -85,6 +110,11 @@ const TileData = props => {
setAddVisible
(
false
);
};
const
onSubmitProject
=
prop
=>
{
setProjectVisible
(
false
);
setFlagAdd
(
flagAdd
+
1
);
};
const
delConfirm
=
record
=>
{
const
{
servicename
=
''
}
=
record
;
setTreeLoading
(
true
);
...
...
@@ -118,16 +148,17 @@ const TileData = props => {
});
};
const
handleAdd
=
()
=>
{
if
(
baseMap
.
length
)
{
setType
(
'add'
);
setAddVisible
(
true
);
}
else
{
notification
.
warning
({
message
:
'提示'
,
duration
:
3
,
description
:
'地图类型已都存在,可编辑修改'
,
});
}
// console.log(baseMap);
// if (baseMap.length) {
setType
(
'add'
);
setAddVisible
(
true
);
// } else {
// notification.warning({
// message: '提示',
// duration: 3,
// description: '地图类型已都存在,可编辑修改',
// });
// }
};
useEffect
(()
=>
{
renderTile
();
...
...
@@ -170,59 +201,127 @@ const TileData = props => {
});
};
const
addType
=
()
=>
{
setType1
(
'schemeAdd'
);
setProjectVisible
(
true
);
};
const
onDeletebaseMap
=
value
=>
{
setFlagAdd
(
flagAdd
+
1
);
};
return
(
<
div
className=
{
styles
.
tileContainer
}
>
<
Spin
tip=
"loading..."
spinning=
{
treeLoading
}
>
<
div
className=
{
styles
.
tileBtn
}
>
<
Button
type=
"primary"
onClick=
{
()
=>
{
handleAdd
();
}
}
>
新增
</
Button
>
</
div
>
<
div
style=
{
{
height
:
'calc(100vh - 220px)'
,
width
:
'100%'
}
}
>
<
div
style=
{
{
height
:
'calc(100vh - 153px)'
,
overflowY
:
'scroll'
}
}
>
<
Spin
tip=
"loading..."
spinning=
{
treeLoading
}
>
{
/* <div className={styles.tileBtn}>
<Button
type="primary"
onClick={() => {
handleAdd();
}}
>
新增
</Button>
</div> */
}
<
Divider
orientation=
"left"
>
<
div
className=
{
styles
.
divider
}
>
{
' '
}
底图
{
' '
}
<
Tooltip
title=
"新增底图"
>
<
PlusOutlined
onClick=
{
()
=>
{
handleAdd
();
}
}
style=
{
{
marginTop
:
'5px'
,
marginLeft
:
'10px'
,
color
:
'#4699f4'
}
}
/>
</
Tooltip
>
</
div
>
</
Divider
>
<
Table
columns=
{
columns
}
dataSource=
{
tileData
}
bordered
rowKey=
"servicename"
scroll=
{
{
y
:
600
}
}
pagination=
{
{
showTotal
:
(
total
,
range
)
=>
`第${range[0]}-${range[1]} 条/共 ${total} 条`
,
}
}
pagination=
{
false
}
// scroll={{ y: 600 }}
// pagination={{
// showTotal: (total, range) => `第${range[0]}-${range[1]} 条/共 ${total} 条`,
// }}
/>
</
div
>
<
Divider
orientation=
"left"
style=
{
{
marginTop
:
'50px'
}
}
>
<
div
className=
{
styles
.
divider
}
>
底图分级显示方案
{
' '
}
<
Tooltip
title=
"新增底图方案"
>
<
PlusOutlined
onClick=
{
()
=>
{
addType
();
}
}
style=
{
{
marginTop
:
'5px'
,
marginLeft
:
'10px'
,
color
:
'#4699f4'
}
}
/>
</
Tooltip
>
</
div
>
{
' '
}
</
Divider
>
<
div
className=
{
styles
.
cardsList1
}
>
{
/* <AutoResponsive
itemMargin="10"
containerWidth="100%"
itemClassName="item"
gridWidth="100"
transitionDuration=".5"
> */
}
{
cardData
&&
cardData
.
length
?
cardData
.
map
((
item
,
index
)
=>
{
return
(
<
div
className=
{
styles
.
cardItem
}
key=
{
index
}
span=
{
5
}
offset=
{
2
}
style=
{
{
marginBottom
:
'1rem'
}
}
>
<
Cards
item=
{
item
}
deletebaseMaps=
{
onDeletebaseMap
}
cardData=
{
cardData
}
/>
</
div
>
);
})
:
''
}
{
/* </AutoResponsive> */
}
</
div
>
<
AddModal
visible=
{
addVisible
}
onCancel=
{
()
=>
setAddVisible
(
false
)
}
callBackSubmit=
{
onSubmit
}
type=
{
type
}
formObj=
{
formObj
}
baseMap=
{
baseMap
}
name=
{
name
}
/>
<
EditModal
visible=
{
visible
}
onCancel=
{
()
=>
setVisible
(
false
)
}
callBackSubmit=
{
onSubmit
}
type=
{
type
}
formObj=
{
formObj
}
baseMap=
{
baseMap
}
/>
<
NewEditModal
visible=
{
editVisible
}
onCancel=
{
()
=>
setEditVisible
(
false
)
}
callBackSubmit=
{
onSubmit
}
type=
{
type
}
formObj=
{
formObj
}
baseMap=
{
baseMap
}
name=
{
name
}
/>
</
Spin
>
<
AddModal
visible=
{
addVisible
}
onCancel=
{
()
=>
setAddVisible
(
false
)
}
callBackSubmit=
{
onSubmit
}
type=
{
type
}
formObj=
{
formObj
}
baseMap=
{
baseMap
}
name=
{
name
}
/>
<
EditModal
visible=
{
visible
}
onCancel=
{
()
=>
setVisible
(
false
)
}
callBackSubmit=
{
onSubmit
}
type=
{
type
}
formObj=
{
formObj
}
baseMap=
{
baseMap
}
/>
<
NewEditModal
visible=
{
editVisible
}
onCancel=
{
()
=>
setEditVisible
(
false
)
}
callBackSubmit=
{
onSubmit
}
type=
{
type
}
formObj=
{
formObj
}
baseMap=
{
baseMap
}
name=
{
name
}
/>
<
AddProjectModal
visible=
{
projectVisible
}
onCancel=
{
()
=>
setProjectVisible
(
false
)
}
callBackSubmit=
{
onSubmitProject
}
type=
{
type1
}
formObj=
{
formObj
}
/>
</
Spin
>
</
div
>
</
div
>
);
};
...
...
src/pages/platformCenter/gis/schemeConfig/TileConfig/card.jsx
0 → 100644
View file @
50fbbb21
/* eslint-disable indent */
/* eslint-disable object-shorthand */
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
classnames
from
'classnames'
;
import
{
Popconfirm
,
notification
,
Card
,
Button
,
message
,
Tooltip
}
from
'antd'
;
import
{
DeletMapServicename
,
GettMaplayer
,
SetServiceConfig
,
deleteConfig
,
}
from
'@/services/webConfig/api'
;
import
{
CloseOutlined
,
PlusOutlined
,
EditOutlined
}
from
'@ant-design/icons'
;
import
AddModal
from
'./AddProjectModal'
;
import
MapScope
from
'@/components/MapScope'
;
import
{
createGuid
}
from
'@/utils/transformUtil'
;
import
BaseMap
from
'./BaseMap'
;
import
styles
from
'../SchemeConfig.less'
;
const
CardData
=
props
=>
{
const
{
deletebaseMaps
=
()
=>
{},
item
,
cardData
}
=
props
;
const
[
visible
,
setVisible
]
=
useState
(
false
);
// 弹窗
const
[
flag
,
setFlag
]
=
useState
(
0
);
// 状态更新
const
[
type
,
setType
]
=
useState
(
''
);
// 弹窗类型
const
[
formObj
,
setFormObj
]
=
useState
({});
const
[
serviceList
,
setServiceList
]
=
useState
([]);
const
[
all
,
setAll
]
=
useState
([]);
const
[
mapScopeVisible
,
setMapScopeVisible
]
=
useState
(
false
);
const
[
baseMapVisible
,
setBaseMapVisible
]
=
useState
(
false
);
const
[
keepItem
,
setKeepItem
]
=
useState
(
''
);
const
[
keepProject
,
setKeepProject
]
=
useState
(
''
);
// 删除瓦片
useEffect
(()
=>
{
console
.
log
(
props
.
item
);
},
[]);
const
deletebaseMap
=
(
item
,
baseMapItem
)
=>
{
DeletMapServicename
({
schemename
:
item
.
schemename
,
servicename
:
baseMapItem
}).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
notification
.
success
({
message
:
'提示'
,
duration
:
3
,
description
:
'底图删除成功'
,
});
deletebaseMaps
();
}
else
{
notification
.
error
({
message
:
'提示'
,
duration
:
3
,
description
:
'底图删除失败'
,
});
}
});
};
// 删除方案
const
deleteTile
=
item
=>
{
deleteConfig
({
schemename
:
item
.
schemename
,
terminalType
:
'baseMapscheme'
,
isBaseMap
:
false
,
}).
then
(
res
=>
{
if
(
res
.
msg
===
'Ok'
)
{
notification
.
success
({
message
:
'提示'
,
duration
:
3
,
description
:
'方案删除成功'
,
});
deletebaseMaps
();
}
else
{
notification
.
error
({
message
:
'提示'
,
duration
:
3
,
description
:
'方案删除失败'
,
});
}
});
};
const
onSubmit
=
prop
=>
{
setVisible
(
false
);
setBaseMapVisible
(
false
);
deletebaseMaps
();
};
// 增加瓦片
const
addTile
=
value
=>
{
let
serverList
=
[];
setFormObj
(
value
);
if
(
JSON
.
stringify
(
value
)
!=
'{}'
)
{
GettMaplayer
({
terminalType
:
'base'
,
isBaseMap
:
true
}).
then
(
res
=>
{
if
(
res
.
msg
===
'Ok'
)
{
res
.
data
.
general
.
baseMap
.
layers
.
map
(
item
=>
{
console
.
log
(
value
);
console
.
log
(
value
.
baseMap
);
console
.
log
(
item
.
servicename
);
if
(
value
.
baseMap
.
indexOf
(
item
.
servicename
)
==
-
1
)
{
serverList
.
push
(
item
.
servicename
);
}
});
}
if
(
serverList
.
length
)
{
setServiceList
(
serverList
);
setAll
(
res
.
data
.
general
.
baseMap
.
layers
);
setType
(
'add'
);
setVisible
(
true
);
}
else
{
notification
.
warning
({
message
:
'提示'
,
duration
:
3
,
description
:
'请先在基础配置-配置底图'
,
});
}
});
}
};
const
submitExtent
=
(
extent
,
areaName
,
flag
)
=>
{
if
(
flag
===
0
)
{
notification
.
warn
({
message
:
'提交失败'
,
description
:
'请框选范围'
,
});
return
;
}
const
jsConfig
=
{
extent
:
extent
,
areaName
:
areaName
,
boundColor
:
'#86c8f8'
,
boundWidth
:
'10px'
,
backgroundColor
:
'#000000'
,
backgroundOpacity
:
'0.6'
,
};
SetServiceConfig
({
schemename
:
item
.
schemename
,
terminalType
:
'web'
,
isBaseMap
:
false
,
jsonCfg
:
JSON
.
stringify
(
jsConfig
),
}).
then
(
res
=>
{
if
(
res
.
msg
===
'Ok'
)
{
setMapScopeVisible
(
false
);
message
.
info
(
'范围设置成功'
);
}
});
};
const
pick
=
(
schemename
,
index
)
=>
{
SetServiceConfig
({
schemename
:
schemename
,
terminalType
:
'scheme'
,
isBaseMap
:
false
,
jsonCfg
:
JSON
.
stringify
({
defaultBaseMap
:
index
,
}),
}).
then
(
res
=>
{
if
(
res
.
msg
===
'Ok'
)
{
deletebaseMaps
();
message
.
info
(
'设置成功'
);
}
else
{
message
.
warning
(
res
.
msg
);
}
});
};
const
editBaseMap
=
()
=>
{
setBaseMapVisible
(
true
);
};
return
(
<
div
className=
{
styles
.
TileConfigContainer
}
>
<
Card
title=
{
<
div
>
<
span
className=
{
styles
.
schemeName
}
>
方案名
</
span
>
{
props
.
item
.
schemename
}
</
div
>
}
extra=
{
<
a
href=
"#"
>
<
Popconfirm
title=
"是否删除该方案?"
okText=
"确认"
cancelText=
"取消"
onConfirm=
{
()
=>
{
deleteTile
(
props
.
item
);
}
}
>
<
CloseOutlined
/>
</
Popconfirm
>
{
' '
}
</
a
>
}
style=
{
{
width
:
360
}
}
>
{
/* <p>
<span className={styles.schemeName}>管网</span> {props.item.servicename}
</p> */
}
{
/* <div>
<span className={styles.schemeName}>范围</span>
<Button
style={{ width: '12rem', marginBottom: '0.5rem' }}
onClick={() => setMapScopeVisible(true)}
>
选择范围
</Button>
</div> */
}
<
div
className=
{
styles
.
schemeItem
}
>
<
span
className=
{
styles
.
schemeName
}
>
底图
</
span
>
<
Button
className=
{
styles
.
schemeBtn1
}
onClick=
{
()
=>
addTile
(
props
.
item
)
}
>
{
' '
}
<
PlusOutlined
/>
添加底图
</
Button
>
</
div
>
<
div
style=
{
{
overflowY
:
'scroll'
,
height
:
'11.4rem'
}
}
>
{
props
.
item
.
baseMapDetail
&&
props
.
item
.
baseMapDetail
.
length
?
props
.
item
.
baseMapDetail
.
map
((
baseMapItem
,
baseindex
)
=>
{
return
(
<
div
className=
{
styles
.
mapItem1
}
key=
{
baseindex
}
>
<
div
// onClick=
{()
=
>
pick(props.item.schemename, baseindex)}
// className=
{
classnames
({
// [styles.defaultTile]: true,
// [styles.activeTile]: baseindex == props.item.defaultBaseMap,
//
})
}
className=
{
styles
.
defaultTile1
}
>
{
baseMapItem
.
zoom
}
</
div
>
<
div
className=
{
styles
.
mapText1
}
>
<
Tooltip
title=
{
baseMapItem
.
servicename
}
>
{
baseMapItem
.
servicename
}
</
Tooltip
>
</
div
>
<
div
className=
{
styles
.
mapIcon1
}
>
<
EditOutlined
onClick=
{
()
=>
{
editBaseMap
();
setKeepItem
(
props
.
item
);
setKeepProject
(
baseMapItem
.
servicename
);
}
}
/>
</
div
>
<
div
className=
{
styles
.
mapIcon1
}
>
<
Popconfirm
title=
"是否删除该底图?"
okText=
"确认"
cancelText=
"取消"
onConfirm=
{
()
=>
{
deletebaseMap
(
props
.
item
,
baseMapItem
.
servicename
);
}
}
>
<
CloseOutlined
/>
</
Popconfirm
>
{
' '
}
</
div
>
</
div
>
);
})
:
''
}
</
div
>
</
Card
>
<
AddModal
visible=
{
visible
}
onCancel=
{
()
=>
setVisible
(
false
)
}
callBackSubmit=
{
onSubmit
}
type=
{
type
}
serviceList=
{
serviceList
}
formObj=
{
formObj
}
cardData=
{
cardData
}
all=
{
all
}
/>
<
MapScope
mapId=
{
createGuid
()
}
visible=
{
mapScopeVisible
}
onCancel=
{
()
=>
setMapScopeVisible
(
false
)
}
confirmModal=
{
submitExtent
}
schemename=
{
props
.
item
.
schemename
}
title=
{
props
.
item
.
schemename
}
/>
<
BaseMap
visible=
{
baseMapVisible
}
onCancel=
{
()
=>
setBaseMapVisible
(
false
)
}
callBackSubmit=
{
onSubmit
}
keepItem=
{
keepItem
}
keepProject=
{
keepProject
}
/>
</
div
>
);
};
export
default
CardData
;
src/pages/platformCenter/gis/schemeConfig/VectorData/VectorData.jsx
View file @
50fbbb21
...
...
@@ -136,7 +136,7 @@ const VectorData = props => {
getSolutionList
({
_version
:
9999
,
}).
then
(
res
=>
{
setSolutionNames
(
res
.
currentSolution
);
setSolutionNames
(
res
.
data
.
currentSolution
);
});
};
const
onSubmit
=
prop
=>
{
...
...
src/pages/platformCenter/gis/schemeConfig/projectMessage/AddModal.jsx
View file @
50fbbb21
...
...
@@ -5,6 +5,7 @@ import {
GetVectorService
,
SetServiceConfig
,
bindSchemeBaseMap
,
GetbaseMapschemeName
,
}
from
'@/services/webConfig/api'
;
const
{
Item
}
=
Form
;
const
{
Option
}
=
Select
;
...
...
@@ -13,6 +14,7 @@ const AddModal = props => {
const
[
loading
,
setLoading
]
=
useState
(
false
);
const
[
baseMap
,
setBaseMap
]
=
useState
([]);
const
[
pipeArr
,
setPipeArr
]
=
useState
([]);
const
[
list
,
setList
]
=
useState
([]);
const
[
form
]
=
Form
.
useForm
();
// 提交
...
...
@@ -30,9 +32,9 @@ const AddModal = props => {
if
(
res
.
code
===
0
)
{
form
.
resetFields
();
callBackSubmit
();
prompt
(
'success'
,
'
瓦片
新增成功'
);
prompt
(
'success'
,
'
底图方案
新增成功'
);
}
else
{
prompt
(
'fail'
,
'
瓦片
新增失败'
);
prompt
(
'fail'
,
'
底图方案
新增失败'
);
}
});
}
else
{
...
...
@@ -102,6 +104,7 @@ const AddModal = props => {
// 添加瓦片
const
addTile
=
()
=>
{
console
.
log
(
formObj
);
form
.
setFieldsValue
({
serverName
:
serviceList
[
0
],
});
...
...
@@ -109,14 +112,14 @@ const AddModal = props => {
// 获取管网及默认底图
const
pipeNetwork
=
()
=>
{
form
.
resetFields
();
let
req1
=
Get
tMaplayer
({
terminalType
:
'base'
,
isBaseMap
:
true
}
);
let
req1
=
Get
baseMapschemeName
(
);
let
req2
=
GetVectorService
();
let
pipeArr
=
[],
baseMap
=
[];
Promise
.
all
([
req1
,
req2
]).
then
(
res
=>
{
if
(
res
[
0
].
msg
===
'Ok'
)
{
(
res
[
0
].
data
.
general
.
baseMap
.
layers
||
[]).
map
(
item
=>
{
baseMap
.
push
(
item
.
servicename
);
if
(
res
[
0
].
code
===
0
)
{
(
res
[
0
].
data
||
[]).
map
(
item
=>
{
baseMap
.
push
(
item
);
});
}
if
(
res
[
1
].
msg
===
'Ok'
)
{
...
...
@@ -156,7 +159,7 @@ const AddModal = props => {
const
handleBaseMap
=
()
=>
{};
return
(
<
Modal
title=
{
`${type === 'add' ? '添加底图' : '添加方案'}`
}
title=
{
`${type === 'add' ? '添加底图
方案
' : '添加方案'}`
}
bodyStyle=
{
{
width
:
'100%'
,
minHeight
:
'100px'
}
}
style=
{
{
top
:
'150px'
}
}
width=
"700px"
...
...
@@ -215,9 +218,9 @@ const AddModal = props => {
<
Input
placeholder=
"请输入url"
allowClear
/>
</
Item
>
<
Item
label=
"默认底图"
label=
"默认底图
方案
"
name=
"baseMap"
rules=
{
[{
required
:
true
,
message
:
'请选择底图'
}]
}
rules=
{
[{
required
:
true
,
message
:
'请选择底图
方案
'
}]
}
>
<
Select
onChange=
{
handleBaseMap
}
>
{
baseMap
.
length
...
...
src/pages/platformCenter/gis/schemeConfig/projectMessage/AddModalBase.jsx
0 → 100644
View file @
50fbbb21
/* eslint-disable indent */
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
{
Form
,
Modal
,
Input
,
Select
,
notification
}
from
'antd'
;
import
{
GettMaplayer
,
GetVectorService
,
SetServiceConfig
,
bindSchemeBaseMap
,
}
from
'@/services/webConfig/api'
;
const
{
Item
}
=
Form
;
const
{
Option
}
=
Select
;
const
AddModal
=
props
=>
{
const
{
callBackSubmit
=
()
=>
{},
type
,
formObj
,
visible
,
serviceList
}
=
props
;
const
[
loading
,
setLoading
]
=
useState
(
false
);
const
[
baseMap
,
setBaseMap
]
=
useState
([]);
const
[
pipeArr
,
setPipeArr
]
=
useState
([]);
const
[
form
]
=
Form
.
useForm
();
// 提交
const
onSubmit
=
()
=>
{
form
.
validateFields
().
then
(
validate
=>
{
if
(
validate
)
{
setLoading
(
true
);
let
obj
=
form
.
getFieldsValue
();
if
(
type
===
'add'
)
{
bindSchemeBaseMap
({
schemename
:
formObj
.
schemename
,
basemapName
:
obj
.
serverName
,
}).
then
(
res
=>
{
setLoading
(
false
);
if
(
res
.
code
===
0
)
{
form
.
resetFields
();
callBackSubmit
();
prompt
(
'success'
,
'瓦片新增成功'
);
}
else
{
prompt
(
'fail'
,
'瓦片新增失败'
);
}
});
}
else
{
handleEdit
();
}
}
});
};
const
prompt
=
(
type
,
content
)
=>
{
if
(
type
==
'success'
)
{
notification
.
success
({
message
:
'提示'
,
duration
:
3
,
description
:
content
,
});
}
else
{
notification
.
error
({
message
:
'提示'
,
duration
:
3
,
description
:
content
,
});
}
};
const
handleEdit
=
()
=>
{
let
obj
=
form
.
getFieldsValue
();
let
query
=
{
schemename
:
obj
.
schemename
,
terminalType
:
'scheme'
,
isBaseMap
:
'false'
,
jsonCfg
:
JSON
.
stringify
({
baseMap
:
[
obj
.
baseMap
],
servicename
:
obj
.
servicename
,
label
:
obj
.
label
,
url
:
obj
.
url
,
alpha
:
1
,
}),
};
SetServiceConfig
(
query
)
.
then
(
res
=>
{
setLoading
(
false
);
if
(
res
.
msg
===
'Ok'
)
{
form
.
resetFields
();
callBackSubmit
();
prompt
(
'success'
,
'方案新增成功'
);
}
else
{
prompt
(
'fail'
,
'方案新增失败'
);
}
})
.
catch
(
err
=>
{
setLoading
(
false
);
});
};
const
onFinish
=
value
=>
{};
useEffect
(()
=>
{
switch
(
type
)
{
case
'add'
:
addTile
();
break
;
case
'schemeAdd'
:
pipeNetwork
();
break
;
default
:
break
;
}
},
[
visible
]);
// 添加瓦片
const
addTile
=
()
=>
{
form
.
setFieldsValue
({
serverName
:
serviceList
[
0
],
});
};
// 获取管网及默认底图
const
pipeNetwork
=
()
=>
{
form
.
resetFields
();
let
req1
=
GettMaplayer
({
terminalType
:
'base'
,
isBaseMap
:
true
});
let
req2
=
GetVectorService
();
let
pipeArr
=
[],
baseMap
=
[];
Promise
.
all
([
req1
,
req2
]).
then
(
res
=>
{
if
(
res
[
0
].
msg
===
'Ok'
)
{
(
res
[
0
].
data
.
general
.
baseMap
.
layers
||
[]).
map
(
item
=>
{
baseMap
.
push
(
item
.
servicename
);
});
}
if
(
res
[
1
].
msg
===
'Ok'
)
{
(
res
[
1
].
data
.
VectorList
||
[]).
map
(
item
=>
{
pipeArr
.
push
(
item
.
ServiceName
.
split
(
'.'
)[
0
]);
});
}
setPipeArr
(
pipeArr
);
setBaseMap
(
baseMap
);
form
.
setFieldsValue
({
baseMap
:
baseMap
[
0
],
});
});
};
const
layout
=
{
layout
:
'horizontal'
,
labelCol
:
{
span
:
4
,
},
wrapperCol
:
{
span
:
18
,
},
};
// 选择服务名
const
handleChange
=
()
=>
{};
// 选择管网
const
handleService
=
value
=>
{
form
.
setFieldsValue
({
label
:
value
,
// url: `http://{IP}/PandaGIS/MapServer/Export?mapServerName=${value}`,
url
:
`http://{IP}/CityInterface/rest/services/MapServer.svc/
${
value
}
`
,
});
};
// 选择底图
const
handleBaseMap
=
()
=>
{};
return
(
<
Modal
title=
{
`${type === 'add' ? '添加底图' : '添加方案'}`
}
bodyStyle=
{
{
width
:
'100%'
,
minHeight
:
'100px'
}
}
style=
{
{
top
:
'150px'
}
}
width=
"700px"
destroyOnClose
maskClosable=
{
false
}
cancelText=
"取消"
okText=
"确认"
{
...
props
}
onOk=
{
()
=>
onSubmit
()
}
confirmLoading=
{
loading
}
forceRender=
{
true
}
getContainer=
{
false
}
>
{
visible
&&
(
<
Form
form=
{
form
}
{
...
layout
}
onFinish=
{
onFinish
}
>
{
type
===
'add'
?
(
<
Item
label=
"服务名"
name=
"serverName"
>
<
Select
onChange=
{
handleChange
}
>
{
serviceList
.
length
?
serviceList
.
map
((
item
,
index
)
=>
{
return
(
<
Option
key=
{
index
}
value=
{
item
}
>
{
item
}
</
Option
>
);
})
:
''
}
</
Select
>
</
Item
>
)
:
(
<>
<
Item
label=
"方案名"
name=
"schemename"
rules=
{
[{
required
:
true
,
message
:
'请输入方案名'
}]
}
>
<
Input
placeholder=
"请输入方案名"
allowClear
/>
</
Item
>
<
Item
label=
"管网"
name=
"servicename"
>
<
Select
onChange=
{
handleService
}
>
{
pipeArr
.
length
?
pipeArr
.
map
((
item
,
index
)
=>
{
return
(
<
Option
key=
{
index
}
value=
{
item
}
>
{
item
}
</
Option
>
);
})
:
''
}
</
Select
>
</
Item
>
<
Item
label=
"标签"
name=
"label"
>
<
Input
placeholder=
"请输入标签"
allowClear
/>
</
Item
>
<
Item
label=
"url"
name=
"url"
>
<
Input
placeholder=
"请输入url"
allowClear
/>
</
Item
>
<
Item
label=
"默认底图"
name=
"baseMap"
rules=
{
[{
required
:
true
,
message
:
'请选择底图'
}]
}
>
<
Select
onChange=
{
handleBaseMap
}
>
{
baseMap
.
length
?
baseMap
.
map
((
item
,
index
)
=>
{
return
(
<
Option
key=
{
index
}
value=
{
item
}
>
{
item
}
</
Option
>
);
})
:
''
}
</
Select
>
</
Item
>
</>
)
}
</
Form
>
)
}
</
Modal
>
);
};
export
default
AddModal
;
src/pages/platformCenter/gis/schemeConfig/projectMessage/components/card.jsx
View file @
50fbbb21
...
...
@@ -2,45 +2,58 @@
/* eslint-disable object-shorthand */
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
classnames
from
'classnames'
;
import
styles
from
'../../SchemeConfig.less'
;
import
{
Popconfirm
,
notification
,
Card
,
Button
,
message
}
from
'antd'
;
import
{
Popconfirm
,
notification
,
Card
,
Button
,
message
,
Tooltip
}
from
'antd'
;
import
{
unbindSchemeBaseMap
,
GettMaplayer
,
SetServiceConfig
,
deleteConfig
,
GetbaseMapschemeName
,
}
from
'@/services/webConfig/api'
;
import
{
CloseOutlined
,
PlusOutlined
}
from
'@ant-design/icons'
;
import
{
CloseOutlined
,
PlusOutlined
,
GlobalOutlined
,
BlockOutlined
}
from
'@ant-design/icons'
;
import
AddModal
from
'../AddModal'
;
import
MapScope
from
'@/components/MapScope'
;
import
{
createGuid
}
from
'@/utils/transformUtil'
;
import
AddModalBase
from
'../AddModalBase'
;
import
styles
from
'../../SchemeConfig.less'
;
const
CardData
=
props
=>
{
const
{
deletebaseMaps
=
()
=>
{},
item
}
=
props
;
const
{
deletebaseMaps
=
()
=>
{},
item
,
cardFlag
,
keepData
}
=
props
;
const
[
visible
,
setVisible
]
=
useState
(
false
);
// 弹窗
const
[
basevisible
,
setBaseVisible
]
=
useState
(
false
);
// 弹窗
const
[
flag
,
setFlag
]
=
useState
(
0
);
// 状态更新
const
[
type
,
setType
]
=
useState
(
''
);
// 弹窗类型
const
[
formObj
,
setFormObj
]
=
useState
({});
const
[
serviceList
,
setServiceList
]
=
useState
([]);
const
[
mapScopeVisible
,
setMapScopeVisible
]
=
useState
(
false
);
const
[
cardData
,
setCardData
]
=
useState
([]);
// 删除瓦片
useEffect
(()
=>
{
// GettMaplayer({ terminalType: 'base', isBaseMap: true }).then(res => {
// if (res.msg === 'Ok') {
// let arr = [];
// res.data.general.baseMap.layers.map(i => {
// arr.push(i.servicename);
// });
// }
// });
setCardData
(
keepData
);
console
.
log
(
props
.
item
);
},
[]);
},
[
cardFlag
]);
const
deletebaseMap
=
(
item
,
baseMapItem
)
=>
{
unbindSchemeBaseMap
({
schemename
:
item
.
schemename
,
basemapName
:
baseMapItem
}).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
notification
.
success
({
message
:
'提示'
,
duration
:
3
,
description
:
'底图删除成功'
,
description
:
'底图
方案
删除成功'
,
});
deletebaseMaps
();
}
else
{
notification
.
error
({
message
:
'提示'
,
duration
:
3
,
description
:
'底图删除失败'
,
description
:
'底图
方案
删除失败'
,
});
}
});
...
...
@@ -71,9 +84,53 @@ const CardData = props => {
const
onSubmit
=
prop
=>
{
setVisible
(
false
);
deletebaseMaps
();
setBaseVisible
(
false
);
};
// 增加瓦片
const
addTile
=
value
=>
{
let
serverList
=
[];
setFormObj
(
value
);
if
(
JSON
.
stringify
(
value
)
!=
'{}'
)
{
GettMaplayer
({
terminalType
:
'base'
,
isBaseMap
:
true
}).
then
(
res
=>
{
if
(
res
.
msg
===
'Ok'
)
{
res
.
data
.
general
.
baseMap
.
layers
.
map
(
item
=>
{
if
(
value
.
baseMap
.
indexOf
(
item
.
servicename
)
==
-
1
)
{
serverList
.
push
(
item
.
servicename
);
}
});
}
let
arr
=
[];
GetbaseMapschemeName
().
then
(
resdata
=>
{
if
(
resdata
.
data
.
length
)
{
resdata
.
data
.
map
(
i
=>
{
if
(
value
.
baseMap
.
indexOf
(
i
)
==
-
1
)
{
arr
.
push
(
i
);
}
});
if
(
arr
.
length
)
{
setServiceList
(
arr
);
setType
(
'add'
);
setVisible
(
true
);
}
else
{
notification
.
warning
({
message
:
'提示'
,
duration
:
3
,
description
:
'请先在底图配置-配置底图分级显示方案'
,
});
}
}
else
{
notification
.
warning
({
message
:
'提示'
,
duration
:
3
,
description
:
'请先在底图配置-配置底图分级显示方案'
,
});
}
});
});
}
};
const
addTileBase
=
value
=>
{
let
serverList
=
[];
setFormObj
(
value
);
if
(
JSON
.
stringify
(
value
)
!=
'{}'
)
{
...
...
@@ -88,7 +145,7 @@ const CardData = props => {
if
(
serverList
.
length
)
{
setServiceList
(
serverList
);
setType
(
'add'
);
setVisible
(
true
);
set
Base
Visible
(
true
);
}
else
{
notification
.
warning
({
message
:
'提示'
,
...
...
@@ -127,13 +184,16 @@ const CardData = props => {
}
});
};
const
pick
=
(
schemename
,
index
)
=>
{
const
pick
=
(
schemename
,
baseMapItem
)
=>
{
console
.
log
(
props
.
item
.
defaultOldBaseMap
);
let
i
=
props
.
item
.
defaultOldBaseMap
.
indexOf
(
baseMapItem
);
console
.
log
(
i
);
SetServiceConfig
({
schemename
:
schemename
,
terminalType
:
'scheme'
,
isBaseMap
:
false
,
jsonCfg
:
JSON
.
stringify
({
defaultBaseMap
:
i
ndex
,
defaultBaseMap
:
i
,
}),
}).
then
(
res
=>
{
if
(
res
.
msg
===
'Ok'
)
{
...
...
@@ -167,7 +227,7 @@ const CardData = props => {
</
Popconfirm
>
{
' '
}
</
a
>
}
style=
{
{
width
:
3
0
0
}
}
style=
{
{
width
:
3
6
0
}
}
>
<
p
>
<
span
className=
{
styles
.
schemeName
}
>
管网
</
span
>
{
props
.
item
.
servicename
}
...
...
@@ -182,31 +242,49 @@ const CardData = props => {
</Button>
</div> */
}
<
div
className=
{
styles
.
schemeItem
}
>
<
span
className=
{
styles
.
schemeName
}
>
底图
</
span
>
{
/* <span className={styles.schemeName}>底图方案</span> */
}
<
Button
className=
{
styles
.
schemeBtn
}
onClick=
{
()
=>
addTile
(
props
.
item
)
}
>
{
' '
}
<
PlusOutlined
/>
添加瓦片
<
BlockOutlined
/>
添加底图方案
</
Button
>
<
Button
className=
{
styles
.
schemeBtn
}
onClick=
{
()
=>
addTileBase
(
props
.
item
)
}
>
{
' '
}
<
GlobalOutlined
/>
添加底图
</
Button
>
</
div
>
<
div
style=
{
{
overflowY
:
'scroll'
,
maxH
eight
:
'11.4rem'
}
}
>
<
div
style=
{
{
overflowY
:
'scroll'
,
h
eight
:
'11.4rem'
}
}
>
{
props
.
item
.
baseMap
&&
props
.
item
.
baseMap
.
length
?
props
.
item
.
baseMap
.
map
((
baseMapItem
,
baseindex
)
=>
{
return
(
<
div
className=
{
styles
.
mapItem
}
key=
{
baseindex
}
>
<
div
onClick=
{
()
=>
pick
(
props
.
item
.
schemename
,
base
index
)
}
onClick=
{
()
=>
pick
(
props
.
item
.
schemename
,
base
MapItem
)
}
className=
{
classnames
({
[
styles
.
defaultTile
]:
true
,
[
styles
.
activeTile
]:
baseindex
==
props
.
item
.
defaultBaseMap
,
})
}
>
默认
{
cardData
.
indexOf
(
baseMapItem
)
==
-
1
?
(
<
BlockOutlined
style=
{
{
marginTop
:
'5px'
}
}
/>
)
:
(
<
GlobalOutlined
style=
{
{
marginTop
:
'5px'
}
}
/>
)
}
</
div
>
<
div
className=
{
styles
.
mapText
}
>
<
Tooltip
title=
{
baseMapItem
}
>
{
baseMapItem
}
</
Tooltip
>
</
div
>
<
div
className=
{
styles
.
mapText
}
>
{
baseMapItem
}
</
div
>
<
div
className=
{
styles
.
mapIcon
}
>
<
Popconfirm
title=
"是否删除该底图?"
title=
{
cardData
.
indexOf
(
baseMapItem
)
==
-
1
?
(
<
span
>
是否删除该底图方案?
</
span
>
)
:
(
<
span
>
是否删除该底图?
</
span
>
)
}
okText=
"确认"
cancelText=
"取消"
onConfirm=
{
()
=>
{
...
...
@@ -230,6 +308,14 @@ const CardData = props => {
serviceList=
{
serviceList
}
formObj=
{
formObj
}
/>
<
AddModalBase
visible=
{
basevisible
}
onCancel=
{
()
=>
setBaseVisible
(
false
)
}
callBackSubmit=
{
onSubmit
}
type=
{
type
}
serviceList=
{
serviceList
}
formObj=
{
formObj
}
/>
<
MapScope
mapId=
{
createGuid
()
}
visible=
{
mapScopeVisible
}
...
...
src/pages/platformCenter/gis/schemeConfig/projectMessage/projectMessage.jsx
View file @
50fbbb21
...
...
@@ -2,14 +2,14 @@
* @Description:
* @Author: leizhe
* @Date: 2022-01-13 10:47:32
* @LastEditTime: 2022-0
4-22 11:45:53
* @LastEditTime: 2022-0
6-02 18:06:20
* @LastEditors: leizhe
*/
/* eslint-disable indent */
import
{
Button
,
Spin
}
from
'antd'
;
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
styles
from
'../SchemeConfig.less'
;
import
{
GetMaplayerByTerminalType
}
from
'@/services/webConfig/api'
;
import
{
GetMaplayerByTerminalType
,
GettMaplayer
}
from
'@/services/webConfig/api'
;
import
AddModal
from
'./AddModal'
;
import
Cards
from
'./components/card'
;
const
VectorData
=
props
=>
{
...
...
@@ -17,14 +17,17 @@ const VectorData = props => {
const
[
tileData
,
setTileData
]
=
useState
([]);
// 页面初始化数据
const
[
visible
,
setVisible
]
=
useState
(
false
);
// 弹窗
const
[
flag
,
setFlag
]
=
useState
(
0
);
// 状态更新
const
[
cardFlag
,
setCardFlag
]
=
useState
(
false
);
// 状态更新
const
[
type
,
setType
]
=
useState
(
''
);
// 弹窗类型
const
[
formObj
,
setFormObj
]
=
useState
({});
const
[
keepData
,
setKeepData
]
=
useState
([]);
const
onSubmit
=
prop
=>
{
setVisible
(
false
);
setFlag
(
flag
+
1
);
};
const
onDeletebaseMap
=
value
=>
{
setCardFlag
(
false
);
setFlag
(
flag
+
1
);
};
const
handleAdd
=
()
=>
{
...
...
@@ -34,22 +37,50 @@ const VectorData = props => {
useEffect
(()
=>
{
renderTile
();
},
[
flag
]);
// 获取瓦片数据配置数据
const
renderTile
=
()
=>
{
setTreeLoading
(
true
);
GetMaplayerByTerminalType
({
terminalType
:
'scheme'
,
isBaseMap
:
false
,
}).
then
(
res
=>
{
console
.
log
(
'res'
,
res
);
if
(
res
.
msg
===
'Ok'
)
{
}).
then
(
resdata
=>
{
if
(
resdata
.
msg
===
'Ok'
)
{
setTreeLoading
(
false
);
setTileData
(
res
.
data
.
scheme
.
optionalLayer
.
layers
);
GettMaplayer
({
terminalType
:
'base'
,
isBaseMap
:
true
}).
then
(
res
=>
{
if
(
res
.
msg
===
'Ok'
)
{
resdata
.
data
.
scheme
.
optionalLayer
.
layers
.
map
((
j
,
index
)
=>
{
let
arr
=
[];
res
.
data
.
general
.
baseMap
.
layers
.
map
(
i
=>
{
arr
.
push
(
i
.
servicename
);
});
setKeepData
(
arr
);
let
data
=
[];
let
aa
=
[];
j
.
baseMap
.
map
(
k
=>
{
if
(
arr
.
indexOf
(
k
)
!=
-
1
)
{
data
.
push
(
k
);
}
else
{
aa
.
push
(
k
);
}
});
let
bb
=
aa
.
concat
(
data
);
let
i
=
bb
.
indexOf
(
j
.
baseMap
[
j
.
defaultBaseMap
]);
resdata
.
data
.
scheme
.
optionalLayer
.
layers
[
index
].
defaultOldBaseMap
=
j
.
baseMap
;
resdata
.
data
.
scheme
.
optionalLayer
.
layers
[
index
].
baseMap
=
bb
;
resdata
.
data
.
scheme
.
optionalLayer
.
layers
[
index
].
defaultBaseMap
=
i
;
});
setTileData
(
resdata
.
data
.
scheme
.
optionalLayer
.
layers
);
}
});
}
else
{
setTreeLoading
(
false
);
}
});
};
useEffect
(()
=>
{
setCardFlag
(
true
);
},
[
tileData
]);
return
(
<>
<
div
className=
{
styles
.
tileBtn
}
>
...
...
@@ -63,8 +94,9 @@ const VectorData = props => {
</
Button
>
</
div
>
<
Spin
tip=
"loading..."
spinning=
{
treeLoading
}
>
<
div
style=
{
{
height
:
'calc(100vh - 2
30
px)'
,
width
:
'100%'
}
}
>
<
div
style=
{
{
height
:
'calc(100vh - 2
16
px)'
,
width
:
'100%'
}
}
>
<
div
className=
{
styles
.
cardsList
}
>
{
/* {console.log(tileData)} */
}
{
tileData
&&
tileData
.
length
?
tileData
.
map
((
item
,
index
)
=>
{
return
(
...
...
@@ -75,7 +107,12 @@ const VectorData = props => {
offset=
{
2
}
style=
{
{
marginBottom
:
'1rem'
}
}
>
<
Cards
item=
{
item
}
deletebaseMaps=
{
onDeletebaseMap
}
/>
<
Cards
item=
{
item
}
cardFlag=
{
cardFlag
}
deletebaseMaps=
{
onDeletebaseMap
}
keepData=
{
keepData
}
/>
</
div
>
);
})
...
...
src/pages/platformCenter/gis/schemeConfig/solutionConfig/solutionConfig.jsx
View file @
50fbbb21
This diff is collapsed.
Click to expand it.
src/services/webConfig/api.js
View file @
50fbbb21
...
...
@@ -149,8 +149,13 @@ export const GetMaplayerByTerminalType = query =>
// 获取全部
export
const
GettMaplayer
=
query
=>
get
(
`
${
PUBLISH_SERVICE
}
/Maplayer/GetMaplayer`
,
query
);
// 添加底图方案
export
const
SetBaseMapschemeName
=
param
=>
post
(
`
${
PUBLISH_SERVICE
}
/Maplayer/SetBaseMapschemeName`
,
param
);
// 设置底图数据
export
const
SetServiceConfig
=
query
=>
get
(
`
${
PUBLISH_SERVICE
}
/Maplayer/SetServiceConfig`
,
query
);
export
const
SetServiceConfig
=
query
=>
post
(
`
${
PUBLISH_SERVICE
}
/Maplayer/SetServiceConfig`
,
query
);
// 获取方矢量数据列表
export
const
GetVectorService
=
()
=>
...
...
@@ -165,7 +170,8 @@ export const publisService = (query, timeout) =>
get
(
`
${
PANDA_GIS
}
/MetaData/D_Publish_GS_Service`
,
query
,
timeout
);
// 解决方案名称
export
const
getSolutionList
=
query
=>
get
(
`
${
PANDA_GIS
}
/MetaData/W5_GetSolutionList`
,
query
);
export
const
getSolutionList
=
query
=>
get
(
`
${
PUBLISH_SERVICE
}
/PlatformCenter/GetSolutionList`
,
query
);
// 删除元数据
export
const
deleteVectorService
=
query
=>
...
...
@@ -185,10 +191,19 @@ export const bindSchemeBaseMap = query =>
// 删除瓦片
export
const
unbindSchemeBaseMap
=
query
=>
get
(
`
${
PUBLISH_SERVICE
}
/Maplayer/UnBindSchemeBaseMap`
,
query
);
// 删除底图分级显示方案
export
const
DeletMapServicename
=
query
=>
get
(
`
${
PUBLISH_SERVICE
}
/Maplayer/DeletMapServicename`
,
query
);
// 获取底图分级显示方案名
export
const
GetbaseMapschemeName
=
query
=>
get
(
`
${
PUBLISH_SERVICE
}
/Maplayer/GetbaseMapschemeName`
,
query
);
// 设置web状态
export
const
setServiceType
=
query
=>
get
(
`
${
PANDA_GIS
}
/MetaData/SetServiceType`
,
query
);
// 设置web的默认方案
export
const
SetDefaultsSchemeName
=
param
=>
post
(
`
${
PUBLISH_SERVICE
}
/Maplayer/SetDefaultsSchemeName`
,
param
);
// 获取角色
export
const
getUserRelationList
=
query
=>
get
(
`
${
CITY_SERVICE
}
/OMS.svc/WebGIS_GetUserRelationList`
,
query
);
...
...
@@ -290,3 +305,6 @@ export const GetGridSetList = param =>
export
const
GetCustomBaseMapByName
=
param
=>
get
(
`
${
CITY_SERVICE
}
/MapServer.svc/GetCustomBaseMapByName?_version=9999`
,
param
);
export
const
DragSingleWebsite
=
param
=>
get
(
`
${
CITY_SERVICE
}
/OMS.svc/Web4_DragSingleWebsite?_version=9999&_dc=1653360044919`
,
param
);
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment