| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- import http from '@/api'
- import { ProcessStatus } from '@/api/modules/flow/instance'
- import { cloneDeep } from 'lodash-es'
- export interface FlowActivity {
- id: string
- defineId: string
- multi: 'sequential' | 'joint' | 'single'
- taskId: string
- instanceId: string
- executionId: string
- activityId: string
- activityName: string
- activityType: string
- assignee: string
- startTime: string
- endTime: string
- duration: number
- deleteReason?: string
- status: ProcessStatus | -1
- records?: FlowActivity[]
- }
- export const records = (instanceId: string) => {
- return http.get<FlowActivity[]>(`/activity/records/${instanceId}`)
- }
- export const buildRecords = (data: FlowActivity[]) => {
- const activities = cloneDeep(data)
- const length = activities.length
- for (let i = 0; i < length; i++) {
- const item = activities[i]
- const next = activities[i + 1]
- if (
- next &&
- next.multi !== 'sequential' &&
- item.multi !== 'sequential' &&
- next.activityId === item.activityId
- ) {
- if (!Array.isArray(item.records)) {
- item.records = []
- }
- if (item.activityType === 'userTask') {
- item.activityType = 'multiUser'
- }
- item.records.push(next)
- activities.splice(i + 1, 1)
- i--
- }
- }
- activities.forEach((item) => {
- if (item.multi !== 'sequential') {
- if (!Array.isArray(item.records)) {
- item.records = []
- }
- item.records.unshift(cloneDeep(item))
- }
- })
- return activities
- }
|