| | |
| | | const normalized = normalizeFlowNodes(rows); |
| | | return normalized.map((n) => ({ |
| | | _uid: newUid(), |
| | | id: n.id, |
| | | templateId: n.templateId, |
| | | nodeOrder: n.nodeOrder, |
| | | signMode: n.signMode, |
| | | approverIds: n.approvers.map((a) => a.approverId), |
| | |
| | | function publicShape(rows) { |
| | | return normalizeFlowNodes( |
| | | (rows || []).map((r) => ({ |
| | | id: r.id, |
| | | templateId: r.templateId, |
| | | nodeOrder: r.nodeOrder, |
| | | signMode: r.signMode, |
| | | approvers: r.approvers || [], |
| | |
| | | |
| | | function onApproversChange(ids, row) { |
| | | const idList = Array.isArray(ids) ? ids : []; |
| | | const prevById = new Map((row.approvers || []).map((a) => [String(a.approverId), a])); |
| | | row.approverIds = idList; |
| | | row.approvers = idList.map((id) => { |
| | | const prev = prevById.get(String(id)); |
| | | const u = findUser(id); |
| | | return { |
| | | const item = { |
| | | approverId: id, |
| | | approverName: u ? u.nickName || u.userName || "" : "", |
| | | approverName: u ? u.nickName || u.userName || "" : prev?.approverName || "", |
| | | }; |
| | | if (prev?.id != null) item.id = prev.id; |
| | | if (prev?.nodeId != null) item.nodeId = prev.nodeId; |
| | | else if (row.id != null) item.nodeId = row.id; |
| | | if (prev?.templateId != null) item.templateId = prev.templateId; |
| | | else if (row.templateId != null) item.templateId = row.templateId; |
| | | return item; |
| | | }); |
| | | emitOut(); |
| | | } |