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
787a7bda
Commit
787a7bda
authored
Sep 23, 2021
by
皮倩雯
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
宿主管理增加域名端口验证,连接状态显示,界面优化
parent
0bf2a783
Pipeline
#35121
skipped with stages
Changes
13
Pipelines
1
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
421 additions
and
66 deletions
+421
-66
正确.svg
src/assets/images/icons/正确.svg
+16
-0
AddModal.jsx
src/pages/platformCenter/bsmanager/maintenance/AddModal.jsx
+0
-0
maintenance.jsx
...ages/platformCenter/bsmanager/maintenance/maintenance.jsx
+215
-0
maintenance.less
...ges/platformCenter/bsmanager/maintenance/maintenance.less
+59
-0
AddModal.jsx
src/pages/platformCenter/bsmanager/workOrder/AddModal.jsx
+1
-1
incident.jsx
src/pages/platformCenter/bsmanager/workOrder/incident.jsx
+1
-1
IotConfig.jsx
src/pages/platformCenter/hostmanager/IotConfig/IotConfig.jsx
+76
-28
IotConfig.less
...pages/platformCenter/hostmanager/IotConfig/IotConfig.less
+2
-0
BaseConfig.jsx
...ages/platformCenter/hostmanager/baseConfig/BaseConfig.jsx
+12
-12
messageConfig.jsx
...latformCenter/hostmanager/messageConfig/messageConfig.jsx
+10
-7
ProxyConfig.jsx
...es/platformCenter/hostmanager/proxyConfig/ProxyConfig.jsx
+19
-17
ProxyConfig.less
...s/platformCenter/hostmanager/proxyConfig/ProxyConfig.less
+4
-0
config.js
src/routes/config.js
+6
-0
No files found.
src/assets/images/icons/正确.svg
0 → 100644
View file @
787a7bda
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.3.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
version=
"1.1"
id=
"图层_1"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
x=
"0px"
y=
"0px"
viewBox=
"0 0 14 14"
style=
"enable-background:new 0 0 14 14;"
xml:space=
"preserve"
>
<style
type=
"text/css"
>
.st0{fill:#27DA99;}
</style>
<g>
<g>
<path
class=
"st0"
d=
"M7,0C5.143,0,3.363,0.738,2.05,2.05C0.738,3.363,0,5.143,0,7c0,3.866,3.134,7,7,7c3.866,0,7-3.134,7-7
C14,3.134,10.866,0,7,0L7,0z M10.443,5.285L7.151,9.726c-0.229,0.31-0.761,0.532-1.139,0.271L3.645,8.363
c-0.361-0.25-0.551-0.648-0.3-1.037c0.208-0.324,0.778-0.522,1.141-0.271L6.232,8.26c0.924-1.247,1.847-2.493,2.771-3.739
C9.599,3.716,11.045,4.473,10.443,5.285L10.443,5.285z M10.443,5.285"
/>
</g>
</g>
</svg>
src/pages/platformCenter/bsmanager/maintenance/AddModal.jsx
0 → 100644
View file @
787a7bda
This diff is collapsed.
Click to expand it.
src/pages/platformCenter/bsmanager/maintenance/maintenance.jsx
0 → 100644
View file @
787a7bda
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
styles
from
'./maintenance.less'
import
{
Form
,
Card
,
Space
,
Table
,
Popconfirm
,
Spin
,
Tooltip
,
notification
,
Tree
,
Button
,
}
from
'antd'
;
import
{
DoubleLeftOutlined
,
DoubleRightOutlined
,
PlusSquareFilled
,
RightOutlined
,
EditTwoTone
,
DeleteOutlined
,
OrderedListOutlined
,
ApartmentOutlined
,
DesktopOutlined
,
PlusOutlined
}
from
'@ant-design/icons'
;
import
AddModal
from
'./AddModal'
const
maintenance
=
()
=>
{
const
[
addVisible
,
setAddVisible
]
=
useState
(
false
)
const
[
type
,
setType
]
=
useState
(
''
)
const
[
formObj
,
setFormObj
]
=
useState
(
''
)
const
[
tableData
,
setTableData
]
=
useState
([])
const
columns
=
[
{
title
:
'业务名称'
,
dataIndex
:
'businessName'
,
key
:
'businessName'
,
width
:
100
,
align
:
'center'
,
},
{
title
:
'业务类型'
,
dataIndex
:
'businessType'
,
key
:
'businessType'
,
width
:
100
,
ellipsis
:
true
,
align
:
'center'
,
},
{
title
:
'执行周期'
,
dataIndex
:
'docycle'
,
key
:
'docycle'
,
width
:
100
,
align
:
'center'
,
},
{
title
:
'台账名称'
,
dataIndex
:
'accountName'
,
key
:
'accountName'
,
width
:
200
,
ellipsis
:
true
,
align
:
'center'
,
},
{
title
:
'反馈名称'
,
dataIndex
:
'feedbackName'
,
key
:
'feedbackName'
,
width
:
200
,
align
:
'center'
,
},
{
title
:
'台账过滤条件'
,
dataIndex
:
'filterCondition'
,
key
:
'filterCondition'
,
width
:
200
,
ellipsis
:
true
,
align
:
'center'
,
},
{
title
:
'是否送审'
,
dataIndex
:
'isSubmit'
,
key
:
'isSubmit'
,
width
:
100
,
align
:
'center'
,
},
{
title
:
'执行角色'
,
dataIndex
:
'doRole'
,
key
:
'doRole'
,
width
:
200
,
ellipsis
:
true
,
align
:
'center'
,
},
{
title
:
'预生成天数'
,
dataIndex
:
'produceDays'
,
key
:
'produceDays'
,
width
:
100
,
align
:
'center'
,
},
{
title
:
'在线任务量'
,
dataIndex
:
'onLines'
,
key
:
'onLines'
,
width
:
100
,
ellipsis
:
true
,
align
:
'center'
,
},
{
title
:
'启停'
,
dataIndex
:
'doNot'
,
key
:
'doNot'
,
width
:
100
,
align
:
'center'
,
},
{
title
:
'操作'
,
key
:
'action'
,
align
:
'center'
,
rener
:
record
=>
{
<
Space
size
=
"middle"
>
<
Tooltip
title=
"修改"
>
<
EditTwoTone
onClick=
{
()
=>
editEventType
(
record
)
}
style=
{
{
fontSize
:
'16px'
}
}
/>
</
Tooltip
>
<
Tooltip
title=
"删除"
>
<
Popconfirm
placement=
"bottomRight"
title=
{
<
p
>
是否确认删除?
</
p
>
}
okText=
"确认"
cancelText=
"取消"
onConfirm=
{
()
=>
deleteEventType
(
record
)
}
>
<
DeleteOutlined
style=
{
{
fontSize
:
'16px'
,
color
:
'#e86060'
}
}
/>
</
Popconfirm
>
</
Tooltip
>
<
/
Space
>
}
}
]
const add =()=
>
{
setAddVisible
(
true
)
setType
(
'add'
)
}
const editEventType =record=
>
{
setAddVisible
(
true
)
setType
(
'edit'
)
setFormObj
(
record
);
}
const deleteEventType =record=
>
{
}
const onSubmit =()=
>
{
setAddVisible
(
false
)
}
return (
<
div
className=
{
styles
.
maintenanceContainer
}
>
<
div
className=
{
styles
.
contentContainers
}
>
<
div
style=
{
{
height
:
'50px'
,
backgroundColor
:
'white'
}
}
>
<
span
style=
{
{
float
:
'right'
,
marginRight
:
'10px'
}
}
>
<
Button
icon=
{
<
PlusOutlined
className=
{
styles
.
icon
}
/>
}
onClick=
{
add
}
style=
{
{
marginLeft
:
'30px'
,
verticalAlign
:
'middle'
,
marginTop
:
'10px'
}
}
>
添加
</
Button
>
</
span
>
</
div
>
<
Table
// rowClassName={setRowClassName}
size=
"small"
rowKey=
'ID'
bordered
onRow=
{
record
=>
{
return
{
onDoubleClick
:
event
=>
{
event
.
stopPropagation
();
editEventType
(
record
)
},
//双击
};
}
}
columns=
{
columns
}
dataSource=
{
tableData
}
scroll=
{
{
y
:
'calc(100vh - 155px)'
}
}
pagination=
{
{
showTotal
:
(
total
,
range
)
=>
`第${range[0]}-${range[1]} 条/共 ${total} 条`
,
pageSizeOptions
:
[
10
,
20
,
50
,
100
],
defaultPageSize
:
20
,
showQuickJumper
:
true
,
showSizeChanger
:
true
,
}
}
/>
{
/* 添加事件 */
}
<
AddModal
visible=
{
addVisible
}
type=
{
type
}
onCancel=
{
()
=>
setAddVisible
(
false
)
}
callBackSubmit=
{
onSubmit
}
formObj=
{
formObj
}
/>
</
div
>
</
div
>
)
};
export default maintenance
\ No newline at end of file
src/pages/platformCenter/bsmanager/maintenance/maintenance.less
0 → 100644
View file @
787a7bda
.maintenanceContainer{
.ant-card-body {
padding: 12px 24px 24px 24px;
}
.linkDrowp{
position: absolute;
top: 0px;
left: 92.5%;
width: 1rem;
height: 100%;
display: flex;
align-items: center;
}
.listItem{
display: flex;
justify-content: space-between;
font-size: 14px;
font-weight: 400;
color: #414E65;
cursor: pointer;
line-height: 28px;
align-items: center;
padding: 8px 14px;
}
.ant-btn .anticon.anticon-plus > svg, .ant-btn .anticon.anticon-minus > svg {
margin-top: -5px;
}
.pickItem{
background-color: #F5F6F9;
}
}
.formData{
height: 38rem;
overflow-y: scroll;
.ant-form-item-label > label.ant-form-item-required:not(.ant-form-item-required-mark-optional)::before{
display: none;
}
.formData_label{
display: flex;
align-items: center;
}
.filed_listItem{
display: flex;
height: 3.6rem;
.ant-btn-icon-only {
width: 32px;
height: 32px;
/* padding: 2.4px 0; */
font-size: 16px;
border-radius: 2px;
display: flex;
align-items: center;
justify-content: center;
}
}
}
\ No newline at end of file
src/pages/platformCenter/bsmanager/workOrder/AddModal.jsx
View file @
787a7bda
...
@@ -651,7 +651,7 @@ const AddModal = props => {
...
@@ -651,7 +651,7 @@ const AddModal = props => {
{
{
validator
:
(
rule
,
value
)
=>
{
validator
:
(
rule
,
value
)
=>
{
if
(
form
.
getFieldsValue
().
BusinessType
==
''
)
{
if
(
form
.
getFieldsValue
().
BusinessType
==
''
)
{
return
Promise
.
reject
(
'
摘要字段必选
'
)
return
Promise
.
reject
(
'
业务类型必填
'
)
}
}
return
Promise
.
resolve
();
return
Promise
.
resolve
();
}
}
...
...
src/pages/platformCenter/bsmanager/workOrder/incident.jsx
View file @
787a7bda
...
@@ -214,7 +214,7 @@ const incident = () => {
...
@@ -214,7 +214,7 @@ const incident = () => {
{
{
title
:
'操作'
,
title
:
'操作'
,
key
:
'action'
,
key
:
'action'
,
alig
i
n
:
'center'
,
align
:
'center'
,
render
:
record
=>
(
render
:
record
=>
(
<
Space
size=
"middle"
>
<
Space
size=
"middle"
>
...
...
src/pages/platformCenter/hostmanager/IotConfig/IotConfig.jsx
View file @
787a7bda
import
React
,
{
useEffect
,
useState
}
from
'react'
import
React
,
{
useEffect
,
useState
}
from
'react'
import
{
Card
,
Form
,
Input
,
Button
,
Select
,
message
,
Divider
}
from
'antd'
import
{
Card
,
Form
,
Input
,
Button
,
Select
,
message
,
Divider
,
Row
,
Col
,
Spin
}
from
'antd'
import
styles
from
'./IotConfig.less'
import
styles
from
'./IotConfig.less'
import
Internet
from
'../../../../assets/images/icons/物联.svg'
;
import
Internet
from
'../../../../assets/images/icons/物联.svg'
;
import
EMQ
from
'../../../../assets/images/icons/EMQ.svg'
;
import
EMQ
from
'../../../../assets/images/icons/EMQ.svg'
;
import
Yes
from
'../../../../assets/images/icons/正确.svg'
;
import
{
GetIOTPlatformVersion
,
GetTCPConfigInfo
,
PingIOTPlatform
,
SaveTcpAddress
}
from
'@/services/platform/hostmanager'
import
{
GetIOTPlatformVersion
,
GetTCPConfigInfo
,
PingIOTPlatform
,
SaveTcpAddress
}
from
'@/services/platform/hostmanager'
import
{
CloseCircleFilled
}
from
'@ant-design/icons'
;
const
layout
=
{
const
layout
=
{
labelCol
:
{
span
:
3
},
labelCol
:
{
span
:
4
},
wrapperCol
:
{
span
:
2
1
},
wrapperCol
:
{
span
:
2
0
},
};
};
const
tailLayout
=
{
const
tailLayout
=
{
wrapperCol
:
{
offset
:
11
,
span
:
13
},
wrapperCol
:
{
offset
:
9
,
span
:
15
},
};
};
const
IotConfig
=
()
=>
{
const
IotConfig
=
()
=>
{
const
[
loading
,
setLoading
]
=
useState
(
false
);
// 加载
const
[
show1
,
setShow1
]
=
useState
(
'none'
)
const
[
show2
,
setShow2
]
=
useState
(
'none'
)
const
[
currentIotVersion
,
setCurrentIotVersion
]
=
useState
({
data
:
""
});
const
[
currentIotVersion
,
setCurrentIotVersion
]
=
useState
({
data
:
""
});
const
[
currentIotConfig
,
setCurrentIotConfig
]
=
useState
({
const
[
currentIotConfig
,
setCurrentIotConfig
]
=
useState
({
TcpAddress
:
""
,
TcpAddress
:
""
,
...
@@ -67,33 +70,58 @@ const IotConfig = () => {
...
@@ -67,33 +70,58 @@ const IotConfig = () => {
console
.
log
(
obj
)
console
.
log
(
obj
)
form
.
setFieldsValue
(
obj
);
form
.
setFieldsValue
(
obj
);
setCurrentIotConfig
(
val
=>
({
...
val
,
...
obj
}));
setCurrentIotConfig
(
val
=>
({
...
val
,
...
obj
}));
setLoading
(
true
)
PingIOTPlatform
({
ip
:
obj
.
IotAddress
}).
then
(
res
=>
{
setLoading
(
false
)
if
(
res
.
code
===
0
)
{
setShow1
(
'block'
)
setShow2
(
'none'
)
}
else
{
setShow1
(
'none'
)
setShow2
(
'block'
)
}
}
)
}
}
}
}
)
)
}
}
const
PingIot
=
({
ip
,
values
})
=>
{
const
PingIot
=
({
ip
,
values
})
=>
{
PingIOTPlatform
({
ip
:
ip
}).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
SaveIotConfig
({
SaveIotConfig
({
tcpAddress
:
values
.
TcpAddress
,
tcpAddress
:
values
.
TcpAddress
,
iotAddress
:
values
.
IotAddress
,
iotAddress
:
values
.
IotAddress
,
sslSafe
:
values
.
SSLSafe
sslSafe
:
values
.
SSLSafe
})
})
}
const
PingIot1
=
()
=>
{
setLoading
(
true
)
let
aa
=
form
.
getFieldsValue
().
IotAddress
PingIOTPlatform
({
ip
:
aa
}).
then
(
res
=>
{
setLoading
(
false
)
if
(
res
.
code
===
0
)
{
setShow1
(
'block'
)
setShow2
(
'none'
)
message
.
success
(
"连接成功!"
);
}
else
{
}
else
{
message
.
info
(
"物联平台服务器连接异常!"
);
setShow1
(
'none'
)
setShow2
(
'block'
)
message
.
error
(
res
.
msg
);
}
}
}
}
)
)
}
}
const
SaveIotConfig
=
(
config
)
=>
{
const
SaveIotConfig
=
(
config
)
=>
{
SaveTcpAddress
(
config
).
then
(
setLoading
(
true
)
res
=>
{
SaveTcpAddress
(
config
).
then
(
res
=>
{
setLoading
(
false
)
if
(
res
.
code
===
0
)
{
if
(
res
.
code
===
0
)
{
message
.
info
(
'配置保存成功'
);
message
.
info
(
'配置保存成功'
);
}
else
{
message
.
error
(
res
.
msg
);
}
}
}
}
)
)
...
@@ -103,7 +131,7 @@ const IotConfig = () => {
...
@@ -103,7 +131,7 @@ const IotConfig = () => {
return
(
return
(
<
div
className=
{
styles
.
iot_container
}
>
<
div
className=
{
styles
.
iot_container
}
>
<
Card
title=
{
`物联平台${currentIotVersion.data ? `
[
$
{
currentIotVersion
.
data
}]
` : ""}`
}
style=
{
{
width
:
"100%"
,
height
:
'calc(100vh - 130px)'
}
}
>
<
Card
title=
{
`物联平台${currentIotVersion.data ? `
[
$
{
currentIotVersion
.
data
}]
` : ""}`
}
style=
{
{
width
:
"100%"
,
height
:
'calc(100vh - 130px)'
}
}
>
<
Spin
spinning=
{
loading
}
tip=
"loading"
>
<
Form
<
Form
{
...
layout
}
{
...
layout
}
form=
{
form
}
form=
{
form
}
...
@@ -112,48 +140,68 @@ const IotConfig = () => {
...
@@ -112,48 +140,68 @@ const IotConfig = () => {
onFinish=
{
onFinish
}
onFinish=
{
onFinish
}
onFinishFailed=
{
onFinishFailed
}
onFinishFailed=
{
onFinishFailed
}
>
>
<
div
style=
{
{
marginTop
:
'10px'
,
display
:
'flex'
,
alignItems
:
'center'
,
marginLeft
:
'15px'
}
}
>
<
div
style=
{
{
marginTop
:
'10px'
,
display
:
'flex'
,
alignItems
:
'center'
,
marginLeft
:
'15px'
}
}
>
<
img
src=
{
Internet
}
style=
{
{
height
:
'16px'
}
}
alt=
""
/><
span
style=
{
{
marginLeft
:
'10px'
,
fontWeight
:
'bold'
}
}
>
物联平台
</
span
>
<
img
src=
{
Internet
}
style=
{
{
height
:
'16px'
}
}
alt=
""
/><
span
style=
{
{
marginLeft
:
'10px'
,
fontWeight
:
'bold'
}
}
>
物联平台
</
span
>
</
div
>
</
div
>
<
Divider
/>
<
Divider
/>
<
Row
>
<
Col
span=
{
18
}
>
<
Form
.
Item
<
Form
.
Item
label=
"服务器
地址(平台)"
label=
"服务
地址(平台)"
name=
"IotAddress"
name=
"IotAddress"
rules=
{
[{
required
:
true
,
pattern
:
new
RegExp
(
/^
(([
1-9
]?\d
|1
\d
{2}|2
[
0-4
]\d
|25
[
0-5
])\.)
{3}
([
1-9
]?\d
|1
\d
{2}|2
[
0-4
]\d
|25
[
0-5
])
$/
,
"g"
),
message
:
'请输入正确的IP例如:192.168.12.231'
}]
}
rules=
{
[{
required
:
true
,
pattern
:
new
RegExp
(
/^
(([
1-9
]?\d
|1
\d
{2}|2
[
0-4
]\d
|25
[
0-5
])\.)
{3}
([
1-9
]?\d
|1
\d
{2}|2
[
0-4
]\d
|25
[
0-5
])
$/
,
"g"
),
message
:
'请输入正确的IP例如:192.168.12.231'
}]
}
>
>
<
Input
style=
{
{
width
:
'94%'
}
}
/>
<
Input
style=
{
{
width
:
'95%'
}
}
/>
</
Form
.
Item
>
</
Form
.
Item
>
<
div
style=
{
{
marginTop
:
'40px'
,
display
:
'flex'
,
alignItems
:
'center'
,
marginLeft
:
'15px'
}
}
>
</
Col
>
<
Col
span=
{
3
}
>
<
Button
type=
"primary"
onClick=
{
()
=>
PingIot1
()
}
>
连接
</
Button
>
</
Col
>
<
Col
span=
{
3
}
>
<
span
style=
{
{
display
:
show1
}
}
><
img
src=
{
Yes
}
style=
{
{
height
:
'32px'
,
marginRight
:
'20px'
}
}
alt=
""
/>
已连接
</
span
>
<
span
style=
{
{
display
:
show2
}
}
><
CloseCircleFilled
style=
{
{
fontSize
:
'32px'
,
marginRight
:
'20px'
}
}
/>
未连接
</
span
>
</
Col
>
<
div
style=
{
{
marginTop
:
'40px'
,
display
:
'flex'
,
alignItems
:
'center'
,
marginLeft
:
'15px'
}
}
>
<
img
src=
{
EMQ
}
style=
{
{
height
:
'16px'
}
}
alt=
""
/><
span
style=
{
{
marginLeft
:
'10px'
,
fontWeight
:
'bold'
}
}
>
EMQ
</
span
>
<
img
src=
{
EMQ
}
style=
{
{
height
:
'16px'
}
}
alt=
""
/><
span
style=
{
{
marginLeft
:
'10px'
,
fontWeight
:
'bold'
}
}
>
EMQ
</
span
>
</
div
>
</
div
>
<
Divider
/>
<
Divider
/>
<
Col
span=
{
18
}
>
<
Form
.
Item
<
Form
.
Item
label=
"服务器
地址(EMQ)"
label=
"服务
地址(EMQ)"
name=
"TcpAddress"
name=
"TcpAddress"
rules=
{
[{
required
:
true
,
message
:
'请输入域名(IP):端口,例如:192.168.19.102:8131'
}]
}
rules=
{
[{
required
:
true
,
pattern
:
new
RegExp
(
/^.*:.*$/
),
message
:
'请输入正确的IP:端口'
}]
}
>
>
<
Input
style=
{
{
width
:
'94%'
}
}
/>
<
Input
style=
{
{
width
:
'95%'
}
}
/>
</
Form
.
Item
>
</
Form
.
Item
>
</
Col
>
<
Col
span=
{
6
}
>
</
Col
>
<
Col
span=
{
18
}
>
<
Form
.
Item
<
Form
.
Item
name=
"SSLSafe"
name=
"SSLSafe"
label=
"SSL(EMQ)"
label=
"SSL(EMQ)"
rules=
{
[{
required
:
true
,
message
:
'请选择是否!'
}]
}
rules=
{
[{
required
:
true
,
message
:
'请选择是否!'
}]
}
>
>
<
Select
placeholder=
"请选择是否!"
style=
{
{
width
:
'94%'
}
}
>
<
Select
placeholder=
"请选择是否!"
style=
{
{
width
:
'95%'
}
}
>
<
Option
value=
"0"
>
是
</
Option
>
<
Option
value=
"0"
>
是
</
Option
>
<
Option
value=
"1"
>
否
</
Option
>
<
Option
value=
"1"
>
否
</
Option
>
</
Select
>
</
Select
>
</
Form
.
Item
>
</
Form
.
Item
>
</
Col
>
<
Col
span=
{
6
}
>
</
Col
>
<
Col
span=
{
24
}
>
<
Form
.
Item
{
...
tailLayout
}
>
<
Form
.
Item
{
...
tailLayout
}
>
<
Button
type=
"primary"
htmlType=
"submit"
disabled=
{
currentIotConfig
.
TcpAddress
.
length
>
0
?
0
:
1
}
>
<
Button
type=
"primary"
htmlType=
"submit"
disabled=
{
currentIotConfig
.
TcpAddress
.
length
>
0
?
0
:
1
}
>
保存连接
保存
</
Button
>
</
Button
>
</
Form
.
Item
>
</
Form
.
Item
>
</
Col
>
</
Row
>
</
Form
>
</
Form
>
</
Spin
>
</
Card
>
</
Card
>
</
div
>
</
div
>
)
)
...
...
src/pages/platformCenter/hostmanager/IotConfig/IotConfig.less
View file @
787a7bda
...
@@ -9,5 +9,6 @@
...
@@ -9,5 +9,6 @@
width: 100%;
width: 100%;
height: 20px;
height: 20px;
margin-bottom: 10px;
margin-bottom: 10px;
}
}
}
}
\ No newline at end of file
src/pages/platformCenter/hostmanager/baseConfig/BaseConfig.jsx
View file @
787a7bda
...
@@ -55,14 +55,14 @@ const BaseConfig = () => {
...
@@ -55,14 +55,14 @@ const BaseConfig = () => {
</
div
>
</
div
>
<
Divider
/>
<
Divider
/>
<
Row
>
<
Row
>
<
Col
span=
{
2
}
>
<
Col
span=
{
3
}
>
<
span
style=
{
{
marginLeft
:
'27px'
,
lineHeight
:
'32px'
,
color
:
'gray'
}
}
>
站点编号
</
span
>
<
span
style=
{
{
marginLeft
:
'27px'
,
lineHeight
:
'32px'
,
color
:
'gray'
}
}
>
站点编号
</
span
>
</
Col
>
</
Col
>
<
Col
span=
{
2
2
}
>
<
Col
span=
{
2
1
}
>
{
{
currentSiteInfo
?
<
Input
value=
{
currentSiteInfo
}
disabled=
{
true
}
/>
currentSiteInfo
?
<
Input
value=
{
currentSiteInfo
}
disabled=
{
true
}
style=
{
{
width
:
'80%'
}
}
/>
:
<
div
>
:
<
div
>
<
Input
value=
{
currentSiteInfo
}
/>
<
Input
value=
{
currentSiteInfo
}
style=
{
{
width
:
'80%'
}
}
/>
<
Button
style=
{
{
marginLeft
:
"10px"
}
}
>
生成编号
</
Button
>
<
Button
style=
{
{
marginLeft
:
"10px"
}
}
>
生成编号
</
Button
>
</
div
>
</
div
>
}
}
...
@@ -73,28 +73,28 @@ const BaseConfig = () => {
...
@@ -73,28 +73,28 @@ const BaseConfig = () => {
</
div
>
</
div
>
<
Divider
/>
<
Divider
/>
<
Row
gutter=
{
[
8
,
16
]
}
>
<
Row
gutter=
{
[
8
,
16
]
}
>
<
Col
span=
{
2
}
>
<
Col
span=
{
3
}
>
<
span
style=
{
{
marginLeft
:
'27px'
,
lineHeight
:
'32px'
,
color
:
'gray'
}
}
>
服务器IP
</
span
>
<
span
style=
{
{
marginLeft
:
'27px'
,
lineHeight
:
'32px'
,
color
:
'gray'
}
}
>
服务器IP
</
span
>
</
Col
>
</
Col
>
<
Col
span=
{
2
2
}
>
<
Col
span=
{
2
1
}
>
<
span
style=
{
{
lineHeight
:
'32px'
}
}
>
{
currentDataBase
.
ip
}
</
span
>
<
span
style=
{
{
lineHeight
:
'32px'
}
}
>
{
currentDataBase
.
ip
}
</
span
>
</
Col
>
</
Col
>
<
Col
span=
{
2
}
>
<
Col
span=
{
3
}
>
<
span
style=
{
{
marginLeft
:
'27px'
,
lineHeight
:
'32px'
,
color
:
'gray'
}
}
>
数据库名称
</
span
>
<
span
style=
{
{
marginLeft
:
'27px'
,
lineHeight
:
'32px'
,
color
:
'gray'
}
}
>
数据库名称
</
span
>
</
Col
>
</
Col
>
<
Col
span=
{
2
2
}
>
<
Col
span=
{
2
1
}
>
<
span
style=
{
{
lineHeight
:
'32px'
}
}
>
{
currentDataBase
.
dbName
}
</
span
>
<
span
style=
{
{
lineHeight
:
'32px'
}
}
>
{
currentDataBase
.
dbName
}
</
span
>
</
Col
>
</
Col
>
<
Col
span=
{
2
}
>
<
Col
span=
{
3
}
>
<
span
style=
{
{
marginLeft
:
'27px'
,
lineHeight
:
'32px'
,
color
:
'gray'
}
}
>
登录名
</
span
>
<
span
style=
{
{
marginLeft
:
'27px'
,
lineHeight
:
'32px'
,
color
:
'gray'
}
}
>
登录名
</
span
>
</
Col
>
</
Col
>
<
Col
span=
{
2
2
}
>
<
Col
span=
{
2
1
}
>
<
span
style=
{
{
lineHeight
:
'32px'
}
}
>
{
currentDataBase
.
userName
}
</
span
>
<
span
style=
{
{
lineHeight
:
'32px'
}
}
>
{
currentDataBase
.
userName
}
</
span
>
</
Col
>
</
Col
>
<
Col
span=
{
2
}
>
<
Col
span=
{
3
}
>
<
span
style=
{
{
marginLeft
:
'27px'
,
lineHeight
:
'32px'
,
color
:
'gray'
}
}
>
密码
</
span
>
<
span
style=
{
{
marginLeft
:
'27px'
,
lineHeight
:
'32px'
,
color
:
'gray'
}
}
>
密码
</
span
>
</
Col
>
</
Col
>
<
Col
span=
{
2
2
}
>
<
Col
span=
{
2
1
}
>
<
span
style=
{
{
lineHeight
:
'32px'
}
}
>
{
encrypt
(
currentDataBase
.
password
)
}
</
span
>
<
span
style=
{
{
lineHeight
:
'32px'
}
}
>
{
encrypt
(
currentDataBase
.
password
)
}
</
span
>
</
Col
>
</
Col
>
</
Row
>
</
Row
>
...
...
src/pages/platformCenter/hostmanager/messageConfig/messageConfig.jsx
View file @
787a7bda
import
React
,
{
useEffect
,
useState
}
from
'react'
import
React
,
{
useEffect
,
useState
}
from
'react'
import
{
Card
,
Form
,
Input
,
Button
,
Select
,
message
,
Divider
}
from
'antd'
import
{
Card
,
Form
,
Input
,
Button
,
Select
,
message
,
Divider
,
Spin
}
from
'antd'
import
styles
from
'./messageConfig.less'
;
import
styles
from
'./messageConfig.less'
;
import
{
GetMessageConfigInfo
,
SaveSystemInfo
,
ConnectMessPlatform
,
GetBasicInfo
,
GetDataBaseConfig
}
from
'@/services/platform/hostmanager'
import
{
GetMessageConfigInfo
,
SaveSystemInfo
,
ConnectMessPlatform
,
GetBasicInfo
,
GetDataBaseConfig
}
from
'@/services/platform/hostmanager'
import
message11
from
'../../../../assets/images/icons/消息.svg'
import
message11
from
'../../../../assets/images/icons/消息.svg'
...
@@ -15,7 +15,7 @@ const tailLayout = {
...
@@ -15,7 +15,7 @@ const tailLayout = {
};
};
const
MessageConfig
=
()
=>
{
const
MessageConfig
=
()
=>
{
const
[
loading
,
setLoading
]
=
useState
(
false
);
// 加载
const
[
currentAddress
,
setCurrentAddress
]
=
useState
(
""
)
const
[
currentAddress
,
setCurrentAddress
]
=
useState
(
""
)
const
[
currentDataBase
,
setCurrentDataBase
]
=
useState
({});
const
[
currentDataBase
,
setCurrentDataBase
]
=
useState
({});
const
[
currentSiteInfo
,
setcurrentSiteInfo
]
=
useState
(
""
);
const
[
currentSiteInfo
,
setcurrentSiteInfo
]
=
useState
(
""
);
...
@@ -24,6 +24,7 @@ const MessageConfig = () => {
...
@@ -24,6 +24,7 @@ const MessageConfig = () => {
const
onFinish
=
(
values
)
=>
{
const
onFinish
=
(
values
)
=>
{
//先测试连接再保存
//先测试连接再保存
//1.测试链接
//1.测试链接
setLoading
(
true
)
ConnectMessPlatform
({
ConnectMessPlatform
({
messAddress
:
values
.
messageAddress
,
messAddress
:
values
.
messageAddress
,
sqlServerIP
:
currentDataBase
.
ip
,
sqlServerIP
:
currentDataBase
.
ip
,
...
@@ -32,6 +33,7 @@ const MessageConfig = () => {
...
@@ -32,6 +33,7 @@ const MessageConfig = () => {
sqlName
:
currentDataBase
.
dbName
,
sqlName
:
currentDataBase
.
dbName
,
siteCode
:
currentSiteInfo
siteCode
:
currentSiteInfo
}).
then
(
res
=>
{
}).
then
(
res
=>
{
setLoading
(
false
)
if
(
res
.
code
===
0
)
{
if
(
res
.
code
===
0
)
{
//2.保存连接
//2.保存连接
SaveSystemInfo
({
SaveSystemInfo
({
...
@@ -42,12 +44,12 @@ const MessageConfig = () => {
...
@@ -42,12 +44,12 @@ const MessageConfig = () => {
if
(
res
.
code
===
0
)
{
if
(
res
.
code
===
0
)
{
message
.
info
(
"配置保存成功"
)
message
.
info
(
"配置保存成功"
)
}
else
{
}
else
{
message
.
error
Info
(
res
.
msg
)
message
.
error
(
res
.
msg
)
}
}
}
}
)
)
}
else
{
}
else
{
message
.
error
Info
(
res
.
msg
)
message
.
error
(
res
.
msg
)
}
}
})
})
...
@@ -94,6 +96,7 @@ const MessageConfig = () => {
...
@@ -94,6 +96,7 @@ const MessageConfig = () => {
return
(
return
(
<
div
className=
{
styles
.
message_container
}
>
<
div
className=
{
styles
.
message_container
}
>
<
Card
style=
{
{
width
:
"100%"
,
height
:
'calc(100vh - 130px)'
}
}
>
<
Card
style=
{
{
width
:
"100%"
,
height
:
'calc(100vh - 130px)'
}
}
>
<
Spin
spinning=
{
loading
}
tip=
"loading"
>
<
Form
<
Form
{
...
layout
}
{
...
layout
}
form=
{
form
}
form=
{
form
}
...
@@ -107,10 +110,9 @@ const MessageConfig = () => {
...
@@ -107,10 +110,9 @@ const MessageConfig = () => {
</
div
>
</
div
>
<
Divider
/>
<
Divider
/>
<
Form
.
Item
<
Form
.
Item
label=
"服务
器
地址(平台)"
label=
"服务地址(平台)"
name=
"messageAddress"
name=
"messageAddress"
rules=
{
[{
required
:
true
,
message
:
'请输入域名(IP):端口,例如:192.168.19.102:8131'
}]
}
rules=
{
[{
required
:
true
,
pattern
:
new
RegExp
(
/^
(([
1-9
]?\d
|1
\d
{2}|2
[
0-4
]\d
|25
[
0-5
])\.)
{3}
([
1-9
]?\d
|1
\d
{2}|2
[
0-4
]\d
|25
[
0-5
])(
:
\d
*
)
$/
,
"g"
),
message
:
'请输入正确的IP例如:192.168.12.231:8231'
}]
}
>
>
<
Input
style=
{
{
width
:
'94%'
}
}
/>
<
Input
style=
{
{
width
:
'94%'
}
}
/>
</
Form
.
Item
>
</
Form
.
Item
>
...
@@ -120,6 +122,7 @@ const MessageConfig = () => {
...
@@ -120,6 +122,7 @@ const MessageConfig = () => {
</
Button
>
</
Button
>
</
Form
.
Item
>
</
Form
.
Item
>
</
Form
>
</
Form
>
</
Spin
>
</
Card
>
</
Card
>
</
div
>
</
div
>
)
)
...
...
src/pages/platformCenter/hostmanager/proxyConfig/ProxyConfig.jsx
View file @
787a7bda
import
React
,
{
useEffect
,
useState
}
from
'react'
import
React
,
{
useEffect
,
useState
}
from
'react'
import
{
Card
,
Form
,
Input
,
Button
,
Switch
,
message
,
Divider
,
Row
,
Col
}
from
'antd'
import
{
Card
,
Form
,
Input
,
Button
,
Switch
,
message
,
Divider
,
Row
,
Col
,
Spin
}
from
'antd'
import
styles
from
'./ProxyConfig.less'
import
styles
from
'./ProxyConfig.less'
import
{
GetNginxConfigInfo
,
InsertNginxConfig
,
StartNginx
,
StopNginx
,
ReloadNginx
,
NginxCache
,
NginxLog
}
from
'@/services/platform/hostmanager'
import
{
GetNginxConfigInfo
,
InsertNginxConfig
,
StartNginx
,
StopNginx
,
ReloadNginx
,
NginxCache
,
NginxLog
}
from
'@/services/platform/hostmanager'
import
{
ReloadOutlined
}
from
'@ant-design/icons'
;
import
{
ReloadOutlined
}
from
'@ant-design/icons'
;
...
@@ -17,7 +17,7 @@ const tailLayout = {
...
@@ -17,7 +17,7 @@ const tailLayout = {
const
ProxyConfig
=
()
=>
{
const
ProxyConfig
=
()
=>
{
const
[
loading
,
setLoading
]
=
useState
(
false
);
// 加载
const
[
form
]
=
Form
.
useForm
();
const
[
form
]
=
Form
.
useForm
();
const
[
flag
,
setFlag
]
=
useState
(
1
)
const
[
flag
,
setFlag
]
=
useState
(
1
)
...
@@ -31,12 +31,13 @@ const ProxyConfig = () => {
...
@@ -31,12 +31,13 @@ const ProxyConfig = () => {
})
})
const
onFinish
=
(
values
)
=>
{
const
onFinish
=
(
values
)
=>
{
setLoading
(
true
)
InsertNginxConfig
({
InsertNginxConfig
({
port
:
values
.
NginxPort
,
port
:
values
.
NginxPort
,
iisLocation
:
values
.
IISIPProt
,
iisLocation
:
values
.
IISIPProt
,
emqLocation
:
values
.
EMQIPPort
emqLocation
:
values
.
EMQIPPort
}).
then
(
}).
then
(
res
=>
{
res
=>
{
setLoading
(
false
)
if
(
res
.
code
===
0
)
{
if
(
res
.
code
===
0
)
{
message
.
success
(
"保存成功"
)
message
.
success
(
"保存成功"
)
}
else
{
}
else
{
...
@@ -180,6 +181,7 @@ const ProxyConfig = () => {
...
@@ -180,6 +181,7 @@ const ProxyConfig = () => {
return
(
return
(
<
div
className=
{
styles
.
proxy_container
}
>
<
div
className=
{
styles
.
proxy_container
}
>
<
Card
style=
{
{
width
:
'100%'
,
height
:
'calc(100vh - 130px)'
}
}
>
<
Card
style=
{
{
width
:
'100%'
,
height
:
'calc(100vh - 130px)'
}
}
>
<
Spin
spinning=
{
loading
}
tip=
"loading"
>
<
Form
<
Form
{
...
layout
}
{
...
layout
}
form=
{
form
}
form=
{
form
}
...
@@ -196,7 +198,6 @@ const ProxyConfig = () => {
...
@@ -196,7 +198,6 @@ const ProxyConfig = () => {
label=
"端口(ngnix)"
label=
"端口(ngnix)"
name=
"NginxPort"
name=
"NginxPort"
rules=
{
[{
required
:
true
,
pattern
:
new
RegExp
(
/^
[
1-9
]\d
*$/
,
'g'
),
message
:
'请输入ngnix端口,例如:8091'
}]
}
rules=
{
[{
required
:
true
,
pattern
:
new
RegExp
(
/^
[
1-9
]\d
*$/
,
'g'
),
message
:
'请输入ngnix端口,例如:8091'
}]
}
>
>
<
Input
style=
{
{
marginLeft
:
'30px'
,
width
:
'98%'
}
}
/>
<
Input
style=
{
{
marginLeft
:
'30px'
,
width
:
'98%'
}
}
/>
</
Form
.
Item
>
</
Form
.
Item
>
...
@@ -204,7 +205,7 @@ const ProxyConfig = () => {
...
@@ -204,7 +205,7 @@ const ProxyConfig = () => {
<
Form
.
Item
<
Form
.
Item
label=
"地址(IIS)"
label=
"地址(IIS)"
name=
"IISIPProt"
name=
"IISIPProt"
rules=
{
[{
required
:
true
,
message
:
'请输入服务器地址!
'
}]
}
rules=
{
[{
required
:
true
,
pattern
:
new
RegExp
(
/^
(([
1-9
]?\d
|1
\d
{2}|2
[
0-4
]\d
|25
[
0-5
])\.)
{3}
([
1-9
]?\d
|1
\d
{2}|2
[
0-4
]\d
|25
[
0-5
])(
:
\d
*
)
$/
,
"g"
),
message
:
'请输入正确的IP例如:192.168.12.231:8231
'
}]
}
hasFeedback
hasFeedback
>
>
<
Input
style=
{
{
marginLeft
:
'30px'
,
width
:
'98%'
}
}
/>
<
Input
style=
{
{
marginLeft
:
'30px'
,
width
:
'98%'
}
}
/>
...
@@ -213,8 +214,7 @@ const ProxyConfig = () => {
...
@@ -213,8 +214,7 @@ const ProxyConfig = () => {
label=
"地址(EMQ)"
label=
"地址(EMQ)"
name=
"EMQIPPort"
name=
"EMQIPPort"
hasFeedback
hasFeedback
rules=
{
[{
required
:
true
,
message
:
'请选择是否!'
}]
}
rules=
{
[{
required
:
true
,
pattern
:
new
RegExp
(
/^
(([
1-9
]?\d
|1
\d
{2}|2
[
0-4
]\d
|25
[
0-5
])\.)
{3}
([
1-9
]?\d
|1
\d
{2}|2
[
0-4
]\d
|25
[
0-5
])(
:
\d
*
)
$/
,
"g"
),
message
:
'请输入正确的IP例如:192.168.12.231:8231'
}]
}
>
>
<
Input
style=
{
{
marginLeft
:
'30px'
,
width
:
'98%'
}
}
/>
<
Input
style=
{
{
marginLeft
:
'30px'
,
width
:
'98%'
}
}
/>
</
Form
.
Item
>
</
Form
.
Item
>
...
@@ -224,38 +224,40 @@ const ProxyConfig = () => {
...
@@ -224,38 +224,40 @@ const ProxyConfig = () => {
</
Button
>
</
Button
>
</
Form
.
Item
>
</
Form
.
Item
>
</
Form
>
</
Form
>
<
div
style=
{
{
display
:
'flex'
,
alignItems
:
'center'
,
marginTop
:
'40px'
}
}
>
<
div
style=
{
{
display
:
'flex'
,
alignItems
:
'center'
,
marginTop
:
'40px'
}
}
>
<
img
src=
{
configuration
}
style=
{
{
height
:
'16px'
}
}
/><
span
style=
{
{
marginLeft
:
'10px'
,
fontWeight
:
'bold'
}
}
>
服务
器
管理
</
span
>
<
img
src=
{
configuration
}
style=
{
{
height
:
'16px'
}
}
/><
span
style=
{
{
marginLeft
:
'10px'
,
fontWeight
:
'bold'
}
}
>
服务管理
</
span
>
</
div
>
</
div
>
<
Divider
/>
<
Divider
/>
<
div
className=
{
styles
.
operate_container
}
>
<
div
className=
{
styles
.
operate_container
}
>
<
Row
gutter=
{
[
20
,
25
]
}
style=
{
{
display
:
'flex'
,
alignItems
:
'center'
}
}
>
<
Row
gutter=
{
[
20
,
25
]
}
style=
{
{
display
:
'flex'
,
alignItems
:
'center'
}
}
>
<
Col
span=
{
2
}
>
<
Col
span=
{
2
}
>
<
div
style=
{
{
display
:
'flex'
,
justifyContent
:
'flex-end'
}
}
>
服务器
运行
</
div
>
<
div
style=
{
{
display
:
'flex'
,
justifyContent
:
'flex-end'
,
marginRight
:
'-10px'
}
}
>
服务
运行
</
div
>
</
Col
>
</
Col
>
<
Col
span=
{
22
}
>
<
Col
span=
{
22
}
>
<
Switch
checkedChildren=
'开启'
unCheckedChildren=
'关闭'
checked=
{
currentConfig
.
IsStartNginx
}
onChange=
{
OperateNginx
}
style=
{
{
marginLeft
:
'
25
px'
}
}
/>
<
Switch
checkedChildren=
'开启'
unCheckedChildren=
'关闭'
checked=
{
currentConfig
.
IsStartNginx
}
onChange=
{
OperateNginx
}
style=
{
{
marginLeft
:
'
30
px'
}
}
/>
</
Col
>
</
Col
>
<
Col
span=
{
2
}
>
<
Col
span=
{
2
}
>
<
div
style=
{
{
display
:
'flex'
,
justifyContent
:
'flex-end'
}
}
>
服务器
日志
</
div
>
<
div
style=
{
{
display
:
'flex'
,
justifyContent
:
'flex-end'
,
marginRight
:
'-10px'
}
}
>
服务
日志
</
div
>
</
Col
>
</
Col
>
<
Col
span=
{
22
}
>
<
Col
span=
{
22
}
>
<
Switch
checkedChildren=
'开启'
unCheckedChildren=
'关闭'
checked=
{
currentConfig
.
IsStartNginxLog
}
onChange=
{
OperateNginxLog
}
disabled=
{
currentConfig
.
IsStartNginx
>
0
?
0
:
1
}
style=
{
{
marginLeft
:
'
25
px'
}
}
/>
<
Switch
checkedChildren=
'开启'
unCheckedChildren=
'关闭'
checked=
{
currentConfig
.
IsStartNginxLog
}
onChange=
{
OperateNginxLog
}
disabled=
{
currentConfig
.
IsStartNginx
>
0
?
0
:
1
}
style=
{
{
marginLeft
:
'
30
px'
}
}
/>
</
Col
>
</
Col
>
<
Col
span=
{
2
}
>
<
Col
span=
{
2
}
>
<
div
style=
{
{
display
:
'flex'
,
justifyContent
:
'flex-end'
}
}
>
服务器
缓存
</
div
>
<
div
style=
{
{
display
:
'flex'
,
justifyContent
:
'flex-end'
,
marginRight
:
'-10px'
}
}
>
服务
缓存
</
div
>
</
Col
>
</
Col
>
<
Col
span=
{
22
}
>
<
Col
span=
{
22
}
>
<
Switch
checkedChildren=
'开启'
unCheckedChildren=
'关闭'
checked=
{
currentConfig
.
IsStartNginxCache
}
onChange=
{
OperateNginxCache
}
disabled=
{
currentConfig
.
IsStartNginx
>
0
?
0
:
1
}
style=
{
{
marginLeft
:
'
25
px'
}
}
/>
<
Switch
checkedChildren=
'开启'
unCheckedChildren=
'关闭'
checked=
{
currentConfig
.
IsStartNginxCache
}
onChange=
{
OperateNginxCache
}
disabled=
{
currentConfig
.
IsStartNginx
>
0
?
0
:
1
}
style=
{
{
marginLeft
:
'
30
px'
}
}
/>
</
Col
>
</
Col
>
<
Col
span=
{
2
}
>
<
Col
span=
{
2
}
>
<
div
style=
{
{
display
:
'flex'
,
justifyContent
:
'flex-end'
}
}
>
服务器
重载
</
div
>
<
div
style=
{
{
display
:
'flex'
,
justifyContent
:
'flex-end'
,
marginRight
:
'-10px'
}
}
>
服务
重载
</
div
>
</
Col
>
</
Col
>
<
Col
span=
{
22
}
>
<
Col
span=
{
22
}
>
<
Button
type=
"primary"
icon=
{
<
ReloadOutlined
/>
}
onClick=
{
OperateReloadNginx
}
disabled=
{
currentConfig
.
IsStartNginx
>
0
?
0
:
1
}
style=
{
{
marginLeft
:
'25
px'
}
}
>
重载
</
Button
>
<
Button
type=
"primary"
icon=
{
<
ReloadOutlined
style=
{
{
marginTop
:
'-10px'
}
}
/>
}
onClick=
{
OperateReloadNginx
}
disabled=
{
currentConfig
.
IsStartNginx
>
0
?
0
:
1
}
style=
{
{
marginLeft
:
'30
px'
}
}
>
重载
</
Button
>
</
Col
>
</
Col
>
</
Row
>
</
Row
>
</
div
>
</
div
>
</
Spin
>
</
Card
>
</
Card
>
</
div
>
</
div
>
)
)
...
...
src/pages/platformCenter/hostmanager/proxyConfig/ProxyConfig.less
View file @
787a7bda
...
@@ -18,5 +18,9 @@
...
@@ -18,5 +18,9 @@
height: 50px;
height: 50px;
margin-left:25px;
margin-left:25px;
}
}
}
}
}
}
.anticon svg {
margin-top:-5px;
}
src/routes/config.js
View file @
787a7bda
...
@@ -51,6 +51,7 @@ import TableManager from '@/pages/platformCenter/bsmanager/tablemanager';
...
@@ -51,6 +51,7 @@ import TableManager from '@/pages/platformCenter/bsmanager/tablemanager';
import
StandingBook
from
'@/pages/platformCenter/standingBook/standingBook'
;
import
StandingBook
from
'@/pages/platformCenter/standingBook/standingBook'
;
import
FiledConfig
from
'@/pages/platformCenter/filedConfig/filedConfig'
;
import
FiledConfig
from
'@/pages/platformCenter/filedConfig/filedConfig'
;
import
Incident
from
'@/pages/platformCenter/bsmanager/workOrder/incident'
;
import
Incident
from
'@/pages/platformCenter/bsmanager/workOrder/incident'
;
import
Maintenance
from
'@/pages/platformCenter/bsmanager/maintenance/maintenance'
import
Flow
from
'@/pages/platformCenter/bsmanager/workFlow/flow'
;
import
Flow
from
'@/pages/platformCenter/bsmanager/workFlow/flow'
;
import
FlowNode
from
'@/pages/platformCenter/bsmanager/workFlow/flowNode/flowNode'
;
import
FlowNode
from
'@/pages/platformCenter/bsmanager/workFlow/flowNode/flowNode'
;
// import Workflow from '@/pages/platformCenter/bsmanager/workflowEdit/Workflow';
// import Workflow from '@/pages/platformCenter/bsmanager/workflowEdit/Workflow';
...
@@ -301,6 +302,11 @@ export default {
...
@@ -301,6 +302,11 @@ export default {
hideMenu
:
true
,
hideMenu
:
true
,
component
:
FlowNode
,
component
:
FlowNode
,
},
},
{
path
:
'/platformCenter/bsmanger/maintenance'
,
name
:
'巡维保'
,
component
:
Maintenance
,
},
// {
// {
// path: '/platformCenter/bsmanger/Workflow',
// path: '/platformCenter/bsmanger/Workflow',
// name: '工作流编辑',
// name: '工作流编辑',
...
...
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