From bf187a106448c6a7eb4048bcd82198f4881317b9 Mon Sep 17 00:00:00 2001 From: zxhlyh Date: Wed, 5 Mar 2025 17:44:35 +0800 Subject: [PATCH] feat: workflow knowledge retrieval metadata --- .../nodes/_base/hooks/use-node-crud.ts | 1 - .../condition-list/condition-date.tsx | 68 ++++++++++++------- .../condition-list/condition-item.tsx | 4 +- .../nodes/knowledge-retrieval/types.ts | 2 +- 4 files changed, 46 insertions(+), 29 deletions(-) diff --git a/web/app/components/workflow/nodes/_base/hooks/use-node-crud.ts b/web/app/components/workflow/nodes/_base/hooks/use-node-crud.ts index 6a8e5051c8..51d2fdb80c 100644 --- a/web/app/components/workflow/nodes/_base/hooks/use-node-crud.ts +++ b/web/app/components/workflow/nodes/_base/hooks/use-node-crud.ts @@ -4,7 +4,6 @@ const useNodeCrud = (id: string, data: CommonNodeType) => { const { handleNodeDataUpdateWithSyncDraft } = useNodeDataUpdate() const setInputs = (newInputs: CommonNodeType) => { - console.log(newInputs, 'xx') handleNodeDataUpdateWithSyncDraft({ id, data: newInputs, diff --git a/web/app/components/workflow/nodes/knowledge-retrieval/components/metadata/condition-list/condition-date.tsx b/web/app/components/workflow/nodes/knowledge-retrieval/components/metadata/condition-list/condition-date.tsx index de940a7d4c..eb68286bfd 100644 --- a/web/app/components/workflow/nodes/knowledge-retrieval/components/metadata/condition-list/condition-date.tsx +++ b/web/app/components/workflow/nodes/knowledge-retrieval/components/metadata/condition-list/condition-date.tsx @@ -5,60 +5,78 @@ import { RiCloseCircleFill, } from '@remixicon/react' import DatePicker from '@/app/components/base/date-and-time-picker/date-picker' +import type { TriggerProps } from '@/app/components/base/date-and-time-picker/types' import cn from '@/utils/classnames' +import { useAppContext } from '@/context/app-context' type ConditionDateProps = { - value?: string - onChange: (date: string) => void + value?: number + onChange: (date?: number) => void } const ConditionDate = ({ value, onChange, }: ConditionDateProps) => { + const { userProfile: { timezone } } = useAppContext() + const handleDateChange = useCallback((date?: dayjs.Dayjs) => { if (date) - onChange(date.format('YYYY-MM-DD')) + onChange(date.unix()) else - onChange('') + onChange() }, [onChange]) - const renderTrigger = useCallback(() => { + const renderTrigger = useCallback(({ + handleClickTrigger, + }: TriggerProps) => { return ( -
+
- {value || 'Choose a time...'} + { + value + ? dayjs(value * 1000).tz(timezone).format('MMMM DD YYYY HH:mm A') + : 'Choose a time...' + }
- handleDateChange()} - /> + { + value && ( + { + e.stopPropagation() + handleDateChange() + }} + /> + ) + }
) - }, [value, handleDateChange]) + }, [value, handleDateChange, timezone]) return ( - - - +
+ +
) } diff --git a/web/app/components/workflow/nodes/knowledge-retrieval/components/metadata/condition-list/condition-item.tsx b/web/app/components/workflow/nodes/knowledge-retrieval/components/metadata/condition-list/condition-item.tsx index fd2018556d..bb895e23b1 100644 --- a/web/app/components/workflow/nodes/knowledge-retrieval/components/metadata/condition-list/condition-item.tsx +++ b/web/app/components/workflow/nodes/knowledge-retrieval/components/metadata/condition-list/condition-item.tsx @@ -140,7 +140,7 @@ const ConditionItem = ({ onValueMethodChange={handleValueMethodChange} nodesOutputVars={availableStringVars} availableNodes={availableStringNodesWithParent} - value={valueAndValueMethod.value} + value={valueAndValueMethod.value as string} onChange={handleValueChange} /> ) @@ -160,7 +160,7 @@ const ConditionItem = ({ { !comparisonOperatorNotRequireValue(condition.comparison_operator) && currentMetadata?.type === MetadataFilteringVariableType.time && ( ) diff --git a/web/app/components/workflow/nodes/knowledge-retrieval/types.ts b/web/app/components/workflow/nodes/knowledge-retrieval/types.ts index 981b2e09ad..b44789440a 100644 --- a/web/app/components/workflow/nodes/knowledge-retrieval/types.ts +++ b/web/app/components/workflow/nodes/knowledge-retrieval/types.ts @@ -83,7 +83,7 @@ export enum MetadataFilteringVariableType { export type MetadataFilteringCondition = { name: string comparison_operator: ComparisonOperator - value?: string + value?: string | number } export type MetadataFilteringConditions = {