From b04c26144ec587be8066478a1e7ac5ef28bbc8da Mon Sep 17 00:00:00 2001 From: Junyi Date: Sun, 20 Apr 2025 17:33:36 +0800 Subject: [PATCH] fix(plugin-workflow): fix schedule in subflow (#6721) --- .../components/TriggerCollectionRecordSelect.tsx | 7 ++++--- .../src/server/triggers/ScheduleTrigger/index.ts | 13 +++++-------- .../plugin-workflow/src/server/triggers/index.ts | 2 +- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/packages/plugins/@nocobase/plugin-workflow/src/client/components/TriggerCollectionRecordSelect.tsx b/packages/plugins/@nocobase/plugin-workflow/src/client/components/TriggerCollectionRecordSelect.tsx index ca1f085b11..42d964426c 100644 --- a/packages/plugins/@nocobase/plugin-workflow/src/client/components/TriggerCollectionRecordSelect.tsx +++ b/packages/plugins/@nocobase/plugin-workflow/src/client/components/TriggerCollectionRecordSelect.tsx @@ -21,19 +21,19 @@ export function TriggerCollectionRecordSelect(props) { const [dataSourceName, collectionName] = parseCollectionName(workflow.config.collection); const { collectionManager } = app.dataSourceManager.getDataSource(dataSourceName); const collection = collectionManager.getCollection(collectionName); - const render = (props) => ( + const render = (p) => ( ); return ( @@ -42,6 +42,7 @@ export function TriggerCollectionRecordSelect(props) { onChange={props.onChange} nullable={false} changeOnSelect + {...props} render={render} /> ); diff --git a/packages/plugins/@nocobase/plugin-workflow/src/server/triggers/ScheduleTrigger/index.ts b/packages/plugins/@nocobase/plugin-workflow/src/server/triggers/ScheduleTrigger/index.ts index 375ef784ab..a2343e8fb2 100644 --- a/packages/plugins/@nocobase/plugin-workflow/src/server/triggers/ScheduleTrigger/index.ts +++ b/packages/plugins/@nocobase/plugin-workflow/src/server/triggers/ScheduleTrigger/index.ts @@ -9,6 +9,7 @@ import Trigger from '..'; import type Plugin from '../../Plugin'; +import { WorkflowModel } from '../../types'; import DateFieldScheduleTrigger from './DateFieldScheduleTrigger'; import StaticScheduleTrigger from './StaticScheduleTrigger'; import { SCHEDULE_MODE } from './utils'; @@ -67,19 +68,15 @@ export default class ScheduleTrigger extends Trigger { // return !existed.length; // } - validateContext(values) { - if (!values?.mode) { - return { - mode: 'Mode is required', - }; - } - const trigger = this.getTrigger(values.mode); + validateContext(values, workflow: WorkflowModel) { + const { mode } = workflow.config; + const trigger = this.getTrigger(mode); if (!trigger) { return { mode: 'Mode in invalid', }; } - return trigger.validateContext?.(values); + return trigger.validateContext?.(values, workflow); } } diff --git a/packages/plugins/@nocobase/plugin-workflow/src/server/triggers/index.ts b/packages/plugins/@nocobase/plugin-workflow/src/server/triggers/index.ts index 24c01d874e..50e462fd33 100644 --- a/packages/plugins/@nocobase/plugin-workflow/src/server/triggers/index.ts +++ b/packages/plugins/@nocobase/plugin-workflow/src/server/triggers/index.ts @@ -20,7 +20,7 @@ export abstract class Trigger { return true; } duplicateConfig?(workflow: WorkflowModel, options: Transactionable): object | Promise; - validateContext?(values: any): null | void | { [key: string]: string }; + validateContext?(values: any, workflow: WorkflowModel): null | void | { [key: string]: string }; sync?: boolean; execute?( workflow: WorkflowModel,