From 748cfc56bc87f221b3a8a73637974923106a442c Mon Sep 17 00:00:00 2001 From: "bai.zixv" Date: Fri, 26 Apr 2024 15:41:54 +0800 Subject: [PATCH] fix: plugin-approval, trigger data (#861) Reviewed-on: https://git.daoyoucloud.com/daoyoucloud/tachybase/pulls/861 Co-authored-by: bai.zixv Co-committed-by: bai.zixv --- .../trigger/node.ApprovalTrigger.tsx | 21 ++++++++- .../launch/apply-button/hooks/useSubmit.tsx | 47 ++++++++++--------- .../launch/hooks/useDestroyAction.tsx | 11 ++--- .../approval-block/launch/hooks/useSubmit.tsx | 10 ++-- .../launch/hooks/useWithdrawAction.tsx | 33 +++++++------ .../plugin-approval/src/locale/en-US.json | 3 +- .../plugin-approval/src/locale/zh-CN.json | 3 +- 7 files changed, 72 insertions(+), 56 deletions(-) diff --git a/packages/plugins/@hera/plugin-approval/src/client/configuration/trigger/node.ApprovalTrigger.tsx b/packages/plugins/@hera/plugin-approval/src/client/configuration/trigger/node.ApprovalTrigger.tsx index 336f2a4a5..e3794338e 100644 --- a/packages/plugins/@hera/plugin-approval/src/client/configuration/trigger/node.ApprovalTrigger.tsx +++ b/packages/plugins/@hera/plugin-approval/src/client/configuration/trigger/node.ApprovalTrigger.tsx @@ -1,5 +1,6 @@ -import { useCollectionManager_deprecated, useCompile } from '@nocobase/client'; +import { SchemaInitializerItemType, useCollectionManager_deprecated, useCompile } from '@nocobase/client'; import { + CollectionBlockInitializer, RadioWithTooltip, Trigger, getCollectionFieldOptions, @@ -7,7 +8,7 @@ import { } from '@nocobase/plugin-workflow/client'; import { useForm } from '@nocobase/schema'; import { SchemaConfigButton } from './VC.ConfigButton'; -import { NAMESPACE, usePluginTranslation } from '../../locale'; +import { NAMESPACE, tval, usePluginTranslation } from '../../locale'; import { LauncherInterface } from './launcher-interface/VC.LauncherInterface'; // 工作流节点-审批触发器节点 @@ -143,4 +144,20 @@ export class ApprovalTrigger extends Trigger { getCollectionFields, }); } + + useInitializers(config): SchemaInitializerItemType | null { + if (!config.collection) { + return null; + } + + return { + name: 'triggerData', + type: 'item', + key: 'triggerData', + title: tval('Trigger data'), + Component: CollectionBlockInitializer, + collection: config.collection, + dataPath: '$context.data', + }; + } } diff --git a/packages/plugins/@hera/plugin-approval/src/client/usage/approval-block/launch/apply-button/hooks/useSubmit.tsx b/packages/plugins/@hera/plugin-approval/src/client/usage/approval-block/launch/apply-button/hooks/useSubmit.tsx index eb82e10ed..a2c660298 100644 --- a/packages/plugins/@hera/plugin-approval/src/client/usage/approval-block/launch/apply-button/hooks/useSubmit.tsx +++ b/packages/plugins/@hera/plugin-approval/src/client/usage/approval-block/launch/apply-button/hooks/useSubmit.tsx @@ -20,30 +20,31 @@ export function useSubmit() { const { workflow } = useFlowContext(); return { - run() { - return () => { - try { - from.submit(), (field.data = field.data || {}); - field.data.loading = true; - apiClient.resource('approvals').create({ - values: { - collectionName: joinCollectionName(collection.dataSource, collection.name), - data: from.values, - status: contextWe, - workflowId: workflow.id, - }, - }); - setVisible(false); - from.reset(); - field.data.loading = false; - const service = __parent.service; - if (service) { - service.refresh(); - } - } catch (h) { - field.data && (field.data.loading = false); + async run() { + try { + from.submit(); + field.data = field.data || {}; + field.data.loading = true; + + await apiClient.resource('approvals').create({ + values: { + collectionName: joinCollectionName(collection.dataSource, collection.name), + data: from.values, + status: contextWe, + workflowId: workflow.id, + }, + }); + + setVisible(false); + from.reset(); + field.data.loading = false; + const service = __parent.service; + if (service) { + service.refresh(); } - }; + } catch (h) { + field.data && (field.data.loading = false); + } }, }; } diff --git a/packages/plugins/@hera/plugin-approval/src/client/usage/approval-block/launch/hooks/useDestroyAction.tsx b/packages/plugins/@hera/plugin-approval/src/client/usage/approval-block/launch/hooks/useDestroyAction.tsx index f2322c030..c74dd444f 100644 --- a/packages/plugins/@hera/plugin-approval/src/client/usage/approval-block/launch/hooks/useDestroyAction.tsx +++ b/packages/plugins/@hera/plugin-approval/src/client/usage/approval-block/launch/hooks/useDestroyAction.tsx @@ -9,12 +9,12 @@ export function useDestroyAction() { const approval = useApproval(); const apiClient = useAPIClient(); - const run = () => { - return () => { + return { + async run() { try { _.set(field, ['data', 'loading'], true); - apiClient.resource('approvals').destroy({ + await apiClient.resource('approvals').destroy({ filterByTk: approval.id, }); @@ -23,9 +23,6 @@ export function useDestroyAction() { } catch (err) { _.set(field, ['data', 'loading'], false); } - }; - }; - return { - run, + }, }; } diff --git a/packages/plugins/@hera/plugin-approval/src/client/usage/approval-block/launch/hooks/useSubmit.tsx b/packages/plugins/@hera/plugin-approval/src/client/usage/approval-block/launch/hooks/useSubmit.tsx index b757bccd0..ecb65718a 100644 --- a/packages/plugins/@hera/plugin-approval/src/client/usage/approval-block/launch/hooks/useSubmit.tsx +++ b/packages/plugins/@hera/plugin-approval/src/client/usage/approval-block/launch/hooks/useSubmit.tsx @@ -14,8 +14,8 @@ export function useSubmit() { const contextApprovalStatus = useContextApprovalStatus(); const apiClient = useAPIClient(); - const run = () => { - return () => { + return { + async run() { try { from.submit(); @@ -36,10 +36,6 @@ export function useSubmit() { } catch (m) { _.set(field, ['data', 'loading'], false); } - }; - }; - - return { - run, + }, }; } diff --git a/packages/plugins/@hera/plugin-approval/src/client/usage/approval-block/launch/hooks/useWithdrawAction.tsx b/packages/plugins/@hera/plugin-approval/src/client/usage/approval-block/launch/hooks/useWithdrawAction.tsx index ddaf567bc..b4b6d5741 100644 --- a/packages/plugins/@hera/plugin-approval/src/client/usage/approval-block/launch/hooks/useWithdrawAction.tsx +++ b/packages/plugins/@hera/plugin-approval/src/client/usage/approval-block/launch/hooks/useWithdrawAction.tsx @@ -2,29 +2,32 @@ import { useAPIClient, useActionContext } from '@nocobase/client'; import { useField } from '@nocobase/schema'; import { useApproval } from '../../../approval-common/Pd.ApprovalData'; +// 撤回 export function useWithdrawAction() { const field = useField(); const { setVisible, setSubmitted } = useActionContext() as any; const approval = useApproval(); const api = useAPIClient(); return { - run() { - return async () => { - try { - field.data = field.data ?? {}; - field.data.loading = true; - await api.resource('approvals').withdraw({ - filterByTk: approval.id, - }); - setSubmitted(true); - setVisible(false); + async run() { + try { + field.data = field.data ?? {}; + field.data.loading = true; + + await api.resource('approvals').withdraw({ + filterByTk: approval.id, + }); + + setVisible(false); + + setSubmitted(true); + + field.data.loading = false; + } catch (v) { + if (field.data) { field.data.loading = false; - } catch (v) { - if (field.data) { - field.data.loading = false; - } } - }; + } }, }; } diff --git a/packages/plugins/@hera/plugin-approval/src/locale/en-US.json b/packages/plugins/@hera/plugin-approval/src/locale/en-US.json index fda380321..6ef02338c 100644 --- a/packages/plugins/@hera/plugin-approval/src/locale/en-US.json +++ b/packages/plugins/@hera/plugin-approval/src/locale/en-US.json @@ -60,5 +60,6 @@ "Could run different branch based on result.": "Could run different branch based on result.", "End on reject": "End on reject", "If checked, the workflow will be terminated after rejection branch processed.": "If checked, the workflow will be terminated after rejection branch processed.", - "Disabled": "Disabled" + "Disabled": "Disabled", + "Trigger data": "Trigger data" } diff --git a/packages/plugins/@hera/plugin-approval/src/locale/zh-CN.json b/packages/plugins/@hera/plugin-approval/src/locale/zh-CN.json index 51e2b1b0a..9857c51f3 100644 --- a/packages/plugins/@hera/plugin-approval/src/locale/zh-CN.json +++ b/packages/plugins/@hera/plugin-approval/src/locale/zh-CN.json @@ -75,5 +75,6 @@ "End the workflow after rejection branch": "否决后终止流程", "When checked, the workflow will terminate when the rejection branch ends.": "勾选后,否决分支结束后工作流将终止。", "Disabled": "已失效", - "Submission may be withdrawn, please try refresh the list.": "提交可能已被撤回,请尝试刷新列表。" + "Submission may be withdrawn, please try refresh the list.": "提交可能已被撤回,请尝试刷新列表。", + "Trigger data": "触发器数据" }