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
81646cbf
Commit
81646cbf
authored
Sep 08, 2023
by
皮倩雯
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: '首页功能优化,日志管理重构'
parent
e89bdbec
Pipeline
#78665
passed with stages
Changes
7
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
1108 additions
and
101 deletions
+1108
-101
index.jsx
src/pages/homePage/index.jsx
+280
-68
index.less
src/pages/homePage/index.less
+37
-0
index.jsx
src/pages/log/logCenter/index.jsx
+640
-15
index.less
src/pages/log/logCenter/index.less
+132
-8
index.jsx
src/pages/user/login/index.jsx
+4
-4
config.js
src/routes/config.js
+6
-6
api.js
src/services/logCenter/api.js
+9
-0
No files found.
src/pages/homePage/index.jsx
View file @
81646cbf
...
@@ -15,6 +15,7 @@ import {
...
@@ -15,6 +15,7 @@ import {
Dropdown
,
Dropdown
,
Menu
,
Menu
,
Empty
,
Empty
,
Tabs
,
}
from
'antd'
;
}
from
'antd'
;
import
dengPao
from
'@/assets/images/icons/dengpao.png'
;
import
dengPao
from
'@/assets/images/icons/dengpao.png'
;
import
icon
from
'@/assets/images/icons/icon.png'
;
import
icon
from
'@/assets/images/icons/icon.png'
;
...
@@ -55,7 +56,9 @@ import {
...
@@ -55,7 +56,9 @@ import {
}
from
'@/services/webConfig/api'
;
}
from
'@/services/webConfig/api'
;
import
classnames
from
'classnames'
;
import
classnames
from
'classnames'
;
import
styles
from
'./index.less'
;
import
styles
from
'./index.less'
;
import
{
GetWayNumberofcalls
}
from
'@/services/logCenter/api'
;
const
{
Option
}
=
Select
;
const
{
Option
}
=
Select
;
const
{
TabPane
}
=
Tabs
;
const
HomePage
=
()
=>
{
const
HomePage
=
()
=>
{
const
[
currentData
,
setCurrentData
]
=
useState
(
''
);
// 解决方案的值
const
[
currentData
,
setCurrentData
]
=
useState
(
''
);
// 解决方案的值
...
@@ -66,22 +69,30 @@ const HomePage = () => {
...
@@ -66,22 +69,30 @@ const HomePage = () => {
const
[
loading
,
setLoading
]
=
useState
(
false
);
const
[
loading
,
setLoading
]
=
useState
(
false
);
const
[
website
,
setWebsite
]
=
useState
([]);
const
[
website
,
setWebsite
]
=
useState
([]);
const
[
keepTableList
,
setKeepTableList
]
=
useState
([]);
const
[
keepTableList
,
setKeepTableList
]
=
useState
([]);
const
[
keepTableList1
,
setKeepTableList1
]
=
useState
([]);
const
[
keepTableList2
,
setKeepTableList2
]
=
useState
([]);
const
[
tip
,
setTip
]
=
useState
([]);
const
[
tip
,
setTip
]
=
useState
([]);
const
[
dashboardData
,
setDashboardData
]
=
useState
({});
const
[
dashboardData
,
setDashboardData
]
=
useState
({});
const
[
pipeArr
,
setPipeArr
]
=
useState
();
const
[
pipeArr
,
setPipeArr
]
=
useState
();
const
[
scheme
,
setScheme
]
=
useState
();
const
[
scheme
,
setScheme
]
=
useState
();
const
history
=
useHistory
();
const
history
=
useHistory
();
const
[
state
,
setState
]
=
useState
();
const
[
state
,
setState
]
=
useState
(
''
);
const
[
product
,
setProduct
]
=
useState
([]);
const
[
product
,
setProduct
]
=
useState
([]);
const
[
limitsWeb
,
setLimitsWeb
]
=
useState
(
0
);
const
[
limitsWeb
,
setLimitsWeb
]
=
useState
(
0
);
const
[
limitsPhone
,
setLimitsPhone
]
=
useState
(
0
);
const
[
limitsPhone
,
setLimitsPhone
]
=
useState
(
0
);
const
[
mapConfig
,
setMapConfig
]
=
useState
();
const
[
mapConfig
,
setMapConfig
]
=
useState
();
const
[
flag
,
setFlag
]
=
useState
(
0
);
const
[
flag
,
setFlag
]
=
useState
(
0
);
const
[
show
,
setShow
]
=
useState
();
const
[
show
,
setShow
]
=
useState
();
const
[
tableData1
,
setTableData1
]
=
useState
([]);
const
[
loadingCenter
,
setLoadingCenter
]
=
useState
(
false
);
const
[
loadingApi
,
setLoadingApi
]
=
useState
(
false
);
const
[
loadingDatabase
,
setLoadingDatabase
]
=
useState
(
false
);
const
[
loadingProduct
,
setLoadingProduct
]
=
useState
(
false
);
const
[
allTime
,
setAllTime
]
=
useState
([
const
[
allTime
,
setAllTime
]
=
useState
([
moment
().
startOf
(
'month'
),
moment
().
startOf
(
'month'
),
moment
(
new
Date
(),
'YYYY-MM-DD HH:mm:ss'
),
moment
(
new
Date
(),
'YYYY-MM-DD HH:mm:ss'
),
]);
]);
const
[
activeKey
,
setActiveKey
]
=
useState
(
'1'
);
useEffect
(()
=>
{
useEffect
(()
=>
{
setLoading
(
true
);
setLoading
(
true
);
...
@@ -102,8 +113,29 @@ const HomePage = () => {
...
@@ -102,8 +113,29 @@ const HomePage = () => {
getLimits
();
getLimits
();
getMapLayer
();
getMapLayer
();
getDataBaseConfig
();
getDataBaseConfig
();
getApiCount
();
},
[
flag
]);
},
[
flag
]);
const
getApiCount
=
()
=>
{
GetWayNumberofcalls
({
pageIndex
:
1
,
pageSize
:
10
,
dateFrom
:
allTime
[
0
].
format
(
'YYYY-MM-DD HH:mm:ss'
),
dateTo
:
allTime
[
1
].
format
(
'YYYY-MM-DD HH:mm:ss'
),
}).
then
(
resData
=>
{
if
(
resData
.
code
===
0
)
{
setTableData1
(
resData
.
data
.
listdata
);
}
else
{
setTableData1
([]);
notification
.
error
({
message
:
'提示'
,
duration
:
3
,
description
:
resData
.
msg
,
});
}
});
};
const
getLimits
=
()
=>
{
const
getLimits
=
()
=>
{
GetMaplayerByTerminalType
({
terminalType
:
'web'
,
isBaseMap
:
false
}).
then
(
res
=>
{
GetMaplayerByTerminalType
({
terminalType
:
'web'
,
isBaseMap
:
false
}).
then
(
res
=>
{
if
(
res
.
code
===
'0'
)
{
if
(
res
.
code
===
'0'
)
{
...
@@ -124,7 +156,9 @@ const HomePage = () => {
...
@@ -124,7 +156,9 @@ const HomePage = () => {
};
};
// 获取产品列表
// 获取产品列表
const
onGetProduct
=
()
=>
{
const
onGetProduct
=
()
=>
{
setLoadingProduct
(
true
);
getProductList
().
then
(
res
=>
{
getProductList
().
then
(
res
=>
{
setLoadingProduct
(
false
);
if
(
res
.
code
===
0
)
{
if
(
res
.
code
===
0
)
{
let
arr
=
[];
let
arr
=
[];
res
.
data
.
AllProducts
.
forEach
(
i
=>
{
res
.
data
.
AllProducts
.
forEach
(
i
=>
{
...
@@ -153,16 +187,16 @@ const HomePage = () => {
...
@@ -153,16 +187,16 @@ const HomePage = () => {
};
};
const
getOMSDashboard
=
()
=>
{
const
getOMSDashboard
=
()
=>
{
setDashboardData
([]);
setLoadingCenter
(
true
);
setWebsite
([]);
GetOMSDashboard
().
then
(
res
=>
{
GetOMSDashboard
().
then
(
res
=>
{
setLoadingCenter
(
false
);
if
(
res
.
code
===
0
)
{
if
(
res
.
code
===
0
)
{
let
arr
=
[];
let
arr
=
[];
res
.
data
.
Web
?.
forEach
(
i
=>
{
res
.
data
.
Web
?.
forEach
(
i
=>
{
arr
.
push
({
type
:
'
w
eb'
,
value
:
i
});
arr
.
push
({
type
:
'
W
eb'
,
value
:
i
});
});
});
res
.
data
.
Mobile
?.
forEach
(
i
=>
{
res
.
data
.
Mobile
?.
forEach
(
i
=>
{
arr
.
push
({
type
:
'
m
obile'
,
value
:
i
});
arr
.
push
({
type
:
'
M
obile'
,
value
:
i
});
});
});
setWebsite
(
arr
);
setWebsite
(
arr
);
let
newTipList
=
[];
let
newTipList
=
[];
...
@@ -210,6 +244,7 @@ const HomePage = () => {
...
@@ -210,6 +244,7 @@ const HomePage = () => {
// 获取数据库连接配置信息
// 获取数据库连接配置信息
const
getDataBaseConfig
=
()
=>
{
const
getDataBaseConfig
=
()
=>
{
setLoadingDatabase
(
true
);
getDataBaseConfigNew
().
then
(
resnew
=>
{
getDataBaseConfigNew
().
then
(
resnew
=>
{
let
res
=
resnew
.
data
;
let
res
=
resnew
.
data
;
setDataBase
(
res
);
setDataBase
(
res
);
...
@@ -221,7 +256,7 @@ const HomePage = () => {
...
@@ -221,7 +256,7 @@ const HomePage = () => {
const
onCheck
=
val
=>
{
const
onCheck
=
val
=>
{
let
str
=
val
?
val
:
dataBase
;
let
str
=
val
?
val
:
dataBase
;
if
(
!
val
)
{
if
(
!
val
)
{
setLoading
(
true
);
setLoading
Database
(
true
);
}
}
connectionTest
({
connectionTest
({
...
@@ -231,7 +266,7 @@ const HomePage = () => {
...
@@ -231,7 +266,7 @@ const HomePage = () => {
password
:
str
.
password
,
password
:
str
.
password
,
})
})
.
then
(
res
=>
{
.
then
(
res
=>
{
setLoading
(
false
);
setLoading
Database
(
false
);
if
(
res
.
code
===
0
)
{
if
(
res
.
code
===
0
)
{
setState
(
res
.
data
);
setState
(
res
.
data
);
if
(
!
val
)
{
if
(
!
val
)
{
...
@@ -242,7 +277,7 @@ const HomePage = () => {
...
@@ -242,7 +277,7 @@ const HomePage = () => {
});
});
}
}
}
else
{
}
else
{
setState
();
setState
(
''
);
notification
.
error
({
notification
.
error
({
message
:
'提示'
,
message
:
'提示'
,
duration
:
15
,
duration
:
15
,
...
@@ -298,6 +333,7 @@ const HomePage = () => {
...
@@ -298,6 +333,7 @@ const HomePage = () => {
// 获取日志表格数据
// 获取日志表格数据
const
getLogMessage
=
()
=>
{
const
getLogMessage
=
()
=>
{
setLoadingApi
(
true
);
GetWayPages
({
GetWayPages
({
pageIndex
:
1
,
pageIndex
:
1
,
pageSize
:
10
,
pageSize
:
10
,
...
@@ -306,10 +342,15 @@ const HomePage = () => {
...
@@ -306,10 +342,15 @@ const HomePage = () => {
info
:
''
,
info
:
''
,
isSuccess
:
false
,
isSuccess
:
false
,
}).
then
(
res
=>
{
}).
then
(
res
=>
{
setLoadingApi
(
false
);
if
(
res
.
code
===
0
)
{
if
(
res
.
code
===
0
)
{
setKeepTableList
(
res
.
data
.
listData
.
list
);
setKeepTableList
(
res
.
data
.
listData
.
list
);
setKeepTableList1
(
res
.
data
.
consumData
);
setKeepTableList2
(
res
.
data
.
countData
.
listdata
);
}
else
{
}
else
{
setKeepTableList
([]);
setKeepTableList
([]);
setKeepTableList1
([]);
setKeepTableList2
([]);
notification
.
error
({
notification
.
error
({
message
:
'提示'
,
message
:
'提示'
,
duration
:
3
,
duration
:
3
,
...
@@ -621,66 +662,190 @@ const HomePage = () => {
...
@@ -621,66 +662,190 @@ const HomePage = () => {
},
},
];
];
const
buttonMenu
=
(
const
columns1
=
[
<
Menu
>
{
{
currentList
.
map
((
i
,
j
)
=>
(
title
:
'耗时排名'
,
<
Menu
.
Item
key=
{
j
}
onClick=
{
()
=>
menuChange
(
i
)
}
>
width
:
60
,
{
i
}
align
:
'center'
,
</
Menu
.
Item
>
render
:
(
text
,
record
,
index
)
=>
{
))
}
if
(
index
===
0
)
{
</
Menu
>
return
(
<
div
className=
{
styles
.
sort
}
type=
{
index
+
1
}
>
{
index
+
1
}
</
div
>
);
);
}
else
if
(
index
===
1
)
{
return
(
<
div
className=
{
styles
.
sort
}
type=
{
index
+
1
}
>
{
index
+
1
}
</
div
>
);
}
else
if
(
index
===
2
)
{
return
(
<
div
className=
{
styles
.
sort
}
type=
{
index
+
1
}
>
{
index
+
1
}
</
div
>
);
}
else
{
return
<
span
>
{
index
+
1
}
</
span
>;
}
},
},
{
title
:
'接口名称'
,
dataIndex
:
'path'
,
key
:
'path'
,
width
:
300
,
fixed
:
'left'
,
onCell
:
()
=>
({
style
:
{
maxWidth
:
400
,
overflow
:
'hidden'
,
whiteSpace
:
'nowrap'
,
textOverflow
:
'ellipsis'
,
cursor
:
'pointer'
,
},
}),
render
:
record
=>
(
<
Tooltip
placement=
"topLeft"
title=
{
record
}
>
{
record
}
</
Tooltip
>
),
},
{
title
:
'调用时间'
,
dataIndex
:
'requestDate'
,
key
:
'requestDate'
,
width
:
140
,
align
:
'center'
,
},
{
title
:
'请求方法'
,
dataIndex
:
'method'
,
key
:
'method'
,
width
:
80
,
align
:
'center'
,
render
:
record
=>
{
if
(
record
===
'GET'
)
{
return
(
<
Tag
color=
"orange"
style=
{
{
width
:
'44.44px'
}
}
>
GET
</
Tag
>
);
}
return
<
Tag
color=
"green"
>
POST
</
Tag
>;
},
},
{
title
:
'耗时/ms'
,
dataIndex
:
'consumerTime'
,
key
:
'consumerTime'
,
align
:
'center'
,
width
:
80
,
},
{
title
:
'返回体大小/byte'
,
dataIndex
:
'responseSize'
,
key
:
'responseSize'
,
width
:
130
,
align
:
'center'
,
},
{
title
:
'返回状态码'
,
dataIndex
:
'result'
,
key
:
'result'
,
width
:
100
,
align
:
'center'
,
},
];
const
menuChange
=
e
=>
{
const
columns2
=
[
setLoading
(
true
);
{
changeSolution
({
title
:
'调用频次排名'
,
solution
:
e
,
width
:
80
,
})
align
:
'center'
,
.
then
(
res
=>
{
render
:
(
text
,
record
,
index
)
=>
{
if
(
res
.
code
===
0
)
{
if
(
index
===
0
)
{
setCurrentData
(
e
);
return
(
notification
.
success
({
<
div
className=
{
styles
.
sort
}
type=
{
index
+
1
}
>
message
:
'提示'
,
{
index
+
1
}
description
:
'切换成功'
,
</
div
>
duration
:
3
,
);
});
}
else
if
(
index
===
1
)
{
setTimeout
(()
=>
{
return
(
setFlag
(
flag
+
1
);
<
div
className=
{
styles
.
sort
}
type=
{
index
+
1
}
>
},
5000
);
{
index
+
1
}
</
div
>
);
}
else
if
(
index
===
2
)
{
return
(
<
div
className=
{
styles
.
sort
}
type=
{
index
+
1
}
>
{
index
+
1
}
</
div
>
);
}
else
{
}
else
{
setLoading
(
false
);
return
<
span
>
{
index
+
1
}
</
span
>;
notification
.
error
({
message
:
'提示'
,
description
:
res
.
msg
||
'切换失败'
,
duration
:
15
,
});
}
}
})
},
.
catch
(
err
=>
{
},
console
.
error
(
err
);
{
});
title
:
'接口名称'
,
dataIndex
:
'path'
,
key
:
'path'
,
width
:
300
,
fixed
:
'left'
,
onCell
:
()
=>
({
style
:
{
maxWidth
:
400
,
overflow
:
'hidden'
,
whiteSpace
:
'nowrap'
,
textOverflow
:
'ellipsis'
,
cursor
:
'pointer'
,
},
}),
render
:
record
=>
(
<
Tooltip
placement=
"topLeft"
title=
{
record
}
>
{
record
}
</
Tooltip
>
),
},
{
title
:
'调用次数'
,
dataIndex
:
'count'
,
key
:
'count'
,
width
:
100
,
align
:
'center'
,
},
];
const
onChange
=
e
=>
{
setActiveKey
(
e
);
};
};
return
(
return
(
<
Spin
tip=
"Loading..."
spinning=
{
loading
}
>
<
div
className=
{
styles
.
homePage
}
>
<
div
className=
{
styles
.
homePage
}
>
<
div
className=
{
styles
.
header
}
>
<
div
className=
{
styles
.
header
}
>
<
img
className=
{
styles
.
headerImg
}
src=
{
dengPao
}
style=
{
{
height
:
'16px'
}
}
alt=
""
/>
<
img
className=
{
styles
.
headerImg
}
src=
{
dengPao
}
style=
{
{
height
:
'16px'
}
}
alt=
""
/>
<
span
className=
{
styles
.
headerText
}
>
[解决方案] 您当前使用的解决方案是:
</
span
>
<
span
className=
{
styles
.
headerText
}
>
[解决方案] 您当前使用的解决方案是
</
span
>
<
span
className=
{
styles
.
headerTextBold
}
>
{
currentData
}
</
span
>
<
span
className=
{
styles
.
headerTextBold
}
>
{
currentData
}
</
span
>
{
show
&&
(
{
show
&&
(
<
Dropdown
overlay=
{
buttonMenu
}
>
<
span
<
span
className=
{
styles
.
headerChangeBtn
}
>
去切换
>>
</
span
>
className=
{
styles
.
headerChangeBtn
}
</
Dropdown
>
onClick=
{
()
=>
changeProject
()
}
style=
{
{
cursor
:
'pointer'
}
}
>
去切换
>>
</
span
>
)
}
)
}
</
div
>
</
div
>
<
div
className=
{
styles
.
contentTop
}
>
<
div
className=
{
styles
.
contentTop
}
>
<
div
className=
{
styles
.
dataCenter
}
>
<
div
className=
{
styles
.
dataCenter
}
>
<
Spin
tip=
"Loading..."
spinning=
{
loadingDatabase
}
>
<
div
className=
{
styles
.
content
}
>
<
div
className=
{
styles
.
content
}
>
<
div
className=
{
styles
.
dataCenterLabel
}
>
<
div
className=
{
styles
.
dataCenterLabel
}
>
<
div
>
服务器IP
:
</
div
>
<
div
>
服务器IP
</
div
>
<
div
>
连接数据库
:
</
div
>
<
div
>
连接数据库
</
div
>
<
div
>
连接状态
:
</
div
>
<
div
>
连接状态
</
div
>
</
div
>
</
div
>
<
div
className=
{
styles
.
dataCenterValue
}
>
<
div
className=
{
styles
.
dataCenterValue
}
>
<
div
>
{
dataBase
?.
ip
||
'-'
}
</
div
>
<
div
>
{
dataBase
?.
ip
||
'-'
}
</
div
>
...
@@ -712,10 +877,12 @@ const HomePage = () => {
...
@@ -712,10 +877,12 @@ const HomePage = () => {
</
span
>
</
span
>
</
div
>
</
div
>
)
}
)
}
</
Spin
>
</
div
>
</
div
>
<
div
className=
{
styles
.
userCenter
}
>
<
div
className=
{
styles
.
userCenter
}
>
<
Spin
tip=
"Loading..."
spinning=
{
loadingCenter
}
>
<
div
className=
{
styles
.
top
}
>
<
div
className=
{
styles
.
top
}
>
<
img
src=
{
people
}
alt=
""
style=
{
{
marginRight
:
'5px'
}
}
/>
用户总数
:
<
img
src=
{
people
}
alt=
""
style=
{
{
marginRight
:
'5px'
}
}
/>
用户总数
<
span
className=
{
styles
.
fontColor
}
>
{
dashboardData
.
用户总数
}
</
span
>
个
<
span
className=
{
styles
.
fontColor
}
>
{
dashboardData
.
用户总数
}
</
span
>
个
</
div
>
</
div
>
<
Divider
style=
{
{
color
:
'#E3E7EC'
}
}
/>
<
Divider
style=
{
{
color
:
'#E3E7EC'
}
}
/>
...
@@ -744,10 +911,12 @@ const HomePage = () => {
...
@@ -744,10 +911,12 @@ const HomePage = () => {
用户中心
<
img
src=
{
icon
}
alt=
""
/>
用户中心
<
img
src=
{
icon
}
alt=
""
/>
</
span
>
</
span
>
</
div
>
</
div
>
</
Spin
>
</
div
>
</
div
>
<
div
className=
{
styles
.
tableCenter
}
>
<
div
className=
{
styles
.
tableCenter
}
>
<
Spin
tip=
"Loading..."
spinning=
{
loadingCenter
}
>
<
div
className=
{
styles
.
top
}
>
<
div
className=
{
styles
.
top
}
>
<
img
src=
{
data
}
alt=
""
style=
{
{
marginRight
:
'5px'
}
}
/>
表单总数
:
<
img
src=
{
data
}
alt=
""
style=
{
{
marginRight
:
'5px'
}
}
/>
表单总数
<
span
className=
{
styles
.
fontColor
}
>
{
dashboardData
.
表单总数
}
</
span
>
个
<
span
className=
{
styles
.
fontColor
}
>
{
dashboardData
.
表单总数
}
</
span
>
个
</
div
>
</
div
>
<
Divider
style=
{
{
color
:
'#E3E7EC'
}
}
/>
<
Divider
style=
{
{
color
:
'#E3E7EC'
}
}
/>
...
@@ -782,10 +951,12 @@ const HomePage = () => {
...
@@ -782,10 +951,12 @@ const HomePage = () => {
表单中心
<
img
src=
{
icon
}
alt=
""
/>
表单中心
<
img
src=
{
icon
}
alt=
""
/>
</
span
>
</
span
>
</
div
>
</
div
>
</
Spin
>
</
div
>
</
div
>
<
div
className=
{
styles
.
flowCenter
}
>
<
div
className=
{
styles
.
flowCenter
}
>
<
Spin
tip=
"Loading..."
spinning=
{
loadingCenter
}
>
<
div
className=
{
styles
.
top
}
>
<
div
className=
{
styles
.
top
}
>
<
img
src=
{
flow
}
alt=
""
style=
{
{
marginRight
:
'5px'
}
}
/>
流程总数
:
<
img
src=
{
flow
}
alt=
""
style=
{
{
marginRight
:
'5px'
}
}
/>
流程总数
<
span
className=
{
styles
.
fontColor
}
>
{
dashboardData
.
流程数
}
</
span
>
个
<
span
className=
{
styles
.
fontColor
}
>
{
dashboardData
.
流程数
}
</
span
>
个
</
div
>
</
div
>
<
Divider
style=
{
{
color
:
'#E3E7EC'
}
}
/>
<
Divider
style=
{
{
color
:
'#E3E7EC'
}
}
/>
...
@@ -808,13 +979,15 @@ const HomePage = () => {
...
@@ -808,13 +979,15 @@ const HomePage = () => {
流程中心
<
img
src=
{
icon
}
alt=
""
/>
流程中心
<
img
src=
{
icon
}
alt=
""
/>
</
span
>
</
span
>
</
div
>
</
div
>
</
Spin
>
</
div
>
</
div
>
<
div
className=
{
styles
.
hostCenter
}
>
<
div
className=
{
styles
.
hostCenter
}
>
<
Spin
tip=
"Loading..."
spinning=
{
loadingProduct
}
>
<
div
className=
{
styles
.
content
}
>
<
div
className=
{
styles
.
content
}
>
<
div
className=
{
styles
.
dataCenterLabel
}
>
<
div
className=
{
styles
.
dataCenterLabel
}
>
<
div
>
站点编号
:
</
div
>
<
div
>
站点编号
</
div
>
<
div
>
产品授权
:
</
div
>
<
div
>
产品授权
</
div
>
<
div
>
网关状态
:
</
div
>
<
div
>
网关状态
</
div
>
</
div
>
</
div
>
<
div
className=
{
styles
.
dataCenterValue
}
>
<
div
className=
{
styles
.
dataCenterValue
}
>
<
div
>
{
currentSiteInfo
}
</
div
>
<
div
>
{
currentSiteInfo
}
</
div
>
...
@@ -839,22 +1012,24 @@ const HomePage = () => {
...
@@ -839,22 +1012,24 @@ const HomePage = () => {
宿主管理
<
img
src=
{
icon
}
alt=
""
/>
宿主管理
<
img
src=
{
icon
}
alt=
""
/>
</
span
>
</
span
>
</
div
>
</
div
>
</
Spin
>
</
div
>
</
div
>
</
div
>
</
div
>
<
div
className=
{
styles
.
contentCenter
}
>
<
div
className=
{
styles
.
contentCenter
}
>
<
div
className=
{
styles
.
application
}
>
<
div
className=
{
styles
.
application
}
>
<
Spin
tip=
"Loading..."
spinning=
{
loadingCenter
}
>
<
div
className=
{
styles
.
head
}
>
<
div
className=
{
styles
.
head
}
>
<
div
className=
{
styles
.
icon
}
/>
<
div
className=
{
styles
.
icon
}
/>
<
span
>
当前应用
</
span
>
<
span
>
当前应用
</
span
>
</
div
>
</
div
>
<
div
className=
{
styles
.
content
}
>
<
div
className=
{
styles
.
content
}
>
{
website
?.
map
(
i
=>
{
{
website
?.
map
(
i
=>
{
if
(
i
.
type
===
'
w
eb'
)
{
if
(
i
.
type
===
'
W
eb'
)
{
return
(
return
(
<
div
className=
{
styles
.
contentItem
}
>
<
div
className=
{
styles
.
contentItem
}
>
<
div
className=
{
styles
.
contentLeft
}
>
<
div
className=
{
styles
.
contentLeft
}
>
<
img
src=
{
web
}
alt=
""
/>
<
img
src=
{
web
}
alt=
""
/>
<
span
className=
{
styles
.
blueIcon
}
>
{
i
.
type
}
:
</
span
>
<
span
className=
{
styles
.
blueIcon
}
>
{
i
.
type
}
</
span
>
</
div
>
</
div
>
<
div
className=
{
styles
.
contentText
}
>
<
div
className=
{
styles
.
contentText
}
>
<
Tooltip
title=
{
i
.
value
}
>
{
i
.
value
}
</
Tooltip
>
<
Tooltip
title=
{
i
.
value
}
>
{
i
.
value
}
</
Tooltip
>
...
@@ -866,7 +1041,7 @@ const HomePage = () => {
...
@@ -866,7 +1041,7 @@ const HomePage = () => {
<
div
className=
{
styles
.
contentItem
}
>
<
div
className=
{
styles
.
contentItem
}
>
<
div
className=
{
styles
.
contentLeftGreen
}
>
<
div
className=
{
styles
.
contentLeftGreen
}
>
<
img
src=
{
mobile
}
alt=
""
/>
<
img
src=
{
mobile
}
alt=
""
/>
<
span
className=
{
styles
.
greenIcon
}
>
{
i
.
type
}
:
</
span
>
<
span
className=
{
styles
.
greenIcon
}
>
{
i
.
type
}
</
span
>
</
div
>
</
div
>
<
div
className=
{
styles
.
contentText
}
>
<
div
className=
{
styles
.
contentText
}
>
<
Tooltip
title=
{
i
.
value
}
>
{
i
.
value
}
</
Tooltip
>
<
Tooltip
title=
{
i
.
value
}
>
{
i
.
value
}
</
Tooltip
>
...
@@ -876,8 +1051,10 @@ const HomePage = () => {
...
@@ -876,8 +1051,10 @@ const HomePage = () => {
})
}
})
}
{
website
.
length
===
0
&&
<
Empty
image=
{
Empty
.
PRESENTED_IMAGE_SIMPLE
}
/>
}
{
website
.
length
===
0
&&
<
Empty
image=
{
Empty
.
PRESENTED_IMAGE_SIMPLE
}
/>
}
</
div
>
</
div
>
</
Spin
>
</
div
>
</
div
>
<
div
className=
{
styles
.
userLogin
}
>
<
div
className=
{
styles
.
userLogin
}
>
<
Spin
tip=
"Loading..."
spinning=
{
loadingCenter
}
>
<
div
className=
{
styles
.
head
}
>
<
div
className=
{
styles
.
head
}
>
<
div
className=
{
styles
.
headLeft
}
>
<
div
className=
{
styles
.
headLeft
}
>
<
div
className=
{
styles
.
icon
}
/>
<
div
className=
{
styles
.
icon
}
/>
...
@@ -890,8 +1067,10 @@ const HomePage = () => {
...
@@ -890,8 +1067,10 @@ const HomePage = () => {
<
div
className=
{
styles
.
content
}
>
<
div
className=
{
styles
.
content
}
>
<
ReactEcharts
style=
{
{
width
:
'100%'
,
height
:
'100%'
}
}
option=
{
option
}
/>
<
ReactEcharts
style=
{
{
width
:
'100%'
,
height
:
'100%'
}
}
option=
{
option
}
/>
</
div
>
</
div
>
</
Spin
>
</
div
>
</
div
>
<
div
className=
{
styles
.
abnormal
}
>
<
div
className=
{
styles
.
abnormal
}
>
<
Spin
tip=
"Loading..."
spinning=
{
loadingCenter
}
>
<
div
className=
{
styles
.
head
}
>
<
div
className=
{
styles
.
head
}
>
<
div
className=
{
styles
.
icon
}
/>
<
div
className=
{
styles
.
icon
}
/>
<
span
>
消息提醒
</
span
>
<
span
>
消息提醒
</
span
>
...
@@ -929,7 +1108,7 @@ const HomePage = () => {
...
@@ -929,7 +1108,7 @@ const HomePage = () => {
</
div
>
</
div
>
</
div
>
</
div
>
)
}
)
}
{
!
stat
e
&&
(
{
state
===
fals
e
&&
(
<
div
className=
{
styles
.
contentItem
}
>
<
div
className=
{
styles
.
contentItem
}
>
<
div
className=
{
styles
.
contentItemTop
}
>
<
div
className=
{
styles
.
contentItemTop
}
>
<
div
className=
{
styles
.
topLeft
}
>
<
div
className=
{
styles
.
topLeft
}
>
...
@@ -946,14 +1125,16 @@ const HomePage = () => {
...
@@ -946,14 +1125,16 @@ const HomePage = () => {
<
Empty
image=
{
Empty
.
PRESENTED_IMAGE_SIMPLE
}
/>
<
Empty
image=
{
Empty
.
PRESENTED_IMAGE_SIMPLE
}
/>
)
}
)
}
</
div
>
</
div
>
</
Spin
>
</
div
>
</
div
>
</
div
>
</
div
>
<
div
className=
{
styles
.
contentBottom
}
>
<
div
className=
{
styles
.
contentBottom
}
>
<
div
className=
{
styles
.
callLog
}
>
<
div
className=
{
styles
.
callLog
}
>
<
Spin
tip=
"Loading..."
spinning=
{
loadingApi
}
>
<
div
className=
{
styles
.
title
}
>
<
div
className=
{
styles
.
title
}
>
<
div
className=
{
styles
.
titleLeft
}
>
<
div
className=
{
styles
.
titleLeft
}
>
<
div
className=
{
styles
.
icon
}
/>
<
div
className=
{
styles
.
icon
}
/>
<
span
className=
{
styles
.
text
}
>
API调用日志
</
span
>
<
span
className=
{
styles
.
text
}
>
API调用日志
(最近10条)
</
span
>
</
div
>
</
div
>
<
div
className=
{
styles
.
linkIcon
}
>
<
div
className=
{
styles
.
linkIcon
}
>
<
span
onClick=
{
()
=>
toLogCenter
()
}
style=
{
{
cursor
:
'pointer'
}
}
>
<
span
onClick=
{
()
=>
toLogCenter
()
}
style=
{
{
cursor
:
'pointer'
}
}
>
...
@@ -962,6 +1143,13 @@ const HomePage = () => {
...
@@ -962,6 +1143,13 @@ const HomePage = () => {
</
div
>
</
div
>
</
div
>
</
div
>
<
div
className=
{
styles
.
table
}
>
<
div
className=
{
styles
.
table
}
>
<
Tabs
activeKey=
{
activeKey
}
onChange=
{
onChange
}
tabPosition=
"left"
style=
{
{
height
:
'100%'
}
}
>
<
TabPane
tab=
"错误API"
key=
"1"
>
<
Table
<
Table
size=
"small"
size=
"small"
bordered
bordered
...
@@ -970,9 +1158,33 @@ const HomePage = () => {
...
@@ -970,9 +1158,33 @@ const HomePage = () => {
scroll=
{
{
y
:
'calc(100% - 53px)'
}
}
scroll=
{
{
y
:
'calc(100% - 53px)'
}
}
pagination=
{
false
}
pagination=
{
false
}
/>
/>
</
TabPane
>
<
TabPane
tab=
"耗时API"
key=
"2"
>
<
Table
size=
"small"
bordered
columns=
{
columns1
}
dataSource=
{
keepTableList1
}
scroll=
{
{
y
:
'calc(100% - 53px)'
}
}
pagination=
{
false
}
/>
</
TabPane
>
<
TabPane
tab=
"调用频次"
key=
"3"
>
<
Table
size=
"small"
bordered
columns=
{
columns2
}
dataSource=
{
tableData1
}
scroll=
{
{
y
:
'calc(100% - 53px)'
}
}
pagination=
{
false
}
/>
</
TabPane
>
</
Tabs
>
</
div
>
</
div
>
</
Spin
>
</
div
>
</
div
>
<
div
className=
{
styles
.
gisMessage
}
>
<
div
className=
{
styles
.
gisMessage
}
>
<
Spin
tip=
"Loading..."
spinning=
{
loadingCenter
}
>
<
div
className=
{
styles
.
head
}
>
<
div
className=
{
styles
.
head
}
>
<
div
className=
{
styles
.
icon
}
/>
<
div
className=
{
styles
.
icon
}
/>
<
span
>
GIS信息
</
span
>
<
span
>
GIS信息
</
span
>
...
@@ -980,11 +1192,11 @@ const HomePage = () => {
...
@@ -980,11 +1192,11 @@ const HomePage = () => {
<
div
className=
{
styles
.
content
}
>
<
div
className=
{
styles
.
content
}
>
<
div
className=
{
styles
.
item
}
>
<
div
className=
{
styles
.
item
}
>
<
div
className=
{
styles
.
dataCenterLabel
}
>
<
div
className=
{
styles
.
dataCenterLabel
}
>
<
div
>
管网服务
:
</
div
>
<
div
>
管网服务
</
div
>
<
div
>
元数据更新时间
:
</
div
>
<
div
>
元数据更新时间
</
div
>
<
div
>
地图方案
:
</
div
>
<
div
>
地图方案
</
div
>
<
div
>
已配置权限
:
</
div
>
<
div
>
已配置权限
</
div
>
<
div
>
默认范围
:
</
div
>
<
div
>
默认范围
</
div
>
</
div
>
</
div
>
<
div
className=
{
styles
.
dataCenterValue
}
>
<
div
className=
{
styles
.
dataCenterValue
}
>
<
div
>
<
div
>
...
@@ -1006,7 +1218,7 @@ const HomePage = () => {
...
@@ -1006,7 +1218,7 @@ const HomePage = () => {
)
}
)
}
{
limitsPhone
>
0
?
(
{
limitsPhone
>
0
?
(
<
Tag
color=
"cyan"
style=
{
{
marginRight
:
0
,
marginLeft
:
'8px'
}
}
>
<
Tag
color=
"cyan"
style=
{
{
marginRight
:
0
,
marginLeft
:
'8px'
}
}
>
手持
mobile
</
Tag
>
</
Tag
>
)
:
(
)
:
(
'-'
'-'
...
@@ -1030,10 +1242,10 @@ const HomePage = () => {
...
@@ -1030,10 +1242,10 @@ const HomePage = () => {
</
span
>
</
span
>
</
div
>
</
div
>
</
div
>
</
div
>
</
Spin
>
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
</
Spin
>
);
);
};
};
...
...
src/pages/homePage/index.less
View file @
81646cbf
...
@@ -611,6 +611,30 @@
...
@@ -611,6 +611,30 @@
width: 100%;
width: 100%;
height: calc(100% - 60px);
height: calc(100% - 60px);
overflow: hidden;
overflow: hidden;
.sort {
width: 22px;
height: 22px;
border-radius: 50%;
font-size: 14px;
font-family: Microsoft YaHei;
font-weight: bold;
display: flex;
justify-content: center;
align-items: center;
margin: auto;
&[type='1'] {
color: #fb0909;
border: 2px solid #faa0a0;
}
&[type='2'] {
color: #fb6a09;
border: 2px solid #f07942;
}
&[type='3'] {
color: #fbba09;
border: 2px solid #f8e680;
}
}
:global {
:global {
.ant-table-wrapper {
.ant-table-wrapper {
height: 100%;
height: 100%;
...
@@ -632,6 +656,19 @@
...
@@ -632,6 +656,19 @@
}
}
}
}
}
}
.ant-tabs-tab {
padding: 8px 8px;
}
.ant-tabs-tab-active {
padding: 8px 8px;
}
.ant-tabs-tabpane {
padding-left: 12px;
}
.ant-tabs-content-left {
height: 100%;
}
}
}
}
}
.gisMessage {
.gisMessage {
...
...
src/pages/log/logCenter/index.jsx
View file @
81646cbf
/* eslint-disable no-lonely-if */
/* eslint-disable no-else-return */
/* eslint-disable no-else-return */
/* eslint-disable no-unneeded-ternary */
/* eslint-disable no-unneeded-ternary */
import
React
,
{
useState
,
useEffect
,
useRef
}
from
'react'
;
import
React
,
{
useState
,
useEffect
,
useRef
}
from
'react'
;
...
@@ -16,20 +17,35 @@ import {
...
@@ -16,20 +17,35 @@ import {
Select
,
Select
,
Tag
,
Tag
,
Modal
,
Modal
,
Tabs
,
}
from
'antd'
;
}
from
'antd'
;
import
{
CalculatorFilled
,
SwapRightOutlined
,
SyncOutlined
}
from
'@ant-design/icons'
;
import
{
CalculatorFilled
,
SwapRightOutlined
,
SyncOutlined
,
InfoCircleOutlined
,
}
from
'@ant-design/icons'
;
import
moment
from
'moment'
;
import
moment
from
'moment'
;
import
'moment/dist/locale/zh-cn'
;
import
'moment/dist/locale/zh-cn'
;
import
locale
from
'antd/es/date-picker/locale/zh_CN'
;
import
locale
from
'antd/es/date-picker/locale/zh_CN'
;
import
styles
from
'./index.less'
;
import
styles
from
'./index.less'
;
import
{
GetCallLogPages
}
from
'@/services/logCenter/api'
;
import
{
GetCallLogPages
,
GetWayNumberofcalls
,
GetAccessLog
,
GetRemoteOperationLog
,
}
from
'@/services/logCenter/api'
;
import
{
GetWayPages
}
from
'@/services/homePage/api'
;
import
{
GetWayPages
}
from
'@/services/homePage/api'
;
const
{
RangePicker
}
=
DatePicker
;
const
{
RangePicker
}
=
DatePicker
;
const
{
Option
}
=
Select
;
const
{
Option
}
=
Select
;
const
{
TabPane
}
=
Tabs
;
const
LogCenter
=
()
=>
{
const
LogCenter
=
()
=>
{
const
[
loading
,
setLoading
]
=
useState
(
false
);
// 源数据
const
[
loading
,
setLoading
]
=
useState
(
false
);
// 源数据
const
[
loading1
,
setLoading1
]
=
useState
(
false
);
// 源数据
const
[
loadingAccess
,
setLoadingAccess
]
=
useState
(
false
);
// 源数据
const
[
loadingRemote
,
setLoadingRemote
]
=
useState
(
false
);
// 源数据
const
[
requestUrl
,
setRequestUrl
]
=
useState
(
''
);
// 接口名称筛选
const
[
requestUrl
,
setRequestUrl
]
=
useState
(
''
);
// 接口名称筛选
const
[
label
,
setLabel
]
=
useState
(
''
);
// 标签筛选
const
[
label
,
setLabel
]
=
useState
(
''
);
// 标签筛选
const
[
allTime
,
setAllTime
]
=
useState
([
const
[
allTime
,
setAllTime
]
=
useState
([
...
@@ -37,20 +53,34 @@ const LogCenter = () => {
...
@@ -37,20 +53,34 @@ const LogCenter = () => {
moment
(
new
Date
(),
'YYYY-MM-DD HH:mm:ss'
),
moment
(
new
Date
(),
'YYYY-MM-DD HH:mm:ss'
),
]);
]);
const
[
showSearchStyle
,
setShowSearchStyle
]
=
useState
(
false
);
// 是否显示模糊查询样式
const
[
showSearchStyle
,
setShowSearchStyle
]
=
useState
(
false
);
// 是否显示模糊查询样式
const
[
total
,
setTotal
]
=
useState
();
const
[
total
,
setTotal
]
=
useState
(
0
);
const
[
pageSize
,
setPageSize
]
=
useState
(
20
);
const
[
pageSize
,
setPageSize
]
=
useState
(
20
);
const
[
currentPage
,
setCurrentPage
]
=
useState
(
1
);
const
[
currentPage
,
setCurrentPage
]
=
useState
(
1
);
const
[
total1
,
setTotal1
]
=
useState
(
0
);
const
[
pageSize1
,
setPageSize1
]
=
useState
(
10
);
const
[
currentPage1
,
setCurrentPage1
]
=
useState
(
1
);
const
[
loginCodeFilters
,
setLoginCodeFilters
]
=
useState
([]);
const
[
loginCodeFilters
,
setLoginCodeFilters
]
=
useState
([]);
const
[
loginStateCodeFilters
,
setLoginStateCodeFilters
]
=
useState
([]);
const
[
loginStateCodeFilters
,
setLoginStateCodeFilters
]
=
useState
([]);
const
[
content
,
setContent
]
=
useState
();
const
[
content
,
setContent
]
=
useState
();
const
[
modalVisible
,
setModalVisible
]
=
useState
(
false
);
const
[
modalVisible
,
setModalVisible
]
=
useState
(
false
);
const
[
tableData
,
setTableData
]
=
useState
([]);
const
[
tableData
,
setTableData
]
=
useState
([]);
const
[
tableData1
,
setTableData1
]
=
useState
([]);
const
[
tableDataAccess
,
setTableDataAccess
]
=
useState
([]);
const
[
tableDataRemote
,
setTableDataRemote
]
=
useState
([]);
const
[
selectState
,
setSelectState
]
=
useState
(
'失败'
);
const
[
selectState
,
setSelectState
]
=
useState
(
'失败'
);
const
timeSorter
=
useRef
(
'desc'
);
const
timeSorter
=
useRef
(
'desc'
);
const
filterSorter
=
useRef
(
'requestDate'
);
const
filterSorter
=
useRef
(
'requestDate'
);
const
[
activeKey
,
setActiveKey
]
=
useState
(
'1'
);
const
[
totalAccess
,
setTotalAccess
]
=
useState
(
0
);
const
[
pageSizeAccess
,
setPageSizeAccess
]
=
useState
(
20
);
const
[
currentPageAccess
,
setCurrentPageAccess
]
=
useState
(
1
);
const
[
totalRemote
,
setTotalRemote
]
=
useState
(
0
);
const
[
pageSizeRemote
,
setPageSizeRemote
]
=
useState
(
20
);
const
[
currentPageRemote
,
setCurrentPageRemote
]
=
useState
(
1
);
useEffect
(()
=>
{
useEffect
(()
=>
{
getTableList
();
getTableList
();
getApiCount
();
},
[]);
},
[]);
const
getTableList
=
(
pageIndex
,
page
,
time
,
url
,
tag
,
success
,
flag
)
=>
{
const
getTableList
=
(
pageIndex
,
page
,
time
,
url
,
tag
,
success
,
flag
)
=>
{
...
@@ -105,20 +135,105 @@ const LogCenter = () => {
...
@@ -105,20 +135,105 @@ const LogCenter = () => {
});
});
};
};
const
getApiCount
=
(
pageIndex
,
page
,
time
,
url
,
flag
)
=>
{
setLoading1
(
true
);
let
newUrl
=
url
?
url
:
requestUrl
;
GetWayNumberofcalls
({
pageIndex
:
pageIndex
?
pageIndex
:
currentPage1
,
pageSize
:
page
?
page
:
pageSize1
,
dateFrom
:
time
?
time
[
0
].
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
allTime
[
0
].
format
(
'YYYY-MM-DD HH:mm:ss'
),
dateTo
:
time
?
time
[
1
].
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
allTime
[
1
].
format
(
'YYYY-MM-DD HH:mm:ss'
),
info
:
flag
?
''
:
newUrl
,
}).
then
(
resData
=>
{
setLoading1
(
false
);
if
(
resData
.
code
===
0
)
{
setTableData1
(
resData
.
data
.
listdata
);
setTotal1
(
resData
.
data
.
listcount
);
}
else
{
setTableData1
([]);
notification
.
error
({
message
:
'提示'
,
duration
:
3
,
description
:
resData
.
msg
,
});
}
});
};
const
getAccessLog
=
(
pageIndex
,
page
,
time
,
word
,
flag
)
=>
{
setLoadingAccess
(
true
);
let
newUrl
=
word
?
word
:
requestUrl
;
GetAccessLog
({
keyword
:
flag
?
''
:
newUrl
,
dateFrom
:
time
?
time
[
0
].
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
allTime
[
0
].
format
(
'YYYY-MM-DD HH:mm:ss'
),
dateTo
:
time
?
time
[
1
].
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
allTime
[
1
].
format
(
'YYYY-MM-DD HH:mm:ss'
),
pageIndex
:
pageIndex
?
pageIndex
:
currentPageAccess
,
pageSize
:
page
?
page
:
pageSizeAccess
,
}).
then
(
res
=>
{
setLoadingAccess
(
false
);
if
(
res
.
code
===
0
)
{
setTableDataAccess
(
res
.
data
.
data
);
setTotalAccess
(
res
.
data
.
count
);
}
else
{
setTableDataAccess
([]);
notification
.
error
({
message
:
'提示'
,
duration
:
3
,
description
:
res
.
msg
,
});
}
});
};
const
getRemoteOperationLog
=
(
pageIndex
,
page
,
time
,
code
)
=>
{
setLoadingRemote
(
true
);
GetRemoteOperationLog
({
deviceCode
:
code
?
code
:
requestUrl
,
dateFrom
:
time
?
time
[
0
].
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
allTime
[
0
].
format
(
'YYYY-MM-DD HH:mm:ss'
),
dateTo
:
time
?
time
[
1
].
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
allTime
[
1
].
format
(
'YYYY-MM-DD HH:mm:ss'
),
pageIndex
:
pageIndex
?
pageIndex
:
currentPageRemote
,
pageSize
:
page
?
page
:
pageSizeRemote
,
}).
then
(
res
=>
{
setLoadingRemote
(
false
);
if
(
res
.
code
===
0
)
{
setTableDataRemote
(
res
.
data
.
list
);
setTotalRemote
(
res
.
data
.
totalCount
);
}
else
{
setTableDataRemote
([]);
notification
.
error
({
message
:
'提示'
,
duration
:
3
,
description
:
res
.
msg
,
});
}
});
};
const
columns
=
[
const
columns
=
[
{
{
title
:
'接口名称'
,
title
:
'接口名称'
,
dataIndex
:
'path'
,
dataIndex
:
'path'
,
key
:
'path'
,
key
:
'path'
,
width
:
3
00
,
width
:
4
00
,
fixed
:
'left'
,
fixed
:
'left'
,
onCell
:
()
=>
({
onCell
:
()
=>
({
style
:
{
style
:
{
maxWidth
:
4
00
,
maxWidth
:
3
00
,
overflow
:
'hidden'
,
overflow
:
'hidden'
,
whiteSpace
:
'nowrap'
,
whiteSpace
:
'nowrap'
,
textOverflow
:
'ellipsis'
,
textOverflow
:
'ellipsis'
,
cursor
:
'pointer'
,
},
},
}),
}),
render
:
record
=>
(
render
:
record
=>
(
...
@@ -157,13 +272,6 @@ const LogCenter = () => {
...
@@ -157,13 +272,6 @@ const LogCenter = () => {
width
:
80
,
width
:
80
,
sorter
:
true
,
sorter
:
true
,
},
},
// {
// title: '返回状态码',
// dataIndex: 'result',
// key: 'result',
// width: 100,
// align: 'center',
// },
{
{
title
:
'请求方法'
,
title
:
'请求方法'
,
dataIndex
:
'method'
,
dataIndex
:
'method'
,
...
@@ -213,6 +321,233 @@ const LogCenter = () => {
...
@@ -213,6 +321,233 @@ const LogCenter = () => {
},
},
];
];
const
columns1
=
[
{
title
:
'调用频次排名'
,
width
:
100
,
align
:
'center'
,
fixed
:
'left'
,
render
:
(
text
,
record
,
index
)
=>
{
let
data
=
currentPage1
*
pageSize1
+
index
+
1
-
pageSize1
;
if
(
data
===
1
)
{
return
(
<
div
className=
{
styles
.
sort
}
type=
{
data
}
>
{
data
}
</
div
>
);
}
else
if
(
data
===
2
)
{
return
(
<
div
className=
{
styles
.
sort
}
type=
{
data
}
>
{
data
}
</
div
>
);
}
else
if
(
data
===
3
)
{
return
(
<
div
className=
{
styles
.
sort
}
type=
{
data
}
>
{
data
}
</
div
>
);
}
else
{
return
<
span
>
{
data
}
</
span
>;
}
},
},
{
title
:
'接口名称'
,
dataIndex
:
'path'
,
key
:
'path'
,
width
:
300
,
fixed
:
'left'
,
onCell
:
()
=>
({
style
:
{
maxWidth
:
300
,
overflow
:
'hidden'
,
whiteSpace
:
'nowrap'
,
textOverflow
:
'ellipsis'
,
cursor
:
'pointer'
,
},
}),
render
:
record
=>
(
<
Tooltip
placement=
"topLeft"
title=
{
record
}
>
{
record
}
</
Tooltip
>
),
},
{
title
:
'调用次数'
,
dataIndex
:
'count'
,
key
:
'count'
,
width
:
70
,
align
:
'center'
,
},
];
const
columnsAccess
=
[
{
title
:
'功能名称'
,
dataIndex
:
'功能名称'
,
key
:
'功能名称'
,
width
:
100
,
align
:
'center'
,
render
:
record
=>
searchStyle
(
record
),
},
{
title
:
'功能路径'
,
dataIndex
:
'功能路径'
,
key
:
'功能路径'
,
width
:
300
,
fixed
:
'left'
,
onCell
:
()
=>
({
style
:
{
maxWidth
:
300
,
overflow
:
'hidden'
,
whiteSpace
:
'nowrap'
,
textOverflow
:
'ellipsis'
,
},
}),
render
:
record
=>
(
<
Tooltip
placement=
"topLeft"
title=
{
record
}
>
{
searchStyle
(
record
)
}
</
Tooltip
>
),
},
{
title
:
'访问时间'
,
dataIndex
:
'访问时间'
,
key
:
'访问时间'
,
width
:
140
,
align
:
'center'
,
},
{
title
:
'功能路由'
,
dataIndex
:
'功能路由'
,
key
:
'功能路由'
,
width
:
200
,
align
:
'center'
,
render
:
record
=>
searchStyle
(
record
),
},
{
title
:
'虚拟目录'
,
dataIndex
:
'虚拟目录'
,
key
:
'虚拟目录'
,
align
:
'center'
,
width
:
80
,
},
{
title
:
'访问人'
,
dataIndex
:
'访问人'
,
key
:
'访问人'
,
width
:
80
,
align
:
'center'
,
render
:
record
=>
searchStyle
(
record
),
},
];
const
columnsRemote
=
[
{
title
:
'操作人'
,
dataIndex
:
'opreationName'
,
key
:
'opreationName'
,
width
:
100
,
align
:
'center'
,
},
{
title
:
'操作时间'
,
dataIndex
:
'opreationTime'
,
key
:
'opreationTime'
,
width
:
100
,
align
:
'center'
,
},
{
title
:
'初始状态'
,
dataIndex
:
'initStatus'
,
key
:
'initStatus'
,
width
:
80
,
align
:
'center'
,
},
{
title
:
'设备编码'
,
dataIndex
:
'deviceCode'
,
key
:
'deviceCode'
,
width
:
100
,
align
:
'center'
,
},
{
title
:
'服务返回信息'
,
dataIndex
:
'backContent'
,
key
:
'backContent'
,
align
:
'center'
,
width
:
200
,
onCell
:
()
=>
({
style
:
{
maxWidth
:
200
,
overflow
:
'hidden'
,
whiteSpace
:
'nowrap'
,
textOverflow
:
'ellipsis'
,
},
}),
render
:
record
=>
(
<
Tooltip
placement=
"topLeft"
title=
{
record
}
>
{
record
}
</
Tooltip
>
),
},
{
title
:
'控制等待时间'
,
dataIndex
:
'controlWatiTime'
,
key
:
'controlWatiTime'
,
width
:
80
,
align
:
'center'
,
},
{
title
:
'控制点位'
,
dataIndex
:
'controlPoint'
,
key
:
'controlPoint'
,
width
:
140
,
align
:
'center'
,
onCell
:
()
=>
({
style
:
{
maxWidth
:
140
,
overflow
:
'hidden'
,
whiteSpace
:
'nowrap'
,
textOverflow
:
'ellipsis'
,
},
}),
render
:
record
=>
(
<
Tooltip
placement=
"topLeft"
title=
{
record
}
>
{
record
}
</
Tooltip
>
),
},
{
title
:
'控制结果'
,
dataIndex
:
'controlResult'
,
key
:
'controlResult'
,
width
:
80
,
align
:
'center'
,
render
:
record
=>
{
if
(
record
===
'成功'
)
{
return
<
Tag
color=
"green"
>
{
record
}
</
Tag
>;
}
return
<
Tag
color=
"orange"
>
{
record
}
</
Tag
>;
},
},
{
title
:
'目标状态'
,
dataIndex
:
'targetStatus'
,
key
:
'targetStatus'
,
align
:
'center'
,
width
:
80
,
},
{
title
:
'实际状态'
,
dataIndex
:
'realStatus'
,
key
:
'realStatus'
,
width
:
80
,
align
:
'center'
,
},
];
const
handleLog
=
text
=>
{
const
handleLog
=
text
=>
{
setModalVisible
(
true
);
setModalVisible
(
true
);
setContent
(
text
);
setContent
(
text
);
...
@@ -242,13 +577,28 @@ const LogCenter = () => {
...
@@ -242,13 +577,28 @@ const LogCenter = () => {
const
changeTime
=
time
=>
{
const
changeTime
=
time
=>
{
let
time1
=
time
[
0
].
format
(
'YYYY-MM'
);
let
time1
=
time
[
0
].
format
(
'YYYY-MM'
);
let
time2
=
time
[
1
].
format
(
'YYYY-MM'
);
let
time2
=
time
[
1
].
format
(
'YYYY-MM'
);
if
(
time1
!==
time2
)
{
if
(
time1
!==
time2
&&
activeKey
===
'1'
)
{
message
.
warning
(
'不允许跨月查询'
);
message
.
warning
(
'不允许跨月查询'
);
}
else
{
}
else
{
if
(
activeKey
===
'1'
)
{
setAllTime
(
time
);
setAllTime
(
time
);
setPageSize
(
20
);
setPageSize
(
20
);
setCurrentPage
(
1
);
setCurrentPage
(
1
);
getTableList
(
1
,
20
,
time
);
getTableList
(
1
,
20
,
time
);
setPageSize1
(
10
);
setCurrentPage1
(
1
);
getApiCount
(
1
,
10
,
time
);
}
else
if
(
activeKey
===
'2'
)
{
setAllTime
(
time
);
setPageSizeAccess
(
20
);
setCurrentPageAccess
(
1
);
getAccessLog
(
1
,
20
,
time
);
}
else
{
setAllTime
(
time
);
setPageSizeRemote
(
20
);
setCurrentPageRemote
(
1
);
getRemoteOperationLog
(
1
,
20
,
time
);
}
}
}
};
};
// 近1/6/12/24小时
// 近1/6/12/24小时
...
@@ -264,6 +614,7 @@ const LogCenter = () => {
...
@@ -264,6 +614,7 @@ const LogCenter = () => {
setLabel
(
''
);
setLabel
(
''
);
setSelectState
(
'失败'
);
setSelectState
(
'失败'
);
setShowSearchStyle
(
false
);
setShowSearchStyle
(
false
);
if
(
activeKey
===
'1'
)
{
getTableList
(
getTableList
(
1
,
1
,
20
,
20
,
...
@@ -273,6 +624,30 @@ const LogCenter = () => {
...
@@ -273,6 +624,30 @@ const LogCenter = () => {
'失败'
,
'失败'
,
'rest'
,
'rest'
,
);
);
getApiCount
(
1
,
10
,
[
moment
().
startOf
(
'month'
),
moment
(
new
Date
(),
'YYYY-MM-DD HH:mm:ss'
)],
''
,
'rest'
,
);
}
else
if
(
activeKey
===
'2'
)
{
getAccessLog
(
1
,
20
,
[
moment
().
startOf
(
'month'
),
moment
(
new
Date
(),
'YYYY-MM-DD HH:mm:ss'
)],
''
,
'rest'
,
);
}
else
{
getRemoteOperationLog
(
1
,
20
,
[
moment
().
startOf
(
'month'
),
moment
(
new
Date
(),
'YYYY-MM-DD HH:mm:ss'
)],
''
,
'rest'
,
);
}
};
};
const
paginationChange
=
(
page
,
pageSizes
)
=>
{
const
paginationChange
=
(
page
,
pageSizes
)
=>
{
...
@@ -281,6 +656,24 @@ const LogCenter = () => {
...
@@ -281,6 +656,24 @@ const LogCenter = () => {
setPageSize
(
pageSizes
);
setPageSize
(
pageSizes
);
};
};
const
paginationChange1
=
(
page
,
pageSizes
)
=>
{
getApiCount
(
page
,
pageSizes
);
setCurrentPage1
(
page
);
setPageSize1
(
pageSizes
);
};
const
paginationChangeAccess
=
(
page
,
pageSizes
)
=>
{
getAccessLog
(
page
,
pageSizes
);
setCurrentPageAccess
(
page
);
setPageSizeAccess
(
pageSizes
);
};
const
paginationChangeRemote
=
(
page
,
pageSizes
)
=>
{
getRemoteOperationLog
(
page
,
pageSizes
);
setCurrentPageRemote
(
page
);
setPageSizeRemote
(
pageSizes
);
};
const
onChangeInput
=
(
pagination
,
filters
,
sorter
)
=>
{
const
onChangeInput
=
(
pagination
,
filters
,
sorter
)
=>
{
timeSorter
.
current
=
sorter
.
order
===
'ascend'
?
'asc'
:
'desc'
;
timeSorter
.
current
=
sorter
.
order
===
'ascend'
?
'asc'
:
'desc'
;
filterSorter
.
current
=
sorter
.
field
?
sorter
.
field
:
'requestDate'
;
filterSorter
.
current
=
sorter
.
field
?
sorter
.
field
:
'requestDate'
;
...
@@ -291,8 +684,59 @@ const LogCenter = () => {
...
@@ -291,8 +684,59 @@ const LogCenter = () => {
setSelectState
(
e
);
setSelectState
(
e
);
getTableList
(
''
,
''
,
''
,
''
,
''
,
e
);
getTableList
(
''
,
''
,
''
,
''
,
''
,
e
);
};
};
const
onChange
=
e
=>
{
setActiveKey
(
e
);
setAllTime
([
moment
().
startOf
(
'month'
),
moment
(
new
Date
(),
'YYYY-MM-DD HH:mm:ss'
)]);
setCurrentPage
(
1
);
setCurrentPage1
(
1
);
setCurrentPageAccess
(
1
);
setCurrentPageRemote
(
1
);
setRequestUrl
(
''
);
setLabel
(
''
);
setSelectState
(
'失败'
);
setShowSearchStyle
(
false
);
if
(
e
===
'1'
)
{
getTableList
(
1
,
20
,
[
moment
().
startOf
(
'month'
),
moment
(
new
Date
(),
'YYYY-MM-DD HH:mm:ss'
)],
''
,
''
,
'失败'
,
'rest'
,
);
getApiCount
(
1
,
10
,
[
moment
().
startOf
(
'month'
),
moment
(
new
Date
(),
'YYYY-MM-DD HH:mm:ss'
)],
''
,
'rest'
,
);
}
else
if
(
e
===
'2'
)
{
getAccessLog
(
1
,
20
,
[
moment
().
startOf
(
'month'
),
moment
(
new
Date
(),
'YYYY-MM-DD HH:mm:ss'
)],
''
,
);
}
else
{
getRemoteOperationLog
(
1
,
20
,
[
moment
().
startOf
(
'month'
),
moment
(
new
Date
(),
'YYYY-MM-DD HH:mm:ss'
)],
''
,
);
}
};
return
(
return
(
<
div
className=
{
styles
.
centerLog
}
>
<
div
className=
{
styles
.
centerLog
}
>
<
Tabs
activeKey=
{
activeKey
}
onChange=
{
onChange
}
style=
{
{
backgroundColor
:
'white'
,
paddingLeft
:
'20px'
}
}
>
<
TabPane
tab=
"接口调用"
key=
"1"
>
<
div
className=
{
styles
.
head
}
>
<
div
className=
{
styles
.
head
}
>
<
span
style=
{
{
lineHeight
:
2
,
marginLeft
:
'7px'
}
}
>
时间:
</
span
>
<
span
style=
{
{
lineHeight
:
2
,
marginLeft
:
'7px'
}
}
>
时间:
</
span
>
<
RangePicker
<
RangePicker
...
@@ -326,6 +770,8 @@ const LogCenter = () => {
...
@@ -326,6 +770,8 @@ const LogCenter = () => {
setPageSize
(
20
);
setPageSize
(
20
);
setCurrentPage
(
1
);
setCurrentPage
(
1
);
getTableList
(
1
,
20
);
getTableList
(
1
,
20
);
setCurrentPage1
(
1
);
getApiCount
(
1
,
10
);
setShowSearchStyle
(
true
);
setShowSearchStyle
(
true
);
}
}
}
}
>
>
...
@@ -342,13 +788,15 @@ const LogCenter = () => {
...
@@ -342,13 +788,15 @@ const LogCenter = () => {
重置
重置
</
Button
>
</
Button
>
</
div
>
</
div
>
<
div
className=
{
styles
.
content
}
>
<
div
className=
{
styles
.
left
}
>
<
div
className=
{
styles
.
table
}
>
<
div
className=
{
styles
.
table
}
>
<
Table
<
Table
size=
"small"
size=
"small"
bordered
bordered
columns=
{
columns
}
columns=
{
columns
}
dataSource=
{
tableData
}
dataSource=
{
tableData
}
scroll=
{
{
y
:
'calc(100% - 35
px)'
}
}
scroll=
{
{
y
:
'calc(100% - 30
px)'
}
}
pagination=
{
false
}
pagination=
{
false
}
onChange=
{
onChangeInput
}
onChange=
{
onChangeInput
}
loading=
{
loading
}
loading=
{
loading
}
...
@@ -366,6 +814,183 @@ const LogCenter = () => {
...
@@ -366,6 +814,183 @@ const LogCenter = () => {
showSizeChanger
showSizeChanger
/>
/>
</
div
>
</
div
>
</
div
>
<
div
className=
{
styles
.
right
}
>
<
div
className=
{
styles
.
table
}
>
<
Table
size=
"large"
bordered
columns=
{
columns1
}
dataSource=
{
tableData1
}
scroll=
{
{
y
:
'calc(100% - 30px)'
}
}
pagination=
{
false
}
onChange=
{
onChangeInput
}
loading=
{
loading1
}
/>
</
div
>
<
div
className=
{
styles
.
footer
}
>
<
Pagination
total=
{
total1
}
defaultPageSize=
{
10
}
showTotal=
{
(
aa
,
range
)
=>
`第${range[0]}-${range[1]} 条/共 ${total1} 条`
}
current=
{
currentPage1
}
onChange=
{
paginationChange1
}
size=
"small"
pageSize=
{
pageSize1
}
showSizeChanger=
{
false
}
/>
</
div
>
</
div
>
</
div
>
</
TabPane
>
<
TabPane
tab=
"功能访问"
key=
"2"
>
<
div
className=
{
styles
.
head
}
>
<
span
style=
{
{
lineHeight
:
2
,
marginLeft
:
'7px'
}
}
>
时间:
</
span
>
<
RangePicker
locale=
{
locale
}
showTime
format=
"YYYY-MM-DD HH:mm:ss"
onChange=
{
changeTime
}
value=
{
allTime
}
allowClear=
{
false
}
/>
<
Tooltip
title=
"可查询功能路径 、功能路由、功能名称、访问人"
>
<
InfoCircleOutlined
style=
{
{
color
:
'#1890ff'
,
marginLeft
:
'20px'
,
}
}
/>
</
Tooltip
>
<
span
style=
{
{
marginLeft
:
'3px'
}
}
>
快速搜索:
</
span
>
<
Input
style=
{
{
width
:
'200px'
}
}
placeholder=
"请输入功能路径 、功能路由、功能名称、访问人"
onChange=
{
e
=>
{
setRequestUrl
(
e
.
target
.
value
);
}
}
value=
{
requestUrl
}
allowClear
/>
<
Button
type=
"primary"
style=
{
{
marginLeft
:
'10px'
}
}
onClick=
{
()
=>
{
setPageSizeAccess
(
20
);
setCurrentPageAccess
(
1
);
getAccessLog
(
1
,
20
);
setShowSearchStyle
(
true
);
}
}
>
查询
</
Button
>
<
Button
icon=
{
<
SyncOutlined
className=
{
styles
.
icon
}
/>
}
onClick=
{
handleReset
}
style=
{
{
marginLeft
:
'25px'
,
verticalAlign
:
'middle'
,
}
}
>
重置
</
Button
>
</
div
>
<
div
className=
{
styles
.
table
}
>
<
Table
size=
"small"
bordered
columns=
{
columnsAccess
}
dataSource=
{
tableDataAccess
}
scroll=
{
{
y
:
'calc(100% - 30px)'
}
}
pagination=
{
false
}
onChange=
{
onChangeInput
}
loading=
{
loadingAccess
}
/>
</
div
>
<
div
className=
{
styles
.
footer
}
>
<
Pagination
total=
{
totalAccess
}
showTotal=
{
(
aa
,
range
)
=>
`第${range[0]}-${range[1]} 条/共 ${totalAccess} 条`
}
pageSizeOptions=
{
[
10
,
20
,
40
,
100
]
}
current=
{
currentPageAccess
}
onChange=
{
paginationChangeAccess
}
size=
"small"
pageSize=
{
pageSizeAccess
}
showSizeChanger
/>
</
div
>
</
TabPane
>
<
TabPane
tab=
"设备控制"
key=
"3"
>
<
div
className=
{
styles
.
head
}
>
<
span
style=
{
{
lineHeight
:
2
,
marginLeft
:
'7px'
}
}
>
时间:
</
span
>
<
RangePicker
locale=
{
locale
}
showTime
format=
"YYYY-MM-DD HH:mm:ss"
onChange=
{
changeTime
}
value=
{
allTime
}
allowClear=
{
false
}
/>
<
span
style=
{
{
marginLeft
:
'20px'
}
}
>
设备编码:
</
span
>
<
Input
style=
{
{
width
:
'200px'
}
}
placeholder=
"请输入设备编码"
onChange=
{
e
=>
{
setRequestUrl
(
e
.
target
.
value
);
}
}
value=
{
requestUrl
}
allowClear
/>
<
Button
type=
"primary"
style=
{
{
marginLeft
:
'10px'
}
}
onClick=
{
()
=>
{
setPageSizeRemote
(
20
);
setCurrentPageRemote
(
1
);
getRemoteOperationLog
(
1
,
20
);
setShowSearchStyle
(
true
);
}
}
>
查询
</
Button
>
<
Button
icon=
{
<
SyncOutlined
className=
{
styles
.
icon
}
/>
}
onClick=
{
handleReset
}
style=
{
{
marginLeft
:
'25px'
,
verticalAlign
:
'middle'
,
}
}
>
重置
</
Button
>
</
div
>
<
div
className=
{
styles
.
table
}
>
<
Table
size=
"small"
bordered
columns=
{
columnsRemote
}
dataSource=
{
tableDataRemote
}
scroll=
{
{
y
:
'calc(100% - 30px)'
}
}
pagination=
{
false
}
onChange=
{
onChangeInput
}
loading=
{
loadingRemote
}
/>
</
div
>
<
div
className=
{
styles
.
footer
}
>
<
Pagination
total=
{
totalRemote
}
showTotal=
{
(
aa
,
range
)
=>
`第${range[0]}-${range[1]} 条/共 ${totalRemote} 条`
}
pageSizeOptions=
{
[
10
,
20
,
40
,
100
]
}
current=
{
currentPageRemote
}
onChange=
{
paginationChangeRemote
}
size=
"small"
pageSize=
{
pageSizeRemote
}
showSizeChanger
/>
</
div
>
</
TabPane
>
</
Tabs
>
<
Modal
<
Modal
title=
"详细信息"
title=
"详细信息"
visible=
{
modalVisible
}
visible=
{
modalVisible
}
...
...
src/pages/log/logCenter/index.less
View file @
81646cbf
.centerLog {
.centerLog {
width: 100%;
width: 100%;
height: 100%;
height: 100%;
display: flex;
overflow-y: hidden;
flex-direction: column;
.head {
.head {
padding: 10px;
background: white;
background: white;
margin-bottom: 2px;
margin-bottom: 2px;
width: 100%;
width: 100%;
height: 32px;
display: flex;
display: flex;
align-items: center;
align-items: center;
flex-wrap: wrap;
flex-wrap:
no-
wrap;
}
}
.content {
width: 100%;
height: calc(100% - 40px);
display: flex;
justify-content: space-between;
align-items: center;
.left {
width: 65%;
height: 100%;
.table {
.table {
flex: 1;
width: 100%;
width: 100%;
background-color: white;
background-color: white;
padding: 10px;
padding: 10px;
overflow: hidden;
overflow: hidden;
margin-bottom: 3px;
margin-bottom: 3px;
height: calc(100vh - 210px);
:global {
:global {
.ant-table-wrapper {
.ant-table-wrapper {
height: 100%;
height: 100%;
...
@@ -26,26 +35,141 @@
...
@@ -26,26 +35,141 @@
.ant-spin-nested-loading {
.ant-spin-nested-loading {
height: 100%;
height: 100%;
.ant-spin-container
{
.ant-spin-container
{
height: 100%;
height: 100%;
.ant-table.ant-table-small
{
.ant-table.ant-table-small
{
height: 100%;
height: 100%;
.ant-table-container {
.ant-table-container {
height: 100%;
height: 100%;
}
}
}
}
}
}
}
}
}
.footer {
width: 100%;
height: 42px;
background-color: white;
display: flex;
justify-content: flex-end;
padding: 10px;
}
}
.right {
width: 34%;
height: 100%;
:global {
::-webkit-scrollbar-thumb {
border-radius: 0;
}
::-webkit-scrollbar {
display: none;
}
}
.table {
width: 100%;
background-color: white;
padding: 10px;
overflow: hidden;
margin-bottom: 3px;
height: calc(100vh - 210px);
.sort {
width: 22px;
height: 22px;
border-radius: 50%;
font-size: 14px;
font-family: Microsoft YaHei;
font-weight: bold;
display: flex;
justify-content: center;
align-items: center;
margin: auto;
&[type='1'] {
color: #fb0909;
border: 2px solid #faa0a0;
}
&[type='2'] {
color: #fb6a09;
border: 2px solid #f07942;
}
&[type='3'] {
color: #fbba09;
border: 2px solid #f8e680;
}
}
:global {
.ant-table-wrapper {
height: 100%;
.ant-spin-nested-loading {
height: 100%;
.ant-spin-container {
height: 100%;
.ant-table {
height: 100%;
.ant-table-container {
height: 100%;
}
}
}
}
}
.ant-table-row-level-0 {
height: 65px;
}
}
}
.footer {
width: 100%;
height: 42px;
background-color: white;
display: flex;
justify-content: flex-end;
padding: 10px;
}
}
}
}
.table {
width: 100%;
background-color: white;
padding: 10px;
overflow: hidden;
margin-bottom: 3px;
height: calc(100vh - 210px);
:global {
.ant-table-wrapper {
height: 100%;
.ant-spin-nested-loading {
height: 100%;
.ant-spin-container {
height: 100%;
.ant-table.ant-table-small {
height: 100%;
.ant-table-container {
height: 100%;
}
}
}
}
}
}
}
}
}
}
.footer{
}
.footer {
width: 100%;
width: 100%;
height: 42px;
height: 42px;
background-color: white;
background-color: white;
...
...
src/pages/user/login/index.jsx
View file @
81646cbf
...
@@ -52,11 +52,11 @@ const Login = props => {
...
@@ -52,11 +52,11 @@ const Login = props => {
sessionStorage
.
setItem
(
'userType'
,
AUTHORITY
[
userMode
]);
sessionStorage
.
setItem
(
'userType'
,
AUTHORITY
[
userMode
]);
sessionStorage
.
setItem
(
'userName'
,
userName
);
sessionStorage
.
setItem
(
'userName'
,
userName
);
if
(
userMode
===
USER_MODE
.
SUPER
)
{
if
(
userMode
===
USER_MODE
.
SUPER
)
{
history
.
push
(
`/solution`
);
//
history.push(`/solution`);
//
history.push(`/homePage`);
history
.
push
(
`/homePage`
);
}
else
{
}
else
{
history
.
push
(
`/authority/user`
);
//
history.push(`/authority/user`);
//
history.push(`/homePage`);
history
.
push
(
`/homePage`
);
}
}
}
}
if
(
userMode
===
USER_MODE
.
COMMON
)
{
if
(
userMode
===
USER_MODE
.
COMMON
)
{
...
...
src/routes/config.js
View file @
81646cbf
...
@@ -192,6 +192,12 @@ export default {
...
@@ -192,6 +192,12 @@ export default {
path
:
'/'
,
path
:
'/'
,
component
:
BasicLayout
,
component
:
BasicLayout
,
routes
:
[
routes
:
[
{
path
:
'/homePage'
,
name
:
'首页'
,
icon
:
<
HomeOutlined
style
=
{
iconStyle
}
/>
,
component
:
HomePage
,
},
{
{
path
:
'/solution'
,
path
:
'/solution'
,
name
:
'解决方案'
,
name
:
'解决方案'
,
...
@@ -199,12 +205,6 @@ export default {
...
@@ -199,12 +205,6 @@ export default {
authority
:
superAuthority
,
authority
:
superAuthority
,
component
:
CurrentSolution
,
component
:
CurrentSolution
,
},
},
{
path
:
'/homePage'
,
name
:
'仪表盘'
,
icon
:
<
HomeOutlined
style
=
{
iconStyle
}
/>
,
component
:
HomePage
,
},
{
{
path
:
'/dbm'
,
path
:
'/dbm'
,
name
:
'数据库'
,
name
:
'数据库'
,
...
...
src/services/logCenter/api.js
View file @
81646cbf
...
@@ -10,3 +10,12 @@ import { get, PUBLISH_SERVICE, post, postForm } from '../index';
...
@@ -10,3 +10,12 @@ import { get, PUBLISH_SERVICE, post, postForm } from '../index';
// 获取错误日志、业务日志、第三方调用日志
// 获取错误日志、业务日志、第三方调用日志
export
const
GetCallLogPages
=
data
=>
post
(
`/PandaCore/GCK/Log/GetCallLogPages`
,
data
);
export
const
GetCallLogPages
=
data
=>
post
(
`/PandaCore/GCK/Log/GetCallLogPages`
,
data
);
export
const
GetWayNumberofcalls
=
params
=>
post
(
`/PandaCore/GCK/Log/GetWayNumberofcalls`
,
params
);
// 菜单访问记录
export
const
GetAccessLog
=
params
=>
post
(
`
${
PUBLISH_SERVICE
}
/LogCenter/GetAccessLog`
,
params
);
// 设备控制记录
export
const
GetRemoteOperationLog
=
params
=>
post
(
`/PandaMonitor/Monitor/Device/GetRemoteOperationLog`
,
params
);
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