sy-form-components 0.2.4 → 0.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +7 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +86 -12
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +91 -17
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -4331,21 +4331,65 @@ var TASK_STATUS_META = {
|
|
|
4331
4331
|
};
|
|
4332
4332
|
|
|
4333
4333
|
// src/core/processApi.ts
|
|
4334
|
+
var normalizeProcessTask = (value) => {
|
|
4335
|
+
const taskId = value?.taskId ?? value?.id ?? value?.task_id ?? "";
|
|
4336
|
+
return {
|
|
4337
|
+
...value,
|
|
4338
|
+
id: value?.id ?? taskId,
|
|
4339
|
+
taskId,
|
|
4340
|
+
nodeId: value?.nodeId ?? value?.node_id ?? "",
|
|
4341
|
+
nodeType: value?.nodeType ?? value?.node_type ?? "approval",
|
|
4342
|
+
nodeName: value?.nodeName ?? value?.title ?? value?.name ?? value?.nodeId ?? "\u5BA1\u6279\u8282\u70B9",
|
|
4343
|
+
status: value?.status ?? "pending",
|
|
4344
|
+
assigneeId: value?.assigneeId ?? value?.assignee
|
|
4345
|
+
};
|
|
4346
|
+
};
|
|
4334
4347
|
var normalizeProcessTasks = (value) => {
|
|
4335
|
-
if (Array.isArray(value)) return value;
|
|
4348
|
+
if (Array.isArray(value)) return value.map(normalizeProcessTask);
|
|
4336
4349
|
if (!value || typeof value !== "object") return [];
|
|
4337
|
-
if (Array.isArray(value.tasks)) return value.tasks;
|
|
4338
|
-
if (Array.isArray(value.
|
|
4339
|
-
if (Array.isArray(value.
|
|
4340
|
-
if (Array.isArray(value.
|
|
4350
|
+
if (Array.isArray(value.tasks)) return value.tasks.map(normalizeProcessTask);
|
|
4351
|
+
if (Array.isArray(value.currentTasks)) return value.currentTasks.map(normalizeProcessTask);
|
|
4352
|
+
if (Array.isArray(value.list)) return value.list.map(normalizeProcessTask);
|
|
4353
|
+
if (Array.isArray(value.items)) return value.items.map(normalizeProcessTask);
|
|
4354
|
+
if (Array.isArray(value.records)) return value.records.map(normalizeProcessTask);
|
|
4341
4355
|
return [];
|
|
4342
4356
|
};
|
|
4357
|
+
var normalizeProcessBasic = (value) => {
|
|
4358
|
+
const raw = value ?? {};
|
|
4359
|
+
const instance = raw.instance ?? raw;
|
|
4360
|
+
const currentTask = raw.currentTask ? normalizeProcessTask(raw.currentTask) : void 0;
|
|
4361
|
+
return {
|
|
4362
|
+
...raw,
|
|
4363
|
+
instanceId: raw.instanceId ?? raw.id ?? instance.formInstanceId ?? instance.id,
|
|
4364
|
+
processStatus: raw.processStatus ?? raw.status ?? instance.processStatus ?? instance.status,
|
|
4365
|
+
formUuid: raw.formUuid ?? instance.formUuid ?? instance.definition?.formUuid,
|
|
4366
|
+
appType: raw.appType ?? instance.appType ?? instance.definition?.appType,
|
|
4367
|
+
title: raw.title ?? instance.title,
|
|
4368
|
+
originatorId: raw.originatorId ?? instance.originatorId ?? instance.startedBy,
|
|
4369
|
+
originatorName: raw.originatorName ?? instance.originatorName ?? instance.startedByName,
|
|
4370
|
+
originatorDepartment: raw.originatorDepartment ?? instance.originatorDepartment ?? instance.startedDepartmentName,
|
|
4371
|
+
createdAt: raw.createdAt ?? instance.createdAt ?? instance.startedAt,
|
|
4372
|
+
currentTask
|
|
4373
|
+
};
|
|
4374
|
+
};
|
|
4375
|
+
var normalizeApprovalPermission = (value) => {
|
|
4376
|
+
const raw = value ?? {};
|
|
4377
|
+
const currentTasks = normalizeProcessTasks(raw.currentTasks);
|
|
4378
|
+
const hasPermission = Boolean(raw.hasPermission ?? raw.isApprover ?? currentTasks.length > 0);
|
|
4379
|
+
return {
|
|
4380
|
+
...raw,
|
|
4381
|
+
hasPermission,
|
|
4382
|
+
isApprover: Boolean(raw.isApprover ?? hasPermission),
|
|
4383
|
+
canUndo: Boolean(raw.canUndo ?? raw.canWithdraw),
|
|
4384
|
+
currentTasks
|
|
4385
|
+
};
|
|
4386
|
+
};
|
|
4343
4387
|
async function getProcessBasic(request, formInstId) {
|
|
4344
4388
|
const response = await request({
|
|
4345
4389
|
url: `/workflow/instance/${formInstId}/basic`,
|
|
4346
4390
|
method: "get"
|
|
4347
4391
|
});
|
|
4348
|
-
return response.data || response.result;
|
|
4392
|
+
return normalizeProcessBasic(response.data || response.result);
|
|
4349
4393
|
}
|
|
4350
4394
|
async function getProcessProgress(request, formInstId) {
|
|
4351
4395
|
const response = await request({
|
|
@@ -4359,7 +4403,7 @@ async function checkUserApproval(request, formInstId) {
|
|
|
4359
4403
|
url: `/workflow/instance/${formInstId}/permission`,
|
|
4360
4404
|
method: "get"
|
|
4361
4405
|
});
|
|
4362
|
-
return response.data || response.result;
|
|
4406
|
+
return normalizeApprovalPermission(response.data || response.result);
|
|
4363
4407
|
}
|
|
4364
4408
|
async function handleApproval(request, params) {
|
|
4365
4409
|
const response = await request({
|
|
@@ -5143,7 +5187,23 @@ function useFormDetail(options) {
|
|
|
5143
5187
|
}
|
|
5144
5188
|
|
|
5145
5189
|
// src/hooks/useProcessDetail.ts
|
|
5146
|
-
import { useState as useState21, useEffect as useEffect28, useCallback as useCallback8, useRef as useRef8 } from "react";
|
|
5190
|
+
import { useState as useState21, useEffect as useEffect28, useCallback as useCallback8, useRef as useRef8, useMemo as useMemo8 } from "react";
|
|
5191
|
+
var DEFAULT_APPROVAL_ACTIONS = [
|
|
5192
|
+
{ action: "agree", name: { zh_CN: "\u540C\u610F" } },
|
|
5193
|
+
{ action: "rejected", name: { zh_CN: "\u62D2\u7EDD" } }
|
|
5194
|
+
];
|
|
5195
|
+
var WITHDRAW_ACTION = { action: "withdraw", name: { zh_CN: "\u64A4\u9500" } };
|
|
5196
|
+
function mergeCurrentTask(processTask, approvalTask) {
|
|
5197
|
+
if (!approvalTask) return processTask ?? null;
|
|
5198
|
+
if (!processTask) return approvalTask;
|
|
5199
|
+
return {
|
|
5200
|
+
...processTask,
|
|
5201
|
+
...approvalTask,
|
|
5202
|
+
nodeName: processTask.nodeName || approvalTask.nodeName,
|
|
5203
|
+
title: processTask.title || approvalTask.title,
|
|
5204
|
+
actions: processTask.actions ?? approvalTask.actions
|
|
5205
|
+
};
|
|
5206
|
+
}
|
|
5147
5207
|
function useProcessDetail(options) {
|
|
5148
5208
|
const { formUuid, appType, formInstanceId, fieldIds } = options;
|
|
5149
5209
|
const { api } = useFormContext();
|
|
@@ -5156,6 +5216,7 @@ function useProcessDetail(options) {
|
|
|
5156
5216
|
const [instanceInfo, setInstanceInfo] = useState21(null);
|
|
5157
5217
|
const [isApprover, setIsApprover] = useState21(false);
|
|
5158
5218
|
const [canWithdraw, setCanWithdraw] = useState21(false);
|
|
5219
|
+
const [approvalTasks, setApprovalTasks] = useState21([]);
|
|
5159
5220
|
const [permissions, setPermissions] = useState21(null);
|
|
5160
5221
|
const [processDefinition, setProcessDefinition] = useState21(null);
|
|
5161
5222
|
const mountedRef = useRef8(true);
|
|
@@ -5165,7 +5226,10 @@ function useProcessDetail(options) {
|
|
|
5165
5226
|
mountedRef.current = false;
|
|
5166
5227
|
};
|
|
5167
5228
|
}, []);
|
|
5168
|
-
const currentTask =
|
|
5229
|
+
const currentTask = useMemo8(
|
|
5230
|
+
() => mergeCurrentTask(processInfo?.currentTask, approvalTasks[0]),
|
|
5231
|
+
[processInfo?.currentTask, approvalTasks]
|
|
5232
|
+
);
|
|
5169
5233
|
const processStatus = processInfo?.processStatus ?? null;
|
|
5170
5234
|
const isOriginatorReturn = currentTask?.nodeType === "originator_return";
|
|
5171
5235
|
const isProcessCompleted = processStatus === "completed" || processStatus === "terminated";
|
|
@@ -5176,7 +5240,14 @@ function useProcessDetail(options) {
|
|
|
5176
5240
|
isApprover,
|
|
5177
5241
|
mode
|
|
5178
5242
|
});
|
|
5179
|
-
const activeActions =
|
|
5243
|
+
const activeActions = useMemo8(() => {
|
|
5244
|
+
if (!isApprover) return [];
|
|
5245
|
+
const actions = currentTask?.actions && currentTask.actions.length > 0 ? [...currentTask.actions] : [...DEFAULT_APPROVAL_ACTIONS];
|
|
5246
|
+
if (canWithdraw && !actions.some((action) => action.action === "withdraw")) {
|
|
5247
|
+
actions.push(WITHDRAW_ACTION);
|
|
5248
|
+
}
|
|
5249
|
+
return actions;
|
|
5250
|
+
}, [isApprover, currentTask?.actions, canWithdraw]);
|
|
5180
5251
|
const loadData = useCallback8(async () => {
|
|
5181
5252
|
if (!mountedRef.current) return;
|
|
5182
5253
|
setLoading(true);
|
|
@@ -5191,6 +5262,7 @@ function useProcessDetail(options) {
|
|
|
5191
5262
|
setProcessInfo(basicResult);
|
|
5192
5263
|
setIsApprover(approvalResult?.isApprover ?? false);
|
|
5193
5264
|
setCanWithdraw(approvalResult?.canUndo ?? false);
|
|
5265
|
+
setApprovalTasks(approvalResult?.currentTasks ?? []);
|
|
5194
5266
|
setPermissions(permResult);
|
|
5195
5267
|
setInstanceInfo(formResult);
|
|
5196
5268
|
setFormData(extractFormValues(formResult, fieldIds));
|
|
@@ -5221,6 +5293,7 @@ function useProcessDetail(options) {
|
|
|
5221
5293
|
setProcessInfo(null);
|
|
5222
5294
|
setFormData(null);
|
|
5223
5295
|
setInstanceInfo(null);
|
|
5296
|
+
setApprovalTasks([]);
|
|
5224
5297
|
}
|
|
5225
5298
|
} finally {
|
|
5226
5299
|
if (mountedRef.current) {
|
|
@@ -5951,8 +6024,9 @@ var ApprovalTimeline = ({
|
|
|
5951
6024
|
return /* @__PURE__ */ jsx77("div", { className: `bg-white rounded-xl shadow-sm border border-gray-100 p-6 ${className}`, children: /* @__PURE__ */ jsx77("p", { className: "text-sm text-gray-400 text-center", children: "\u6682\u65E0\u5BA1\u6279\u8BB0\u5F55" }) });
|
|
5952
6025
|
}
|
|
5953
6026
|
return /* @__PURE__ */ jsx77("div", { className: `${className}`, children: taskList.map((task, index) => {
|
|
6027
|
+
const taskKey = task.taskId || task.id || `${task.nodeId}-${index}`;
|
|
5954
6028
|
if (renderNode) {
|
|
5955
|
-
return /* @__PURE__ */ jsx77("div", { children: renderNode(task, index) },
|
|
6029
|
+
return /* @__PURE__ */ jsx77("div", { children: renderNode(task, index) }, taskKey);
|
|
5956
6030
|
}
|
|
5957
6031
|
const phase = getNodePhase(task);
|
|
5958
6032
|
const isLast = index === taskList.length - 1;
|
|
@@ -6009,7 +6083,7 @@ var ApprovalTimeline = ({
|
|
|
6009
6083
|
]
|
|
6010
6084
|
}
|
|
6011
6085
|
) })
|
|
6012
|
-
] },
|
|
6086
|
+
] }, taskKey);
|
|
6013
6087
|
}) });
|
|
6014
6088
|
};
|
|
6015
6089
|
|
|
@@ -6605,7 +6679,7 @@ var FormSubmitTemplate = ({
|
|
|
6605
6679
|
};
|
|
6606
6680
|
|
|
6607
6681
|
// src/templates/FormDetailTemplate.tsx
|
|
6608
|
-
import { useCallback as useCallback14, useMemo as
|
|
6682
|
+
import { useCallback as useCallback14, useMemo as useMemo9 } from "react";
|
|
6609
6683
|
|
|
6610
6684
|
// src/templates/PageSkeleton.tsx
|
|
6611
6685
|
import { Skeleton as Skeleton3 } from "antd";
|
|
@@ -6685,7 +6759,7 @@ var InnerDetailContent = ({
|
|
|
6685
6759
|
onDelete,
|
|
6686
6760
|
onSave
|
|
6687
6761
|
}) => {
|
|
6688
|
-
const fieldIds =
|
|
6762
|
+
const fieldIds = useMemo9(() => schema.fields.map((field) => field.fieldId), [schema.fields]);
|
|
6689
6763
|
const {
|
|
6690
6764
|
loading,
|
|
6691
6765
|
mode,
|
|
@@ -6810,7 +6884,7 @@ var FormDetailTemplate = (props) => {
|
|
|
6810
6884
|
};
|
|
6811
6885
|
|
|
6812
6886
|
// src/templates/ProcessDetailTemplate.tsx
|
|
6813
|
-
import { useCallback as useCallback15, useMemo as
|
|
6887
|
+
import { useCallback as useCallback15, useMemo as useMemo10, useRef as useRef12 } from "react";
|
|
6814
6888
|
import { Fragment as Fragment7, jsx as jsx85, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
6815
6889
|
function FormDataBridge({
|
|
6816
6890
|
formDataRef
|
|
@@ -6832,7 +6906,7 @@ var InnerProcessContent = ({
|
|
|
6832
6906
|
onActionComplete
|
|
6833
6907
|
}) => {
|
|
6834
6908
|
const formDataRef = useRef12(void 0);
|
|
6835
|
-
const fieldIds =
|
|
6909
|
+
const fieldIds = useMemo10(() => schema.fields.map((field) => field.fieldId), [schema.fields]);
|
|
6836
6910
|
const {
|
|
6837
6911
|
loading,
|
|
6838
6912
|
processInfo,
|
|
@@ -6854,7 +6928,7 @@ var InnerProcessContent = ({
|
|
|
6854
6928
|
formInstanceId,
|
|
6855
6929
|
formUuid,
|
|
6856
6930
|
appType,
|
|
6857
|
-
currentTaskId: currentTask?.taskId,
|
|
6931
|
+
currentTaskId: currentTask?.taskId ?? currentTask?.id,
|
|
6858
6932
|
onActionComplete: async (action) => {
|
|
6859
6933
|
onActionComplete?.(action);
|
|
6860
6934
|
await refreshProgress();
|