刘光辉
11 小时以前 0dfe84494048ce27ba8449831782128412d3eb13
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import type { AuditOperationQuery } from './types';
 
import { getAuditEventDetail, getAuditEventPage, getAuditEventTimeline } from '#/api/x/audit/events';
import { parseAuditEventFieldDiffs } from '#/components/FormExtraPanel/auditDiff';
 
import { groupTimelineOperations, normalizeOperation } from './auditOperation';
 
/** Single request boundary used by the list, detail, and timeline views. */
export const auditOperationQuery: AuditOperationQuery = {
  async detail(eventId) {
    const response = await getAuditEventDetail(eventId);
    const detail = response.data;
    const parsedDiffs = parseAuditEventFieldDiffs(detail.fieldDiffList, detail.fieldDiffs);
    return {
      ...detail,
      fieldDiffList: parsedDiffs.diffs,
      fieldDiffParseError: parsedDiffs.parseError,
    };
  },
 
  async page(query) {
    const response = await getAuditEventPage(query);
    const page = response.data;
    return {
      list: Array.isArray(page?.list) ? page.list.map((event) => normalizeOperation(event)) : [],
      pagination: page?.pagination || {
        currentPage: query.currentPage,
        pageSize: query.pageSize,
        total: 0,
      },
    };
  },
 
  async timeline(targetId) {
    const response = await getAuditEventTimeline(targetId);
    return groupTimelineOperations(Array.isArray(response.data) ? response.data : []);
  },
};