feat(admin): Add activity logs page and fix AI chat markdown rendering
- Add paginated activity logs API with filters (date, module, action, keyword) - Add ActivityLogsPage with table, filters, and detail modal - Add markdown rendering support for AI chat messages - Remove prototype placeholder content from chat sidebar Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
73
frontend-v2/src/pages/admin/api/activityApi.ts
Normal file
73
frontend-v2/src/pages/admin/api/activityApi.ts
Normal file
@@ -0,0 +1,73 @@
|
||||
/**
|
||||
* 运营日志 API
|
||||
*
|
||||
* @date 2026-01-28
|
||||
*/
|
||||
|
||||
import apiClient from '../../../common/api/axios'
|
||||
|
||||
// ==================== 类型定义 ====================
|
||||
|
||||
export interface ActivityLog {
|
||||
id: string
|
||||
createdAt: string
|
||||
tenantId: string
|
||||
tenantName: string | null
|
||||
userId: string
|
||||
userName: string | null
|
||||
module: string
|
||||
feature: string
|
||||
action: string
|
||||
info: string | null
|
||||
}
|
||||
|
||||
export interface Pagination {
|
||||
page: number
|
||||
pageSize: number
|
||||
total: number
|
||||
totalPages: number
|
||||
}
|
||||
|
||||
export interface ActivityLogsResponse {
|
||||
success: boolean
|
||||
data: ActivityLog[]
|
||||
pagination: Pagination
|
||||
}
|
||||
|
||||
export interface ActivityLogsParams {
|
||||
page?: number
|
||||
pageSize?: number
|
||||
startDate?: string
|
||||
endDate?: string
|
||||
module?: string
|
||||
action?: string
|
||||
keyword?: string
|
||||
}
|
||||
|
||||
// ==================== API 函数 ====================
|
||||
|
||||
/**
|
||||
* 获取运营日志列表(分页)
|
||||
*/
|
||||
export async function fetchActivityLogs(params: ActivityLogsParams = {}): Promise<{
|
||||
data: ActivityLog[]
|
||||
pagination: Pagination
|
||||
}> {
|
||||
const queryParams = new URLSearchParams()
|
||||
|
||||
if (params.page) queryParams.append('page', String(params.page))
|
||||
if (params.pageSize) queryParams.append('pageSize', String(params.pageSize))
|
||||
if (params.startDate) queryParams.append('startDate', params.startDate)
|
||||
if (params.endDate) queryParams.append('endDate', params.endDate)
|
||||
if (params.module) queryParams.append('module', params.module)
|
||||
if (params.action) queryParams.append('action', params.action)
|
||||
if (params.keyword) queryParams.append('keyword', params.keyword)
|
||||
|
||||
const url = `/api/admin/stats/logs${queryParams.toString() ? '?' + queryParams.toString() : ''}`
|
||||
const res = await apiClient.get<ActivityLogsResponse>(url)
|
||||
|
||||
return {
|
||||
data: res.data.data,
|
||||
pagination: res.data.pagination,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user