|
@@ -33,15 +33,40 @@ const Logs: React.FC = () => {
|
|
|
const queryParams: Record<string, any> = { page, pageSize };
|
|
const queryParams: Record<string, any> = { page, pageSize };
|
|
|
|
|
|
|
|
if (searchText) queryParams.keyword = searchText;
|
|
if (searchText) queryParams.keyword = searchText;
|
|
|
- if (filters.resourceType) queryParams.resourceType = filters.resourceType;
|
|
|
|
|
- if (filters.action) queryParams.action = filters.action;
|
|
|
|
|
- if (filters.method) queryParams.method = filters.method;
|
|
|
|
|
- if (filters.endpoint) queryParams.endpoint = filters.endpoint;
|
|
|
|
|
- if (filters.userId) queryParams.userId = filters.userId;
|
|
|
|
|
- if (filters.ipAddress) queryParams.ipAddress = filters.ipAddress;
|
|
|
|
|
- if (filters.status) queryParams.status = filters.status;
|
|
|
|
|
- if (filters.dateRange?.[0]) queryParams.startDate = filters.dateRange[0].format('YYYY-MM-DD');
|
|
|
|
|
- if (filters.dateRange?.[1]) queryParams.endDate = filters.dateRange[1].format('YYYY-MM-DD');
|
|
|
|
|
|
|
+
|
|
|
|
|
+ // 构建filters对象以支持通用CRUD的增强筛选功能
|
|
|
|
|
+ const filtersObj: Record<string, any> = {};
|
|
|
|
|
+
|
|
|
|
|
+ if (filters.resourceType) filtersObj.resourceType = filters.resourceType;
|
|
|
|
|
+ if (filters.action) filtersObj.action = filters.action;
|
|
|
|
|
+ if (filters.method) filtersObj.method = filters.method;
|
|
|
|
|
+ if (filters.endpoint) filtersObj.endpoint = { '%': `%${filters.endpoint}%` };
|
|
|
|
|
+ if (filters.userId) filtersObj.userId = filters.userId;
|
|
|
|
|
+ if (filters.ipAddress) filtersObj.ipAddress = { '%': `%${filters.ipAddress}%` };
|
|
|
|
|
+ if (filters.status) filtersObj.status = filters.status;
|
|
|
|
|
+
|
|
|
|
|
+ // 处理日期范围
|
|
|
|
|
+ if (filters.dateRange?.[0] && filters.dateRange?.[1]) {
|
|
|
|
|
+ filtersObj.createdAt = {
|
|
|
|
|
+ between: [
|
|
|
|
|
+ filters.dateRange[0].format('YYYY-MM-DD'),
|
|
|
|
|
+ filters.dateRange[1].format('YYYY-MM-DD')
|
|
|
|
|
+ ]
|
|
|
|
|
+ };
|
|
|
|
|
+ } else if (filters.dateRange?.[0]) {
|
|
|
|
|
+ filtersObj.createdAt = {
|
|
|
|
|
+ gte: filters.dateRange[0].format('YYYY-MM-DD')
|
|
|
|
|
+ };
|
|
|
|
|
+ } else if (filters.dateRange?.[1]) {
|
|
|
|
|
+ filtersObj.createdAt = {
|
|
|
|
|
+ lte: filters.dateRange[1].format('YYYY-MM-DD')
|
|
|
|
|
+ };
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 如果有筛选条件,添加到filters参数
|
|
|
|
|
+ if (Object.keys(filtersObj).length > 0) {
|
|
|
|
|
+ queryParams.filters = JSON.stringify(filtersObj);
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
const response = await operationLogsClient.$get({ query: queryParams });
|
|
const response = await operationLogsClient.$get({ query: queryParams });
|
|
|
if (!response.ok) throw new Error('Failed to fetch logs');
|
|
if (!response.ok) throw new Error('Failed to fetch logs');
|