@@ -10,9 +10,7 @@ import {
1010 } from "../theme/styledComponents" ;
1111import { HeaderBack } from "pages/setting/permission/styledComponents" ;
1212import { getUser } from "@lowcoder-ee/redux/selectors/usersSelectors" ;
13- import { fetchCommonSettings } from "@lowcoder-ee/redux/reduxActions/commonSettingsActions" ;
14- import ReactECharts from "echarts-for-react" ;
15- import { getAuditLogs } from "api/enterpriseApi" ;
13+ import { getAuditLogs , getAuditLogStatistics } from "api/enterpriseApi" ;
1614import EventTypeTimeChart from "./charts/eventTypesTime" ;
1715import { debounce } from "lodash" ;
1816import { DatePicker } from "antd" ;
@@ -21,6 +19,8 @@ import { Link, useLocation } from "react-router-dom";
2119import history from "util/history" ;
2220import { SETTING_URL } from "@lowcoder-ee/constants/routesURL" ;
2321import { EyeOutlined } from "@ant-design/icons" ;
22+ import { AuditLog , AuditLogStat , eventTypes } from "./auditContants" ;
23+ import Statistics from "./components/statistics" ;
2424
2525const { RangePicker } = DatePicker ;
2626
@@ -42,45 +42,6 @@ const StyleThemeSettingsCover = styled.div`
4242 border-radius: 10px 10px 0 0;
4343` ;
4444
45- const eventTypes = [
46- { value : "USER_LOGIN" , label : trans ( "enterprise.USER_LOGIN" ) , color : "#1890ff" } ,
47- { value : "USER_LOGOUT" , label : trans ( "enterprise.USER_LOGOUT" ) , color : "#1d39c4" } ,
48- { value : "APPLICATION_CREATE" , label : trans ( "enterprise.APPLICATION_CREATE" ) , color : "#52c41a" } ,
49- { value : "APPLICATION_DELETE" , label : trans ( "enterprise.APPLICATION_DELETE" ) , color : "#389e0d" } ,
50- { value : "APPLICATION_UPDATE" , label : trans ( "enterprise.APPLICATION_UPDATE" ) , color : "#237804" } ,
51- { value : "APPLICATION_MOVE" , label : trans ( "enterprise.APPLICATION_MOVE" ) , color : "#135200" } ,
52- { value : "APPLICATION_RECYCLED" , label : trans ( "enterprise.APPLICATION_RECYCLED" ) , color : "#00474f" } ,
53- { value : "APPLICATION_RESTORE" , label : trans ( "enterprise.APPLICATION_RESTORE" ) , color : "#003a8c" } ,
54- { value : "APPLICATION_PUBLISH" , label : trans ( "enterprise.APPLICATION_PUBLISH" ) , color : "#002766" } ,
55- { value : "APPLICATION_VERSION_CHANGE" , label : trans ( "enterprise.APPLICATION_VERSION_CHANGE" ) , color : "#0050b3" } ,
56- { value : "APPLICATION_SHARING_CHANGE" , label : trans ( "enterprise.APPLICATION_SHARING_CHANGE" ) , color : "#1890ff" } ,
57- { value : "APPLICATION_PERMISSION_CHANGE" , label : trans ( "enterprise.APPLICATION_PERMISSION_CHANGE" ) , color : "#1d39c4" } ,
58- { value : "FOLDER_CREATE" , label : trans ( "enterprise.FOLDER_CREATE" ) , color : "#faad14" } ,
59- { value : "FOLDER_DELETE" , label : trans ( "enterprise.FOLDER_DELETE" ) , color : "#d48806" } ,
60- { value : "FOLDER_UPDATE" , label : trans ( "enterprise.FOLDER_UPDATE" ) , color : "#ad6800" } ,
61- { value : "QUERY_EXECUTION" , label : trans ( "enterprise.QUERY_EXECUTION" ) , color : "#722ed1" } ,
62- { value : "GROUP_CREATE" , label : trans ( "enterprise.GROUP_CREATE" ) , color : "#f5222d" } ,
63- { value : "GROUP_UPDATE" , label : trans ( "enterprise.GROUP_UPDATE" ) , color : "#cf1322" } ,
64- { value : "GROUP_DELETE" , label : trans ( "enterprise.GROUP_DELETE" ) , color : "#a8071a" } ,
65- { value : "GROUP_MEMBER_ADD" , label : trans ( "enterprise.GROUP_MEMBER_ADD" ) , color : "#820014" } ,
66- { value : "GROUP_MEMBER_ROLE_UPDATE" , label : trans ( "enterprise.GROUP_MEMBER_ROLE_UPDATE" ) , color : "#5c0011" } ,
67- { value : "GROUP_MEMBER_LEAVE" , label : trans ( "enterprise.GROUP_MEMBER_LEAVE" ) , color : "#8c8c8c" } ,
68- { value : "GROUP_MEMBER_REMOVE" , label : trans ( "enterprise.GROUP_MEMBER_REMOVE" ) , color : "#595959" } ,
69- { value : "SERVER_START_UP" , label : trans ( "enterprise.SERVER_START_UP" ) , color : "#8c8c8c" } ,
70- { value : "SERVER_INFO" , label : trans ( "enterprise.SERVER_INFO" ) , color : "#595959" } ,
71- { value : "DATA_SOURCE_CREATE" , label : trans ( "enterprise.DATA_SOURCE_CREATE" ) , color : "#f5222d" } ,
72- { value : "DATA_SOURCE_UPDATE" , label : trans ( "enterprise.DATA_SOURCE_UPDATE" ) , color : "#cf1322" } ,
73- { value : "DATA_SOURCE_DELETE" , label : trans ( "enterprise.DATA_SOURCE_DELETE" ) , color : "#a8071a" } ,
74- { value : "DATA_SOURCE_PERMISSION_GRANT" , label : trans ( "enterprise.DATA_SOURCE_PERMISSION_GRANT" ) , color : "#820014" } ,
75- { value : "DATA_SOURCE_PERMISSION_UPDATE" , label : trans ( "enterprise.DATA_SOURCE_PERMISSION_UPDATE" ) , color : "#5c0011" } ,
76- { value : "DATA_SOURCE_PERMISSION_DELETE" , label : trans ( "enterprise.DATA_SOURCE_PERMISSION_DELETE" ) , color : "#8c8c8c" } ,
77- { value : "LIBRARY_QUERY_CREATE" , label : trans ( "enterprise.LIBRARY_QUERY_CREATE" ) , color : "#722ed1" } ,
78- { value : "LIBRARY_QUERY_UPDATE" , label : trans ( "enterprise.LIBRARY_QUERY_UPDATE" ) , color : "#531dab" } ,
79- { value : "LIBRARY_QUERY_DELETE" , label : trans ( "enterprise.LIBRARY_QUERY_DELETE" ) , color : "#391085" } ,
80- { value : "LIBRARY_QUERY_PUBLISH" , label : trans ( "enterprise.LIBRARY_QUERY_PUBLISH" ) , color : "#22075e" } ,
81- { value : "API_CALL_EVENT" , label : trans ( "enterprise.API_CALL_EVENT" ) , color : "#8c8c8c" } ,
82- ] ;
83-
8445export const getEventColor = ( eventType : string ) : string => {
8546 const matchedType = eventTypes . find ( ( et ) => et . value === eventType ) ;
8647 return matchedType ? matchedType . color : "#8c8c8c" ;
@@ -92,23 +53,13 @@ export const getEventLabel = (eventType: string): string => {
9253} ;
9354
9455export function AuditLogDashboard ( ) {
95-
96- type AuditLog = {
97- eventType : string ;
98- eventTime : string ;
99- environmentId : string ;
100- orgId : string ;
101- userId : string ;
102- appId : string ;
103- } ;
104-
10556 const currentUser = useSelector ( getUser ) ;
10657 const location = useLocation ( ) ;
10758
10859 const [ allLogs , setAllLogs ] = useState < AuditLog [ ] > ( [ ] ) ;
10960 const [ currentPageLogs , setCurrentPageLogs ] = useState < AuditLog [ ] > ( [ ] ) ;
61+ const [ statistics , setStatistics ] = useState < AuditLogStat [ ] > ( [ ] ) ;
11062
111- // const [logs, setLogs] = useState([]);
11263 const [ total , setTotal ] = useState ( 0 ) ;
11364 const [ loading , setLoading ] = useState ( false ) ;
11465 const [ form ] = Form . useForm ( ) ;
@@ -175,6 +126,9 @@ export function AuditLogDashboard() {
175126 setLoading ( true ) ;
176127 try {
177128 const data = await getAuditLogs ( cleanedParams ) ;
129+ const stats = await getAuditLogStatistics ( cleanedParams ) ;
130+
131+ setStatistics ( stats ?. data || [ ] ) ;
178132
179133 if ( resetData ) {
180134 setAllLogs ( data . data || [ ] ) ;
@@ -418,6 +372,9 @@ export function AuditLogDashboard() {
418372 </ Flex >
419373 </ Form >
420374 </ Card >
375+ { Boolean ( statistics . length ) && ! loading && (
376+ < Statistics stats = { statistics } />
377+ ) }
421378 < Card >
422379 { loading ? (
423380 < Skeleton active paragraph = { { rows : 5 } } />
0 commit comments