From 3a6b2dd1159cbce592ae8c6cbb7474f6d17fb277 Mon Sep 17 00:00:00 2001 From: bill Date: Wed, 9 Oct 2024 15:32:06 +0800 Subject: [PATCH 1/2] feat: Move the operator's form file to the form folder --- web/src/pages/flow/flow-drawer/index.tsx | 56 +++++++++---------- .../flow/{ => form}/akshare-form/index.tsx | 2 +- .../flow/{ => form}/answer-form/index.tsx | 0 .../flow/{ => form}/arxiv-form/index.tsx | 2 +- .../{ => form}/baidu-fanyi-form/index.tsx | 4 +- .../flow/{ => form}/baidu-form/index.tsx | 2 +- .../flow/{ => form}/begin-form/index.tsx | 2 +- .../pages/flow/{ => form}/bing-form/index.tsx | 4 +- .../categorize-form/dynamic-categorize.tsx | 4 +- .../flow/{ => form}/categorize-form/hooks.ts | 4 +- .../flow/{ => form}/categorize-form/index.tsx | 4 +- .../{ => form}/concentrator-form/index.tsx | 2 +- .../flow/{ => form}/deepl-form/index.tsx | 6 +- .../flow/{ => form}/duckduckgo-form/index.tsx | 4 +- .../flow/{ => form}/exesql-form/index.tsx | 4 +- .../generate-form/dynamic-parameters.tsx | 4 +- .../flow/{ => form}/generate-form/hooks.ts | 4 +- .../flow/{ => form}/generate-form/index.less | 0 .../flow/{ => form}/generate-form/index.tsx | 4 +- .../flow/{ => form}/github-form/index.tsx | 2 +- .../flow/{ => form}/google-form/index.tsx | 4 +- .../{ => form}/google-scholar-form/index.tsx | 4 +- .../flow/{ => form}/jin10-form/index.tsx | 4 +- .../{ => form}/keyword-extract-form/index.tsx | 4 +- .../flow/{ => form}/message-form/index.less | 0 .../flow/{ => form}/message-form/index.tsx | 2 +- .../flow/{ => form}/pubmed-form/index.tsx | 2 +- .../flow/{ => form}/qweather-form/index.tsx | 4 +- .../flow/{ => form}/relevant-form/hooks.ts | 4 +- .../flow/{ => form}/relevant-form/index.tsx | 8 +-- .../flow/{ => form}/retrieval-form/index.tsx | 2 +- .../rewrite-question-form/index.tsx | 4 +- .../flow/{ => form}/switch-form/index.tsx | 10 ++-- .../flow/{ => form}/tushare-form/index.tsx | 4 +- .../flow/{ => form}/wencai-form/index.tsx | 4 +- .../flow/{ => form}/wikipedia-form/index.tsx | 4 +- .../{ => form}/yahoo-finance-form/index.tsx | 2 +- 37 files changed, 90 insertions(+), 90 deletions(-) rename web/src/pages/flow/{ => form}/akshare-form/index.tsx (89%) rename web/src/pages/flow/{ => form}/answer-form/index.tsx (100%) rename web/src/pages/flow/{ => form}/arxiv-form/index.tsx (94%) rename web/src/pages/flow/{ => form}/baidu-fanyi-form/index.tsx (96%) rename web/src/pages/flow/{ => form}/baidu-form/index.tsx (89%) rename web/src/pages/flow/{ => form}/begin-form/index.tsx (93%) rename web/src/pages/flow/{ => form}/bing-form/index.tsx (90%) rename web/src/pages/flow/{ => form}/categorize-form/dynamic-categorize.tsx (98%) rename web/src/pages/flow/{ => form}/categorize-form/hooks.ts (97%) rename web/src/pages/flow/{ => form}/categorize-form/index.tsx (91%) rename web/src/pages/flow/{ => form}/concentrator-form/index.tsx (87%) rename web/src/pages/flow/{ => form}/deepl-form/index.tsx (89%) rename web/src/pages/flow/{ => form}/duckduckgo-form/index.tsx (90%) rename web/src/pages/flow/{ => form}/exesql-form/index.tsx (95%) rename web/src/pages/flow/{ => form}/generate-form/dynamic-parameters.tsx (94%) rename web/src/pages/flow/{ => form}/generate-form/hooks.ts (95%) rename web/src/pages/flow/{ => form}/generate-form/index.less (100%) rename web/src/pages/flow/{ => form}/generate-form/index.tsx (94%) rename web/src/pages/flow/{ => form}/github-form/index.tsx (89%) rename web/src/pages/flow/{ => form}/google-form/index.tsx (93%) rename web/src/pages/flow/{ => form}/google-scholar-form/index.tsx (94%) rename web/src/pages/flow/{ => form}/jin10-form/index.tsx (98%) rename web/src/pages/flow/{ => form}/keyword-extract-form/index.tsx (89%) rename web/src/pages/flow/{ => form}/message-form/index.less (100%) rename web/src/pages/flow/{ => form}/message-form/index.tsx (97%) rename web/src/pages/flow/{ => form}/pubmed-form/index.tsx (93%) rename web/src/pages/flow/{ => form}/qweather-form/index.tsx (97%) rename web/src/pages/flow/{ => form}/relevant-form/hooks.ts (94%) rename web/src/pages/flow/{ => form}/relevant-form/index.tsx (86%) rename web/src/pages/flow/{ => form}/retrieval-form/index.tsx (96%) rename web/src/pages/flow/{ => form}/rewrite-question-form/index.tsx (90%) rename web/src/pages/flow/{ => form}/switch-form/index.tsx (95%) rename web/src/pages/flow/{ => form}/tushare-form/index.tsx (95%) rename web/src/pages/flow/{ => form}/wencai-form/index.tsx (89%) rename web/src/pages/flow/{ => form}/wikipedia-form/index.tsx (87%) rename web/src/pages/flow/{ => form}/yahoo-finance-form/index.tsx (95%) diff --git a/web/src/pages/flow/flow-drawer/index.tsx b/web/src/pages/flow/flow-drawer/index.tsx index f5d67ff4fa1..c481405e912 100644 --- a/web/src/pages/flow/flow-drawer/index.tsx +++ b/web/src/pages/flow/flow-drawer/index.tsx @@ -3,38 +3,38 @@ import { IModalProps } from '@/interfaces/common'; import { Drawer, Flex, Form, Input } from 'antd'; import { useEffect } from 'react'; import { Node } from 'reactflow'; -import AkShareForm from '../akshare-form'; -import AnswerForm from '../answer-form'; -import ArXivForm from '../arxiv-form'; -import BaiduFanyiForm from '../baidu-fanyi-form'; -import BaiduForm from '../baidu-form'; -import BeginForm from '../begin-form'; -import BingForm from '../bing-form'; -import CategorizeForm from '../categorize-form'; import { Operator } from '../constant'; -import DeepLForm from '../deepl-form'; -import DuckDuckGoForm from '../duckduckgo-form'; -import ExeSQLForm from '../exesql-form'; -import GenerateForm from '../generate-form'; -import GithubForm from '../github-form'; -import GoogleForm from '../google-form'; -import GoogleScholarForm from '../google-scholar-form'; +import AkShareForm from '../form/akshare-form'; +import AnswerForm from '../form/answer-form'; +import ArXivForm from '../form/arxiv-form'; +import BaiduFanyiForm from '../form/baidu-fanyi-form'; +import BaiduForm from '../form/baidu-form'; +import BeginForm from '../form/begin-form'; +import BingForm from '../form/bing-form'; +import CategorizeForm from '../form/categorize-form'; +import DeepLForm from '../form/deepl-form'; +import DuckDuckGoForm from '../form/duckduckgo-form'; +import ExeSQLForm from '../form/exesql-form'; +import GenerateForm from '../form/generate-form'; +import GithubForm from '../form/github-form'; +import GoogleForm from '../form/google-form'; +import GoogleScholarForm from '../form/google-scholar-form'; +import Jin10Form from '../form/jin10-form'; +import KeywordExtractForm from '../form/keyword-extract-form'; +import MessageForm from '../form/message-form'; +import PubMedForm from '../form/pubmed-form'; +import QWeatherForm from '../form/qweather-form'; +import RelevantForm from '../form/relevant-form'; +import RetrievalForm from '../form/retrieval-form'; +import RewriteQuestionForm from '../form/rewrite-question-form'; +import SwitchForm from '../form/switch-form'; +import TuShareForm from '../form/tushare-form'; +import WenCaiForm from '../form/wencai-form'; +import WikipediaForm from '../form/wikipedia-form'; +import YahooFinanceForm from '../form/yahoo-finance-form'; import { useHandleFormValuesChange, useHandleNodeNameChange } from '../hooks'; -import KeywordExtractForm from '../keyword-extract-form'; -import MessageForm from '../message-form'; import OperatorIcon from '../operator-icon'; -import PubMedForm from '../pubmed-form'; -import QWeatherForm from '../qweather-form'; -import RelevantForm from '../relevant-form'; -import RetrievalForm from '../retrieval-form'; -import RewriteQuestionForm from '../rewrite-question-form'; -import SwitchForm from '../switch-form'; -import TuShareForm from '../tushare-form'; -import WenCaiForm from '../wencai-form'; -import WikipediaForm from '../wikipedia-form'; -import Jin10Form from '../jin10-form'; -import YahooFinanceForm from '../yahoo-finance-form'; import styles from './index.less'; interface IProps { diff --git a/web/src/pages/flow/akshare-form/index.tsx b/web/src/pages/flow/form/akshare-form/index.tsx similarity index 89% rename from web/src/pages/flow/akshare-form/index.tsx rename to web/src/pages/flow/form/akshare-form/index.tsx index 7e58a3a210f..5161a897fb3 100644 --- a/web/src/pages/flow/akshare-form/index.tsx +++ b/web/src/pages/flow/form/akshare-form/index.tsx @@ -1,6 +1,6 @@ import TopNItem from '@/components/top-n-item'; import { Form } from 'antd'; -import { IOperatorForm } from '../interface'; +import { IOperatorForm } from '../../interface'; const AkShareForm = ({ onValuesChange, form }: IOperatorForm) => { return ( diff --git a/web/src/pages/flow/answer-form/index.tsx b/web/src/pages/flow/form/answer-form/index.tsx similarity index 100% rename from web/src/pages/flow/answer-form/index.tsx rename to web/src/pages/flow/form/answer-form/index.tsx diff --git a/web/src/pages/flow/arxiv-form/index.tsx b/web/src/pages/flow/form/arxiv-form/index.tsx similarity index 94% rename from web/src/pages/flow/arxiv-form/index.tsx rename to web/src/pages/flow/form/arxiv-form/index.tsx index 49355a9a404..23136f89371 100644 --- a/web/src/pages/flow/arxiv-form/index.tsx +++ b/web/src/pages/flow/form/arxiv-form/index.tsx @@ -2,7 +2,7 @@ import TopNItem from '@/components/top-n-item'; import { useTranslate } from '@/hooks/common-hooks'; import { Form, Select } from 'antd'; import { useMemo } from 'react'; -import { IOperatorForm } from '../interface'; +import { IOperatorForm } from '../../interface'; const ArXivForm = ({ onValuesChange, form }: IOperatorForm) => { const { t } = useTranslate('flow'); diff --git a/web/src/pages/flow/baidu-fanyi-form/index.tsx b/web/src/pages/flow/form/baidu-fanyi-form/index.tsx similarity index 96% rename from web/src/pages/flow/baidu-fanyi-form/index.tsx rename to web/src/pages/flow/form/baidu-fanyi-form/index.tsx index 2148c0bc8db..bba9d923303 100644 --- a/web/src/pages/flow/baidu-fanyi-form/index.tsx +++ b/web/src/pages/flow/form/baidu-fanyi-form/index.tsx @@ -4,8 +4,8 @@ import { useMemo } from 'react'; import { BaiduFanyiDomainOptions, BaiduFanyiSourceLangOptions, -} from '../constant'; -import { IOperatorForm } from '../interface'; +} from '../../constant'; +import { IOperatorForm } from '../../interface'; const BaiduFanyiForm = ({ onValuesChange, form }: IOperatorForm) => { const { t } = useTranslate('flow'); diff --git a/web/src/pages/flow/baidu-form/index.tsx b/web/src/pages/flow/form/baidu-form/index.tsx similarity index 89% rename from web/src/pages/flow/baidu-form/index.tsx rename to web/src/pages/flow/form/baidu-form/index.tsx index 36f9df9df2c..b3a789ba1d4 100644 --- a/web/src/pages/flow/baidu-form/index.tsx +++ b/web/src/pages/flow/form/baidu-form/index.tsx @@ -1,6 +1,6 @@ import TopNItem from '@/components/top-n-item'; import { Form } from 'antd'; -import { IOperatorForm } from '../interface'; +import { IOperatorForm } from '../../interface'; const BaiduForm = ({ onValuesChange, form }: IOperatorForm) => { return ( diff --git a/web/src/pages/flow/begin-form/index.tsx b/web/src/pages/flow/form/begin-form/index.tsx similarity index 93% rename from web/src/pages/flow/begin-form/index.tsx rename to web/src/pages/flow/form/begin-form/index.tsx index ebc1789e444..dbb852707be 100644 --- a/web/src/pages/flow/begin-form/index.tsx +++ b/web/src/pages/flow/form/begin-form/index.tsx @@ -1,6 +1,6 @@ import { useTranslate } from '@/hooks/common-hooks'; import { Form, Input } from 'antd'; -import { IOperatorForm } from '../interface'; +import { IOperatorForm } from '../../interface'; type FieldType = { prologue?: string; diff --git a/web/src/pages/flow/bing-form/index.tsx b/web/src/pages/flow/form/bing-form/index.tsx similarity index 90% rename from web/src/pages/flow/bing-form/index.tsx rename to web/src/pages/flow/form/bing-form/index.tsx index f18f8b0b169..879e68f7bac 100644 --- a/web/src/pages/flow/bing-form/index.tsx +++ b/web/src/pages/flow/form/bing-form/index.tsx @@ -2,8 +2,8 @@ import TopNItem from '@/components/top-n-item'; import { useTranslate } from '@/hooks/common-hooks'; import { Form, Input, Select } from 'antd'; import { useMemo } from 'react'; -import { BingCountryOptions, BingLanguageOptions } from '../constant'; -import { IOperatorForm } from '../interface'; +import { BingCountryOptions, BingLanguageOptions } from '../../constant'; +import { IOperatorForm } from '../../interface'; const BingForm = ({ onValuesChange, form }: IOperatorForm) => { const { t } = useTranslate('flow'); diff --git a/web/src/pages/flow/categorize-form/dynamic-categorize.tsx b/web/src/pages/flow/form/categorize-form/dynamic-categorize.tsx similarity index 98% rename from web/src/pages/flow/categorize-form/dynamic-categorize.tsx rename to web/src/pages/flow/form/categorize-form/dynamic-categorize.tsx index dea2441608d..cf8784f9508 100644 --- a/web/src/pages/flow/categorize-form/dynamic-categorize.tsx +++ b/web/src/pages/flow/form/categorize-form/dynamic-categorize.tsx @@ -12,8 +12,8 @@ import { useState, } from 'react'; import { useUpdateNodeInternals } from 'reactflow'; -import { Operator } from '../constant'; -import { useBuildFormSelectOptions } from '../form-hooks'; +import { Operator } from '../../constant'; +import { useBuildFormSelectOptions } from '../../form-hooks'; interface IProps { nodeId?: string; diff --git a/web/src/pages/flow/categorize-form/hooks.ts b/web/src/pages/flow/form/categorize-form/hooks.ts similarity index 97% rename from web/src/pages/flow/categorize-form/hooks.ts rename to web/src/pages/flow/form/categorize-form/hooks.ts index 1a8cc0a4aa5..2de4c876c82 100644 --- a/web/src/pages/flow/categorize-form/hooks.ts +++ b/web/src/pages/flow/form/categorize-form/hooks.ts @@ -5,8 +5,8 @@ import { ICategorizeItem, ICategorizeItemResult, IOperatorForm, -} from '../interface'; -import useGraphStore from '../store'; +} from '../../interface'; +import useGraphStore from '../../store'; /** * convert the following object into a list diff --git a/web/src/pages/flow/categorize-form/index.tsx b/web/src/pages/flow/form/categorize-form/index.tsx similarity index 91% rename from web/src/pages/flow/categorize-form/index.tsx rename to web/src/pages/flow/form/categorize-form/index.tsx index 4eea06aeb82..a1ac944dc47 100644 --- a/web/src/pages/flow/categorize-form/index.tsx +++ b/web/src/pages/flow/form/categorize-form/index.tsx @@ -1,8 +1,8 @@ import LLMSelect from '@/components/llm-select'; import { useTranslate } from '@/hooks/common-hooks'; import { Form } from 'antd'; -import { useSetLlmSetting } from '../hooks'; -import { IOperatorForm } from '../interface'; +import { useSetLlmSetting } from '../../hooks'; +import { IOperatorForm } from '../../interface'; import DynamicCategorize from './dynamic-categorize'; import { useHandleFormValuesChange } from './hooks'; diff --git a/web/src/pages/flow/concentrator-form/index.tsx b/web/src/pages/flow/form/concentrator-form/index.tsx similarity index 87% rename from web/src/pages/flow/concentrator-form/index.tsx rename to web/src/pages/flow/form/concentrator-form/index.tsx index 0e90760ca2f..d409f30990f 100644 --- a/web/src/pages/flow/concentrator-form/index.tsx +++ b/web/src/pages/flow/form/concentrator-form/index.tsx @@ -1,5 +1,5 @@ import { Form } from 'antd'; -import { IOperatorForm } from '../interface'; +import { IOperatorForm } from '../../interface'; const ConcentratorForm = ({ onValuesChange, form }: IOperatorForm) => { return ( diff --git a/web/src/pages/flow/deepl-form/index.tsx b/web/src/pages/flow/form/deepl-form/index.tsx similarity index 89% rename from web/src/pages/flow/deepl-form/index.tsx rename to web/src/pages/flow/form/deepl-form/index.tsx index cb3400debeb..b11cf4a7c33 100644 --- a/web/src/pages/flow/deepl-form/index.tsx +++ b/web/src/pages/flow/form/deepl-form/index.tsx @@ -1,9 +1,9 @@ import TopNItem from '@/components/top-n-item'; import { useTranslate } from '@/hooks/common-hooks'; import { Form, Select } from 'antd'; -import { DeepLSourceLangOptions, DeepLTargetLangOptions } from '../constant'; -import { useBuildSortOptions } from '../form-hooks'; -import { IOperatorForm } from '../interface'; +import { DeepLSourceLangOptions, DeepLTargetLangOptions } from '../../constant'; +import { useBuildSortOptions } from '../../form-hooks'; +import { IOperatorForm } from '../../interface'; const DeepLForm = ({ onValuesChange, form }: IOperatorForm) => { const { t } = useTranslate('flow'); diff --git a/web/src/pages/flow/duckduckgo-form/index.tsx b/web/src/pages/flow/form/duckduckgo-form/index.tsx similarity index 90% rename from web/src/pages/flow/duckduckgo-form/index.tsx rename to web/src/pages/flow/form/duckduckgo-form/index.tsx index 9238b9603cc..bf79951cced 100644 --- a/web/src/pages/flow/duckduckgo-form/index.tsx +++ b/web/src/pages/flow/form/duckduckgo-form/index.tsx @@ -2,8 +2,8 @@ import TopNItem from '@/components/top-n-item'; import { useTranslate } from '@/hooks/common-hooks'; import { Form, Select } from 'antd'; import { useMemo } from 'react'; -import { Channel } from '../constant'; -import { IOperatorForm } from '../interface'; +import { Channel } from '../../constant'; +import { IOperatorForm } from '../../interface'; const DuckDuckGoForm = ({ onValuesChange, form }: IOperatorForm) => { const { t } = useTranslate('flow'); diff --git a/web/src/pages/flow/exesql-form/index.tsx b/web/src/pages/flow/form/exesql-form/index.tsx similarity index 95% rename from web/src/pages/flow/exesql-form/index.tsx rename to web/src/pages/flow/form/exesql-form/index.tsx index 8171fe4e659..767a774b338 100644 --- a/web/src/pages/flow/exesql-form/index.tsx +++ b/web/src/pages/flow/form/exesql-form/index.tsx @@ -3,8 +3,8 @@ import { useTranslate } from '@/hooks/common-hooks'; import { useTestDbConnect } from '@/hooks/flow-hooks'; import { Button, Flex, Form, Input, InputNumber, Select } from 'antd'; import { useCallback } from 'react'; -import { ExeSQLOptions } from '../constant'; -import { IOperatorForm } from '../interface'; +import { ExeSQLOptions } from '../../constant'; +import { IOperatorForm } from '../../interface'; const ExeSQLForm = ({ onValuesChange, form }: IOperatorForm) => { const { t } = useTranslate('flow'); diff --git a/web/src/pages/flow/generate-form/dynamic-parameters.tsx b/web/src/pages/flow/form/generate-form/dynamic-parameters.tsx similarity index 94% rename from web/src/pages/flow/generate-form/dynamic-parameters.tsx rename to web/src/pages/flow/form/generate-form/dynamic-parameters.tsx index 4e84849e669..d23dcc06326 100644 --- a/web/src/pages/flow/generate-form/dynamic-parameters.tsx +++ b/web/src/pages/flow/form/generate-form/dynamic-parameters.tsx @@ -2,9 +2,9 @@ import { EditableCell, EditableRow } from '@/components/editable-cell'; import { useTranslate } from '@/hooks/common-hooks'; import { DeleteOutlined } from '@ant-design/icons'; import { Button, Flex, Select, Table, TableProps } from 'antd'; -import { IGenerateParameter } from '../interface'; +import { IGenerateParameter } from '../../interface'; -import { useBuildComponentIdSelectOptions } from '../hooks'; +import { useBuildComponentIdSelectOptions } from '../../hooks'; import { useHandleOperateParameters } from './hooks'; import styles from './index.less'; diff --git a/web/src/pages/flow/generate-form/hooks.ts b/web/src/pages/flow/form/generate-form/hooks.ts similarity index 95% rename from web/src/pages/flow/generate-form/hooks.ts rename to web/src/pages/flow/form/generate-form/hooks.ts index e8a5c305a99..8aa179cf93f 100644 --- a/web/src/pages/flow/generate-form/hooks.ts +++ b/web/src/pages/flow/form/generate-form/hooks.ts @@ -1,8 +1,8 @@ import get from 'lodash/get'; import { useCallback, useMemo } from 'react'; import { v4 as uuid } from 'uuid'; -import { IGenerateParameter } from '../interface'; -import useGraphStore from '../store'; +import { IGenerateParameter } from '../../interface'; +import useGraphStore from '../../store'; export const useHandleOperateParameters = (nodeId: string) => { const { getNode, updateNodeForm } = useGraphStore((state) => state); diff --git a/web/src/pages/flow/generate-form/index.less b/web/src/pages/flow/form/generate-form/index.less similarity index 100% rename from web/src/pages/flow/generate-form/index.less rename to web/src/pages/flow/form/generate-form/index.less diff --git a/web/src/pages/flow/generate-form/index.tsx b/web/src/pages/flow/form/generate-form/index.tsx similarity index 94% rename from web/src/pages/flow/generate-form/index.tsx rename to web/src/pages/flow/form/generate-form/index.tsx index 14b6657282c..483c3cce8fd 100644 --- a/web/src/pages/flow/generate-form/index.tsx +++ b/web/src/pages/flow/form/generate-form/index.tsx @@ -1,8 +1,8 @@ import LLMSelect from '@/components/llm-select'; import { useTranslate } from '@/hooks/common-hooks'; import { Form, Input, InputNumber, Switch } from 'antd'; -import { useSetLlmSetting } from '../hooks'; -import { IOperatorForm } from '../interface'; +import { useSetLlmSetting } from '../../hooks'; +import { IOperatorForm } from '../../interface'; import DynamicParameters from './dynamic-parameters'; const GenerateForm = ({ onValuesChange, form, node }: IOperatorForm) => { diff --git a/web/src/pages/flow/github-form/index.tsx b/web/src/pages/flow/form/github-form/index.tsx similarity index 89% rename from web/src/pages/flow/github-form/index.tsx rename to web/src/pages/flow/form/github-form/index.tsx index 4898f816a9c..e7109f99168 100644 --- a/web/src/pages/flow/github-form/index.tsx +++ b/web/src/pages/flow/form/github-form/index.tsx @@ -1,6 +1,6 @@ import TopNItem from '@/components/top-n-item'; import { Form } from 'antd'; -import { IOperatorForm } from '../interface'; +import { IOperatorForm } from '../../interface'; const GithubForm = ({ onValuesChange, form }: IOperatorForm) => { return ( diff --git a/web/src/pages/flow/google-form/index.tsx b/web/src/pages/flow/form/google-form/index.tsx similarity index 93% rename from web/src/pages/flow/google-form/index.tsx rename to web/src/pages/flow/form/google-form/index.tsx index 807b690c791..27ed2ec5e3f 100644 --- a/web/src/pages/flow/google-form/index.tsx +++ b/web/src/pages/flow/form/google-form/index.tsx @@ -1,8 +1,8 @@ import TopNItem from '@/components/top-n-item'; import { useTranslate } from '@/hooks/common-hooks'; import { Form, Input, Select } from 'antd'; -import { GoogleCountryOptions, GoogleLanguageOptions } from '../constant'; -import { IOperatorForm } from '../interface'; +import { GoogleCountryOptions, GoogleLanguageOptions } from '../../constant'; +import { IOperatorForm } from '../../interface'; const GoogleForm = ({ onValuesChange, form }: IOperatorForm) => { const { t } = useTranslate('flow'); diff --git a/web/src/pages/flow/google-scholar-form/index.tsx b/web/src/pages/flow/form/google-scholar-form/index.tsx similarity index 94% rename from web/src/pages/flow/google-scholar-form/index.tsx rename to web/src/pages/flow/form/google-scholar-form/index.tsx index 5ee4236f7e0..030571b1ac8 100644 --- a/web/src/pages/flow/google-scholar-form/index.tsx +++ b/web/src/pages/flow/form/google-scholar-form/index.tsx @@ -3,8 +3,8 @@ import { useTranslate } from '@/hooks/common-hooks'; import { DatePicker, DatePickerProps, Form, Select, Switch } from 'antd'; import dayjs from 'dayjs'; import { useCallback, useMemo } from 'react'; -import { useBuildSortOptions } from '../form-hooks'; -import { IOperatorForm } from '../interface'; +import { useBuildSortOptions } from '../../form-hooks'; +import { IOperatorForm } from '../../interface'; const YearPicker = ({ onChange, diff --git a/web/src/pages/flow/jin10-form/index.tsx b/web/src/pages/flow/form/jin10-form/index.tsx similarity index 98% rename from web/src/pages/flow/jin10-form/index.tsx rename to web/src/pages/flow/form/jin10-form/index.tsx index 2db32b0cf00..4e39c8bab16 100644 --- a/web/src/pages/flow/jin10-form/index.tsx +++ b/web/src/pages/flow/form/jin10-form/index.tsx @@ -8,8 +8,8 @@ import { Jin10SymbolsDatatypeOptions, Jin10SymbolsTypeOptions, Jin10TypeOptions, -} from '../constant'; -import { IOperatorForm } from '../interface'; +} from '../../constant'; +import { IOperatorForm } from '../../interface'; const Jin10Form = ({ onValuesChange, form }: IOperatorForm) => { const { t } = useTranslate('flow'); diff --git a/web/src/pages/flow/keyword-extract-form/index.tsx b/web/src/pages/flow/form/keyword-extract-form/index.tsx similarity index 89% rename from web/src/pages/flow/keyword-extract-form/index.tsx rename to web/src/pages/flow/form/keyword-extract-form/index.tsx index e1ba6554831..c88612c5447 100644 --- a/web/src/pages/flow/keyword-extract-form/index.tsx +++ b/web/src/pages/flow/form/keyword-extract-form/index.tsx @@ -2,8 +2,8 @@ import LLMSelect from '@/components/llm-select'; import TopNItem from '@/components/top-n-item'; import { useTranslate } from '@/hooks/common-hooks'; import { Form } from 'antd'; -import { useSetLlmSetting } from '../hooks'; -import { IOperatorForm } from '../interface'; +import { useSetLlmSetting } from '../../hooks'; +import { IOperatorForm } from '../../interface'; const KeywordExtractForm = ({ onValuesChange, form }: IOperatorForm) => { const { t } = useTranslate('flow'); diff --git a/web/src/pages/flow/message-form/index.less b/web/src/pages/flow/form/message-form/index.less similarity index 100% rename from web/src/pages/flow/message-form/index.less rename to web/src/pages/flow/form/message-form/index.less diff --git a/web/src/pages/flow/message-form/index.tsx b/web/src/pages/flow/form/message-form/index.tsx similarity index 97% rename from web/src/pages/flow/message-form/index.tsx rename to web/src/pages/flow/form/message-form/index.tsx index 48b85f419d4..6040b929df2 100644 --- a/web/src/pages/flow/message-form/index.tsx +++ b/web/src/pages/flow/form/message-form/index.tsx @@ -1,7 +1,7 @@ import { useTranslate } from '@/hooks/common-hooks'; import { MinusCircleOutlined, PlusOutlined } from '@ant-design/icons'; import { Button, Form, Input } from 'antd'; -import { IOperatorForm } from '../interface'; +import { IOperatorForm } from '../../interface'; import styles from './index.less'; diff --git a/web/src/pages/flow/pubmed-form/index.tsx b/web/src/pages/flow/form/pubmed-form/index.tsx similarity index 93% rename from web/src/pages/flow/pubmed-form/index.tsx rename to web/src/pages/flow/form/pubmed-form/index.tsx index fd8cad2e696..537be34b674 100644 --- a/web/src/pages/flow/pubmed-form/index.tsx +++ b/web/src/pages/flow/form/pubmed-form/index.tsx @@ -1,7 +1,7 @@ import TopNItem from '@/components/top-n-item'; import { useTranslate } from '@/hooks/common-hooks'; import { Form, Input } from 'antd'; -import { IOperatorForm } from '../interface'; +import { IOperatorForm } from '../../interface'; const PubMedForm = ({ onValuesChange, form }: IOperatorForm) => { const { t } = useTranslate('flow'); diff --git a/web/src/pages/flow/qweather-form/index.tsx b/web/src/pages/flow/form/qweather-form/index.tsx similarity index 97% rename from web/src/pages/flow/qweather-form/index.tsx rename to web/src/pages/flow/form/qweather-form/index.tsx index fbbc51f9047..7f2a90557d8 100644 --- a/web/src/pages/flow/qweather-form/index.tsx +++ b/web/src/pages/flow/form/qweather-form/index.tsx @@ -6,8 +6,8 @@ import { QWeatherTimePeriodOptions, QWeatherTypeOptions, QWeatherUserTypeOptions, -} from '../constant'; -import { IOperatorForm } from '../interface'; +} from '../../constant'; +import { IOperatorForm } from '../../interface'; const QWeatherForm = ({ onValuesChange, form }: IOperatorForm) => { const { t } = useTranslate('flow'); diff --git a/web/src/pages/flow/relevant-form/hooks.ts b/web/src/pages/flow/form/relevant-form/hooks.ts similarity index 94% rename from web/src/pages/flow/relevant-form/hooks.ts rename to web/src/pages/flow/form/relevant-form/hooks.ts index 815b9701ab8..6ccbfff08e7 100644 --- a/web/src/pages/flow/relevant-form/hooks.ts +++ b/web/src/pages/flow/form/relevant-form/hooks.ts @@ -1,8 +1,8 @@ import pick from 'lodash/pick'; import { useCallback, useEffect } from 'react'; import { Edge } from 'reactflow'; -import { IOperatorForm } from '../interface'; -import useGraphStore from '../store'; +import { IOperatorForm } from '../../interface'; +import useGraphStore from '../../store'; export const useBuildRelevantOptions = () => { const nodes = useGraphStore((state) => state.nodes); diff --git a/web/src/pages/flow/relevant-form/index.tsx b/web/src/pages/flow/form/relevant-form/index.tsx similarity index 86% rename from web/src/pages/flow/relevant-form/index.tsx rename to web/src/pages/flow/form/relevant-form/index.tsx index 87eba1e45f5..92ae5498c6c 100644 --- a/web/src/pages/flow/relevant-form/index.tsx +++ b/web/src/pages/flow/form/relevant-form/index.tsx @@ -1,10 +1,10 @@ import LLMSelect from '@/components/llm-select'; import { useTranslate } from '@/hooks/common-hooks'; import { Form, Select } from 'antd'; -import { Operator } from '../constant'; -import { useBuildFormSelectOptions } from '../form-hooks'; -import { useSetLlmSetting } from '../hooks'; -import { IOperatorForm } from '../interface'; +import { Operator } from '../../constant'; +import { useBuildFormSelectOptions } from '../../form-hooks'; +import { useSetLlmSetting } from '../../hooks'; +import { IOperatorForm } from '../../interface'; import { useWatchConnectionChanges } from './hooks'; const RelevantForm = ({ onValuesChange, form, node }: IOperatorForm) => { diff --git a/web/src/pages/flow/retrieval-form/index.tsx b/web/src/pages/flow/form/retrieval-form/index.tsx similarity index 96% rename from web/src/pages/flow/retrieval-form/index.tsx rename to web/src/pages/flow/form/retrieval-form/index.tsx index b62572fdc12..8ee93888c6e 100644 --- a/web/src/pages/flow/retrieval-form/index.tsx +++ b/web/src/pages/flow/form/retrieval-form/index.tsx @@ -5,7 +5,7 @@ import TopNItem from '@/components/top-n-item'; import { useTranslate } from '@/hooks/common-hooks'; import type { FormProps } from 'antd'; import { Form, Input } from 'antd'; -import { IOperatorForm } from '../interface'; +import { IOperatorForm } from '../../interface'; type FieldType = { top_n?: number; diff --git a/web/src/pages/flow/rewrite-question-form/index.tsx b/web/src/pages/flow/form/rewrite-question-form/index.tsx similarity index 90% rename from web/src/pages/flow/rewrite-question-form/index.tsx rename to web/src/pages/flow/form/rewrite-question-form/index.tsx index 1f29c853aaf..cbf5f27f0b1 100644 --- a/web/src/pages/flow/rewrite-question-form/index.tsx +++ b/web/src/pages/flow/form/rewrite-question-form/index.tsx @@ -1,8 +1,8 @@ import LLMSelect from '@/components/llm-select'; import { useTranslate } from '@/hooks/common-hooks'; import { Form, InputNumber } from 'antd'; -import { useSetLlmSetting } from '../hooks'; -import { IOperatorForm } from '../interface'; +import { useSetLlmSetting } from '../../hooks'; +import { IOperatorForm } from '../../interface'; const RewriteQuestionForm = ({ onValuesChange, form }: IOperatorForm) => { const { t } = useTranslate('chat'); diff --git a/web/src/pages/flow/switch-form/index.tsx b/web/src/pages/flow/form/switch-form/index.tsx similarity index 95% rename from web/src/pages/flow/switch-form/index.tsx rename to web/src/pages/flow/form/switch-form/index.tsx index c3f772bfd87..dfc089b6cbc 100644 --- a/web/src/pages/flow/switch-form/index.tsx +++ b/web/src/pages/flow/form/switch-form/index.tsx @@ -7,11 +7,11 @@ import { SwitchElseTo, SwitchLogicOperatorOptions, SwitchOperatorOptions, -} from '../constant'; -import { useBuildFormSelectOptions } from '../form-hooks'; -import { useBuildComponentIdSelectOptions } from '../hooks'; -import { IOperatorForm, ISwitchForm } from '../interface'; -import { getOtherFieldValues } from '../utils'; +} from '../../constant'; +import { useBuildFormSelectOptions } from '../../form-hooks'; +import { useBuildComponentIdSelectOptions } from '../../hooks'; +import { IOperatorForm, ISwitchForm } from '../../interface'; +import { getOtherFieldValues } from '../../utils'; const subLabelCol = { span: 11, diff --git a/web/src/pages/flow/tushare-form/index.tsx b/web/src/pages/flow/form/tushare-form/index.tsx similarity index 95% rename from web/src/pages/flow/tushare-form/index.tsx rename to web/src/pages/flow/form/tushare-form/index.tsx index 4831ad3d286..6a71df63afa 100644 --- a/web/src/pages/flow/tushare-form/index.tsx +++ b/web/src/pages/flow/form/tushare-form/index.tsx @@ -2,8 +2,8 @@ import { useTranslate } from '@/hooks/common-hooks'; import { DatePicker, DatePickerProps, Form, Input, Select } from 'antd'; import dayjs from 'dayjs'; import { useCallback, useMemo } from 'react'; -import { TuShareSrcOptions } from '../constant'; -import { IOperatorForm } from '../interface'; +import { TuShareSrcOptions } from '../../constant'; +import { IOperatorForm } from '../../interface'; const DateTimePicker = ({ onChange, diff --git a/web/src/pages/flow/wencai-form/index.tsx b/web/src/pages/flow/form/wencai-form/index.tsx similarity index 89% rename from web/src/pages/flow/wencai-form/index.tsx rename to web/src/pages/flow/form/wencai-form/index.tsx index 14842984274..1b0df49c916 100644 --- a/web/src/pages/flow/wencai-form/index.tsx +++ b/web/src/pages/flow/form/wencai-form/index.tsx @@ -2,8 +2,8 @@ import TopNItem from '@/components/top-n-item'; import { useTranslate } from '@/hooks/common-hooks'; import { Form, Select } from 'antd'; import { useMemo } from 'react'; -import { WenCaiQueryTypeOptions } from '../constant'; -import { IOperatorForm } from '../interface'; +import { WenCaiQueryTypeOptions } from '../../constant'; +import { IOperatorForm } from '../../interface'; const WenCaiForm = ({ onValuesChange, form }: IOperatorForm) => { const { t } = useTranslate('flow'); diff --git a/web/src/pages/flow/wikipedia-form/index.tsx b/web/src/pages/flow/form/wikipedia-form/index.tsx similarity index 87% rename from web/src/pages/flow/wikipedia-form/index.tsx rename to web/src/pages/flow/form/wikipedia-form/index.tsx index 8a388c6ba3f..1c4f7fa6036 100644 --- a/web/src/pages/flow/wikipedia-form/index.tsx +++ b/web/src/pages/flow/form/wikipedia-form/index.tsx @@ -1,8 +1,8 @@ import TopNItem from '@/components/top-n-item'; import { useTranslate } from '@/hooks/common-hooks'; import { Form, Select } from 'antd'; -import { LanguageOptions } from '../constant'; -import { IOperatorForm } from '../interface'; +import { LanguageOptions } from '../../constant'; +import { IOperatorForm } from '../../interface'; const WikipediaForm = ({ onValuesChange, form }: IOperatorForm) => { const { t } = useTranslate('common'); diff --git a/web/src/pages/flow/yahoo-finance-form/index.tsx b/web/src/pages/flow/form/yahoo-finance-form/index.tsx similarity index 95% rename from web/src/pages/flow/yahoo-finance-form/index.tsx rename to web/src/pages/flow/form/yahoo-finance-form/index.tsx index 59b125f504b..2f8a61d5eb5 100644 --- a/web/src/pages/flow/yahoo-finance-form/index.tsx +++ b/web/src/pages/flow/form/yahoo-finance-form/index.tsx @@ -1,6 +1,6 @@ import { useTranslate } from '@/hooks/common-hooks'; import { Form, Switch } from 'antd'; -import { IOperatorForm } from '../interface'; +import { IOperatorForm } from '../../interface'; const YahooFinanceForm = ({ onValuesChange, form }: IOperatorForm) => { const { t } = useTranslate('flow'); From f3f348a9b8c83500c23a7fb6641f8235e5269918 Mon Sep 17 00:00:00 2001 From: bill Date: Wed, 9 Oct 2024 18:43:31 +0800 Subject: [PATCH 2/2] feat: Add a note node to the agent canvas #2767 --- web/src/assets/svg/note.svg | 9 ++++ web/src/locales/en.ts | 3 ++ web/src/locales/zh-traditional.ts | 3 ++ web/src/locales/zh.ts | 3 ++ web/src/pages/flow/canvas/index.tsx | 23 ++++------ web/src/pages/flow/canvas/node/index.less | 27 +++++++++--- web/src/pages/flow/canvas/node/index.tsx | 15 +------ web/src/pages/flow/canvas/node/note-node.tsx | 46 ++++++++++++++++++++ web/src/pages/flow/constant.tsx | 12 +++++ web/src/pages/flow/flow-sider/index.tsx | 21 +++++---- web/src/pages/flow/hooks.ts | 2 + web/src/pages/flow/utils.ts | 32 +++++++------- 12 files changed, 138 insertions(+), 58 deletions(-) create mode 100644 web/src/assets/svg/note.svg create mode 100644 web/src/pages/flow/canvas/node/note-node.tsx diff --git a/web/src/assets/svg/note.svg b/web/src/assets/svg/note.svg new file mode 100644 index 00000000000..6613b7154f4 --- /dev/null +++ b/web/src/assets/svg/note.svg @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/web/src/locales/en.ts b/web/src/locales/en.ts index f116da46928..8f292a95377 100644 --- a/web/src/locales/en.ts +++ b/web/src/locales/en.ts @@ -985,6 +985,9 @@ The above is the content you need to summarize.`, startDate: 'Start date', endDate: 'End date', keyword: 'Keyword', + note: 'Note', + noteDescription: 'Note', + notePlaceholder: 'Please enter a note', }, footer: { profile: 'All rights reserved @ React', diff --git a/web/src/locales/zh-traditional.ts b/web/src/locales/zh-traditional.ts index 932fb6b79d8..67a8fca295e 100644 --- a/web/src/locales/zh-traditional.ts +++ b/web/src/locales/zh-traditional.ts @@ -937,6 +937,9 @@ export default { startDate: '開始日期', endDate: '結束日期', keyword: '關鍵字', + note: '註解', + noteDescription: '註解', + notePlaceholder: '請輸入註釋', }, footer: { profile: '“保留所有權利 @ react”', diff --git a/web/src/locales/zh.ts b/web/src/locales/zh.ts index dd9bdec9dac..c2126a04226 100644 --- a/web/src/locales/zh.ts +++ b/web/src/locales/zh.ts @@ -955,6 +955,9 @@ export default { startDate: '开始日期', endDate: '结束日期', keyword: '关键字', + note: '注释', + noteDescription: '注释', + notePlaceholder: '请输入注释', }, footer: { profile: 'All rights reserved @ React', diff --git a/web/src/pages/flow/canvas/index.tsx b/web/src/pages/flow/canvas/index.tsx index 0129e1faa92..39cce7096ff 100644 --- a/web/src/pages/flow/canvas/index.tsx +++ b/web/src/pages/flow/canvas/index.tsx @@ -6,9 +6,8 @@ import ReactFlow, { NodeMouseHandler, } from 'reactflow'; import 'reactflow/dist/style.css'; - -import { ButtonEdge } from './edge'; - +import ChatDrawer from '../chat/drawer'; +import { Operator } from '../constant'; import FlowDrawer from '../flow-drawer'; import { useHandleDrop, @@ -18,13 +17,13 @@ import { useValidateConnection, useWatchNodeFormDataChange, } from '../hooks'; -import { RagNode } from './node'; - -import ChatDrawer from '../chat/drawer'; +import { ButtonEdge } from './edge'; import styles from './index.less'; +import { RagNode } from './node'; import { BeginNode } from './node/begin-node'; import { CategorizeNode } from './node/categorize-node'; import { LogicNode } from './node/logic-node'; +import NoteNode from './node/note-node'; import { RelevantNode } from './node/relevant-node'; const nodeTypes = { @@ -33,6 +32,7 @@ const nodeTypes = { beginNode: BeginNode, relevantNode: RelevantNode, logicNode: LogicNode, + noteNode: NoteNode, }; const edgeTypes = { @@ -60,7 +60,9 @@ function FlowCanvas({ chatDrawerVisible, hideChatDrawer }: IProps) { const onNodeClick: NodeMouseHandler = useCallback( (e, node) => { - showDrawer(node); + if (node.data.label !== Operator.Note) { + showDrawer(node); + } }, [showDrawer], ); @@ -121,14 +123,7 @@ function FlowCanvas({ chatDrawerVisible, hideChatDrawer }: IProps) { defaultEdgeOptions={{ type: 'buttonEdge', markerEnd: 'logo', - // markerEnd: { - // type: MarkerType.ArrowClosed, - // color: 'rgb(157 149 225)', - // width: 20, - // height: 20, - // }, style: { - // edge style strokeWidth: 2, stroke: 'rgb(202 197 245)', }, diff --git a/web/src/pages/flow/canvas/node/index.less b/web/src/pages/flow/canvas/node/index.less index 704884f350c..e41ab176c54 100644 --- a/web/src/pages/flow/canvas/node/index.less +++ b/web/src/pages/flow/canvas/node/index.less @@ -1,9 +1,13 @@ -.ragNode { - position: relative; +.commonNode() { box-shadow: -6px 0 12px 0 rgba(179, 177, 177, 0.08), -3px 0 6px -4px rgba(0, 0, 0, 0.12), -6px 0 16px 6px rgba(0, 0, 0, 0.05); +} + +.ragNode { + position: relative; + .commonNode(); padding: 5px; border-radius: 5px; @@ -68,10 +72,7 @@ .logicNode { position: relative; - box-shadow: - -6px 0 12px 0 rgba(179, 177, 177, 0.08), - -3px 0 6px -4px rgba(0, 0, 0, 0.12), - -6px 0 16px 6px rgba(0, 0, 0, 0.05); + .commonNode(); padding: 5px; border-radius: 5px; @@ -116,3 +117,17 @@ white-space: nowrap; } } + +.noteNode { + .commonNode(); + width: 140px; + padding: 4px 6px 6px; + border-radius: 10px; + background-color: #dbf8f4; + .noteTitle { + font-size: 12px; + } + .noteForm { + margin-top: 4px; + } +} diff --git a/web/src/pages/flow/canvas/node/index.tsx b/web/src/pages/flow/canvas/node/index.tsx index 054c2d4e8f1..5ba34693380 100644 --- a/web/src/pages/flow/canvas/node/index.tsx +++ b/web/src/pages/flow/canvas/node/index.tsx @@ -1,4 +1,3 @@ -import { useTranslate } from '@/hooks/common-hooks'; import { Flex } from 'antd'; import classNames from 'classnames'; import pick from 'lodash/pick'; @@ -10,12 +9,6 @@ import NodeDropdown from './dropdown'; import styles from './index.less'; import NodePopover from './popover'; -const ZeroGapOperators = [ - Operator.RewriteQuestion, - Operator.KeywordExtract, - Operator.ArXiv, -]; - export function RagNode({ id, data, @@ -23,7 +16,6 @@ export function RagNode({ selected, }: NodeProps) { const style = operatorMap[data.label as Operator]; - const { t } = useTranslate('flow'); return ( @@ -51,12 +43,7 @@ export function RagNode({ id="b" > - x === data.label) ? 0 : 6} - > + diff --git a/web/src/pages/flow/canvas/node/note-node.tsx b/web/src/pages/flow/canvas/node/note-node.tsx new file mode 100644 index 00000000000..1686255e08c --- /dev/null +++ b/web/src/pages/flow/canvas/node/note-node.tsx @@ -0,0 +1,46 @@ +import { Flex, Form, Input, Space } from 'antd'; +import { NodeProps } from 'reactflow'; +import { NodeData } from '../../interface'; +import NodeDropdown from './dropdown'; + +import SvgIcon from '@/components/svg-icon'; +import { useEffect } from 'react'; +import { useTranslation } from 'react-i18next'; +import { useHandleFormValuesChange } from '../../hooks'; +import styles from './index.less'; + +const { TextArea } = Input; + +function NoteNode({ data, id }: NodeProps) { + const { t } = useTranslation(); + const [form] = Form.useForm(); + + const { handleValuesChange } = useHandleFormValuesChange(id); + + useEffect(() => { + form.setFieldsValue(data?.form); + }, [form, data?.form]); + + return ( +
+ + + + {t('flow.note')} + + + +
+ +