feat: workflow knowledge retrieval metadata

This commit is contained in:
zxhlyh 2025-03-05 17:44:35 +08:00
parent c47c77f556
commit bf187a1064
4 changed files with 46 additions and 29 deletions

View File

@ -4,7 +4,6 @@ const useNodeCrud = <T>(id: string, data: CommonNodeType<T>) => {
const { handleNodeDataUpdateWithSyncDraft } = useNodeDataUpdate()
const setInputs = (newInputs: CommonNodeType<T>) => {
console.log(newInputs, 'xx')
handleNodeDataUpdateWithSyncDraft({
id,
data: newInputs,

View File

@ -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 (
<div className='group flex items-center h-8'>
<div className='group flex items-center' onClick={handleClickTrigger}>
<div
className={cn(
'grow',
'grow flex items-center mr-0.5 px-1 h-6 system-sm-regular cursor-pointer',
value ? 'text-text-secondary' : 'text-text-tertiary',
)}
>
{value || 'Choose a time...'}
{
value
? dayjs(value * 1000).tz(timezone).format('MMMM DD YYYY HH:mm A')
: 'Choose a time...'
}
</div>
<RiCloseCircleFill
className={cn(
'hidden group-hover:block w-4 h-4 cursor-pointer hover:text-components-input-text-filled',
value && 'text-text-quaternary',
)}
onClick={() => handleDateChange()}
/>
{
value && (
<RiCloseCircleFill
className={cn(
'hidden group-hover:block shrink-0 w-4 h-4 cursor-pointer hover:text-components-input-text-filled',
value && 'text-text-quaternary',
)}
onClick={(e) => {
e.stopPropagation()
handleDateChange()
}}
/>
)
}
<RiCalendarLine
className={cn(
'block group-hover:hidden shrink-0 w-4 h-4',
'block shrink-0 w-4 h-4',
value ? 'text-text-quaternary' : 'text-text-tertiary',
value && 'group-hover:hidden',
)}
/>
</div>
)
}, [value, handleDateChange])
}, [value, handleDateChange, timezone])
return (
<DatePicker
value={dayjs(value)}
onChange={handleDateChange}
onClear={handleDateChange}
renderTrigger={renderTrigger}
>
</DatePicker>
<div className='px-2 py-1 h-8'>
<DatePicker
value={value ? dayjs(value * 1000) : undefined}
onChange={handleDateChange}
onClear={handleDateChange}
renderTrigger={renderTrigger}
/>
</div>
)
}

View File

@ -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 && (
<ConditionDate
value={condition.value}
value={condition.value as number}
onChange={handleValueChange}
/>
)

View File

@ -83,7 +83,7 @@ export enum MetadataFilteringVariableType {
export type MetadataFilteringCondition = {
name: string
comparison_operator: ComparisonOperator
value?: string
value?: string | number
}
export type MetadataFilteringConditions = {