From edc61e9b4c7510f8a1c6982ddf73c32db5d1d65e Mon Sep 17 00:00:00 2001 From: balibabu Date: Fri, 5 Jul 2024 15:52:24 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20save=20the=20parameters=20of=20the=20ge?= =?UTF-8?q?nerate=20operator=20to=20the=20form=20field=20=E2=80=A6=20(#139?= =?UTF-8?q?0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### What problem does this PR solve? feat: save the parameters of the generate operator to the form field of the node #918 ### Type of change - [x] New Feature (non-breaking change which adds functionality) --- .../components/llm-setting-items/index.tsx | 2 +- web/src/locales/en.ts | 5 +- web/src/pages/flow/constant.tsx | 5 +- .../flow/generate-form/dynamic-parameters.tsx | 171 +++++++++--------- web/src/pages/flow/generate-form/hooks.ts | 102 +++++++++++ web/src/pages/flow/generate-form/index.less | 2 +- web/src/pages/flow/generate-form/index.tsx | 8 +- .../generate-form/next-dynamic-parameters.tsx | 135 -------------- web/src/pages/flow/store.ts | 12 +- web/src/utils/form.ts | 2 +- 10 files changed, 208 insertions(+), 236 deletions(-) create mode 100644 web/src/pages/flow/generate-form/hooks.ts delete mode 100644 web/src/pages/flow/generate-form/next-dynamic-parameters.tsx diff --git a/web/src/components/llm-setting-items/index.tsx b/web/src/components/llm-setting-items/index.tsx index 8b88b8703..d5f349e6a 100644 --- a/web/src/components/llm-setting-items/index.tsx +++ b/web/src/components/llm-setting-items/index.tsx @@ -51,7 +51,7 @@ const LlmSettingItems = ({ prefix, formItemLayout = {} }: IProps) => { { - const updateNodeInternals = useUpdateNodeInternals(); - const form = Form.useFormInstance(); - const buildCategorizeToOptions = useBuildFormSelectOptions( - Operator.Categorize, - nodeId, - ); - const { handleSelectChange } = useHandleFormSelectChange(nodeId); const { t } = useTranslate('flow'); + const options = useBuildComponentIdSelectOptions(nodeId); + const { + dataSource, + handleAdd, + handleRemove, + handleSave, + handleComponentIdChange, + } = useHandleOperateParameters(nodeId!); + + const columns: TableProps['columns'] = [ + { + title: t('key'), + dataIndex: 'key', + key: 'key', + onCell: (record: IGenerateParameter) => ({ + record, + editable: true, + dataIndex: 'key', + title: 'key', + handleSave, + }), + }, + { + title: t('componentId'), + dataIndex: 'component_id', + key: 'component_id', + align: 'center', + render(text, record) { + return ( + - - - - ); - }, - }, - { - title: t('operation'), - dataIndex: 'operation', - width: 20, - key: 'operation', - align: 'center', - render(_, record) { - return ; - }, - }, - ]; - - return ( -
- - - - styles.editableRow} - /> - - ); -}; - -export default DynamicParameters; diff --git a/web/src/pages/flow/store.ts b/web/src/pages/flow/store.ts index fa208a588..f8f51b753 100644 --- a/web/src/pages/flow/store.ts +++ b/web/src/pages/flow/store.ts @@ -189,7 +189,17 @@ const useGraphStore = create()( set({ nodes: get().nodes.map((node) => { if (node.id === nodeId) { - node.data = { ...node.data, form: values }; + // node.data = { + // ...node.data, + // form: { ...node.data.form, ...values }, + // }; + return { + ...node, + data: { + ...node.data, + form: { ...node.data.form, ...values }, + }, + } as any; } return node; diff --git a/web/src/utils/form.ts b/web/src/utils/form.ts index 1f15c5ea1..7b33fd1f0 100644 --- a/web/src/utils/form.ts +++ b/web/src/utils/form.ts @@ -20,7 +20,7 @@ export const excludeUnEnabledVariables = ( export const removeUselessFieldsFromValues = (values: any, prefix?: string) => { const nextValues: any = omit(values, [ ...Object.keys(variableEnabledFieldMap), - 'parameters', + 'parameter', ...excludeUnEnabledVariables(values, prefix), ]);