import { defHttp } from '#/api/request';
|
|
export type AuditEventId = number | string;
|
export type AuditEventType = 'BIZ_ACTION' | 'DATA_CHANGE' | 'E_SIGNATURE';
|
|
export interface AuditPageQuery {
|
actionCode?: string;
|
appName?: string;
|
bizCode?: string;
|
bizModule?: string;
|
bizType?: string;
|
currentPage: number;
|
endTime?: string;
|
eventType?: AuditEventType;
|
keyword?: string;
|
operatorName?: string;
|
pageSize: number;
|
startTime?: string;
|
targetTable?: string;
|
}
|
|
export interface AuditEventListDTO {
|
actionCode?: string;
|
actionLabel?: string;
|
appName?: string;
|
bizCode?: string;
|
bizModule?: string;
|
bizType?: string;
|
browser?: string;
|
clientEventId?: string;
|
createdAt?: string;
|
diffCount?: number;
|
entryId?: string;
|
entryName?: string;
|
entryType?: string;
|
eventTime?: string;
|
eventType?: AuditEventType | string;
|
id: AuditEventId;
|
ip?: string;
|
ipRegion?: string;
|
operationId?: null | string;
|
operatorId?: string;
|
operatorName?: string;
|
operatorOrgId?: string;
|
os?: string;
|
reason?: string;
|
recordTitle?: string;
|
requestUri?: string;
|
signatureRole?: 'PRIMARY' | 'REVIEW' | string;
|
signed?: boolean;
|
sourceLayer?: number;
|
subEvents?: AuditEventListDTO[];
|
subTitleCount?: number;
|
subTitles?: string[];
|
targetId?: string;
|
targetTable?: string;
|
tenantId?: string;
|
}
|
|
export interface AuditFieldDiffDTO {
|
changeType?: string;
|
chidData?: Array<Record<string, unknown>>;
|
chidField?: Array<Record<string, unknown>>;
|
componentType?: string;
|
field?: string;
|
fieldName?: string;
|
jnpfKey?: string;
|
masked?: boolean;
|
nameModified?: boolean;
|
newData?: unknown;
|
newDisplay?: unknown;
|
oldData?: unknown;
|
oldDisplay?: unknown;
|
technical?: boolean;
|
type?: number | string;
|
valueType?: string;
|
}
|
|
export interface AuditEventDetailDTO extends Omit<AuditEventListDTO, 'diffCount' | 'subEvents'> {
|
dataSnapshot?: string;
|
extra?: string;
|
fieldDiffList?: AuditFieldDiffDTO[] | null;
|
fieldDiffs?: string;
|
prevHash?: string;
|
}
|
|
export interface AuditPagination {
|
currentPage: number;
|
pageSize: number;
|
total: number;
|
}
|
|
export interface AuditEventPageDTO {
|
list: AuditEventListDTO[];
|
pagination: AuditPagination;
|
}
|
|
interface AuditApiResult<T> {
|
code: number;
|
data: T;
|
msg?: string;
|
}
|
|
export const AUDIT_EVENT_API = {
|
detail: '/api/audit/audit/events',
|
page: '/api/audit/audit/events/page',
|
timeline: '/api/audit/audit/events/timeline',
|
} as const;
|
|
const silentErrorOptions = { errorMessageMode: 'none' as const };
|
|
/** Query operation-deduplicated BUSINESS rows with related signature event summaries. */
|
export function getAuditEventPage(data: AuditPageQuery) {
|
return defHttp.post<AuditApiResult<AuditEventPageDTO>>({ url: AUDIT_EVENT_API.page, data }, silentErrorOptions);
|
}
|
|
/** Query a single event detail. Callers must not log or cache this response. */
|
export function getAuditEventDetail(id: AuditEventId) {
|
return defHttp.get<AuditApiResult<AuditEventDetailDTO>>({ url: `${AUDIT_EVENT_API.detail}/${id}` }, silentErrorOptions);
|
}
|
|
/** Query the operation-grouped event timeline for an exact target record. */
|
export function getAuditEventTimeline(targetId: string) {
|
return defHttp.get<AuditApiResult<AuditEventListDTO[]>>({ url: AUDIT_EVENT_API.timeline, params: { targetId } }, silentErrorOptions);
|
}
|