balibabu
commited on
Commit
·
a2c2382
1
Parent(s):
eb1f8d0
feat: Add DynamicInputVariable to RetrievalForm #1739 (#3112)
Browse files### What problem does this PR solve?
feat: Add DynamicInputVariable to RetrievalForm #1739
### Type of change
- [x] New Feature (non-breaking change which adds functionality)
- web/src/locales/en.ts +5 -1
- web/src/locales/zh-traditional.ts +5 -1
- web/src/locales/zh.ts +5 -1
- web/src/pages/flow/constant.tsx +29 -2
- web/src/pages/flow/form/akshare-form/index.tsx +4 -3
- web/src/pages/flow/form/arxiv-form/index.tsx +5 -3
- web/src/pages/flow/form/baidu-fanyi-form/index.tsx +4 -3
- web/src/pages/flow/form/baidu-form/index.tsx +4 -3
- web/src/pages/flow/form/bing-form/index.tsx +4 -3
- web/src/pages/flow/form/categorize-form/dynamic-categorize.tsx +3 -2
- web/src/pages/flow/form/categorize-form/index.tsx +2 -0
- web/src/pages/flow/form/components/dynamic-input-variable.tsx +116 -0
- web/src/pages/flow/form/components/index.less +22 -0
- web/src/pages/flow/form/crawler-form/index.tsx +4 -3
- web/src/pages/flow/form/deepl-form/index.tsx +4 -3
- web/src/pages/flow/form/duckduckgo-form/index.tsx +4 -3
- web/src/pages/flow/form/exesql-form/index.tsx +4 -3
- web/src/pages/flow/form/github-form/index.tsx +4 -3
- web/src/pages/flow/form/google-form/index.tsx +4 -3
- web/src/pages/flow/form/google-scholar-form/index.tsx +4 -3
- web/src/pages/flow/form/jin10-form/index.tsx +4 -3
- web/src/pages/flow/form/keyword-extract-form/index.tsx +4 -3
- web/src/pages/flow/form/pubmed-form/index.tsx +4 -3
- web/src/pages/flow/form/qweather-form/index.tsx +4 -3
- web/src/pages/flow/form/retrieval-form/index.tsx +3 -1
- web/src/pages/flow/form/tushare-form/index.tsx +4 -3
- web/src/pages/flow/form/wencai-form/index.tsx +4 -3
- web/src/pages/flow/form/wikipedia-form/index.tsx +4 -3
- web/src/pages/flow/form/yahoo-finance-form/index.tsx +4 -3
web/src/locales/en.ts
CHANGED
@@ -30,6 +30,8 @@ export default {
|
|
30 |
warn: 'Warn',
|
31 |
action: 'Action',
|
32 |
s: 'S',
|
|
|
|
|
33 |
},
|
34 |
login: {
|
35 |
login: 'Sign in',
|
@@ -744,7 +746,7 @@ The above is the content you need to summarize.`,
|
|
744 |
googleDescription:
|
745 |
'This component is used to get search result fromhttps://www.google.com/ . Typically, it performs as a supplement to knowledgebases. Top N and SerpApi API key specifies the number of search results you need to adapt.',
|
746 |
bing: 'Bing',
|
747 |
-
|
748 |
'This component is used to get search result from https://www.bing.com/. Typically, it performs as a supplement to knowledgebases. Top N and Bing Subscription-Key specifies the number of search results you need to adapt.',
|
749 |
apiKey: 'API KEY',
|
750 |
country: 'Country',
|
@@ -1024,6 +1026,8 @@ The above is the content you need to summarize.`,
|
|
1024 |
timeout: 'Timeout',
|
1025 |
headers: 'Headers',
|
1026 |
cleanHtml: 'Clean html',
|
|
|
|
|
1027 |
},
|
1028 |
footer: {
|
1029 |
profile: 'All rights reserved @ React',
|
|
|
30 |
warn: 'Warn',
|
31 |
action: 'Action',
|
32 |
s: 'S',
|
33 |
+
pleaseSelect: 'Please select',
|
34 |
+
pleaseInput: 'Please input',
|
35 |
},
|
36 |
login: {
|
37 |
login: 'Sign in',
|
|
|
746 |
googleDescription:
|
747 |
'This component is used to get search result fromhttps://www.google.com/ . Typically, it performs as a supplement to knowledgebases. Top N and SerpApi API key specifies the number of search results you need to adapt.',
|
748 |
bing: 'Bing',
|
749 |
+
bingDescription:
|
750 |
'This component is used to get search result from https://www.bing.com/. Typically, it performs as a supplement to knowledgebases. Top N and Bing Subscription-Key specifies the number of search results you need to adapt.',
|
751 |
apiKey: 'API KEY',
|
752 |
country: 'Country',
|
|
|
1026 |
timeout: 'Timeout',
|
1027 |
headers: 'Headers',
|
1028 |
cleanHtml: 'Clean html',
|
1029 |
+
reference: 'Reference',
|
1030 |
+
input: 'Input',
|
1031 |
},
|
1032 |
footer: {
|
1033 |
profile: 'All rights reserved @ React',
|
web/src/locales/zh-traditional.ts
CHANGED
@@ -30,6 +30,8 @@ export default {
|
|
30 |
warn: '提醒',
|
31 |
action: '操作',
|
32 |
s: '秒',
|
|
|
|
|
33 |
},
|
34 |
login: {
|
35 |
login: '登入',
|
@@ -697,7 +699,7 @@ export default {
|
|
697 |
googleDescription:
|
698 |
'此元件用於從https://www.google.com/取得搜尋結果。通常,它作為知識庫的補充。 Top N 和 SerpApi API 金鑰指定您需要調整的搜尋結果數量。',
|
699 |
bing: 'Bing',
|
700 |
-
|
701 |
'此元件用於從 https://www.bing.com/ 取得搜尋結果。通常,它充當知識庫的補充。 Top N 和 Bing Subscription-Key 指定您需要適配的搜尋結果數量。',
|
702 |
apiKey: 'API KEY',
|
703 |
country: '國家',
|
@@ -973,6 +975,8 @@ export default {
|
|
973 |
timeout: '超時',
|
974 |
headers: '請求頭',
|
975 |
cleanHtml: '清除 html',
|
|
|
|
|
976 |
},
|
977 |
footer: {
|
978 |
profile: '“保留所有權利 @ react”',
|
|
|
30 |
warn: '提醒',
|
31 |
action: '操作',
|
32 |
s: '秒',
|
33 |
+
pleaseSelect: '請選擇',
|
34 |
+
pleaseInput: '請輸入',
|
35 |
},
|
36 |
login: {
|
37 |
login: '登入',
|
|
|
699 |
googleDescription:
|
700 |
'此元件用於從https://www.google.com/取得搜尋結果。通常,它作為知識庫的補充。 Top N 和 SerpApi API 金鑰指定您需要調整的搜尋結果數量。',
|
701 |
bing: 'Bing',
|
702 |
+
bingDescription:
|
703 |
'此元件用於從 https://www.bing.com/ 取得搜尋結果。通常,它充當知識庫的補充。 Top N 和 Bing Subscription-Key 指定您需要適配的搜尋結果數量。',
|
704 |
apiKey: 'API KEY',
|
705 |
country: '國家',
|
|
|
975 |
timeout: '超時',
|
976 |
headers: '請求頭',
|
977 |
cleanHtml: '清除 html',
|
978 |
+
reference: '引用',
|
979 |
+
input: '輸入',
|
980 |
},
|
981 |
footer: {
|
982 |
profile: '“保留所有權利 @ react”',
|
web/src/locales/zh.ts
CHANGED
@@ -30,6 +30,8 @@ export default {
|
|
30 |
warn: '提醒',
|
31 |
action: '操作',
|
32 |
s: '秒',
|
|
|
|
|
33 |
},
|
34 |
login: {
|
35 |
login: '登录',
|
@@ -717,7 +719,7 @@ export default {
|
|
717 |
googleDescription:
|
718 |
'此组件用于从https://www.google.com/获取搜索结果。通常,它作为知识库的补充。Top N 和 SerpApi API 密钥指定您需要调整的搜索结果数量。',
|
719 |
bing: 'Bing',
|
720 |
-
|
721 |
'此组件用于从 https://www.bing.com/ 获取搜索结果。通常,它作为知识库的补充。Top N 和 Bing Subscription-Key 指定您需要调整的搜索结果数量。',
|
722 |
apiKey: 'API KEY',
|
723 |
country: '国家',
|
@@ -993,6 +995,8 @@ export default {
|
|
993 |
timeout: '超时',
|
994 |
headers: '请求头',
|
995 |
cleanHtml: '清除 html',
|
|
|
|
|
996 |
},
|
997 |
footer: {
|
998 |
profile: 'All rights reserved @ React',
|
|
|
30 |
warn: '提醒',
|
31 |
action: '操作',
|
32 |
s: '秒',
|
33 |
+
pleaseSelect: '请选择',
|
34 |
+
pleaseInput: '请输入',
|
35 |
},
|
36 |
login: {
|
37 |
login: '登录',
|
|
|
719 |
googleDescription:
|
720 |
'此组件用于从https://www.google.com/获取搜索结果。通常,它作为知识库的补充。Top N 和 SerpApi API 密钥指定您需要调整的搜索结果数量。',
|
721 |
bing: 'Bing',
|
722 |
+
bingDescription:
|
723 |
'此组件用于从 https://www.bing.com/ 获取搜索结果。通常,它作为知识库的补充。Top N 和 Bing Subscription-Key 指定您需要调整的搜索结果数量。',
|
724 |
apiKey: 'API KEY',
|
725 |
country: '国家',
|
|
|
995 |
timeout: '超时',
|
996 |
headers: '请求头',
|
997 |
cleanHtml: '清除 html',
|
998 |
+
reference: '引用',
|
999 |
+
input: '输入',
|
1000 |
},
|
1001 |
footer: {
|
1002 |
profile: 'All rights reserved @ React',
|
web/src/pages/flow/constant.tsx
CHANGED
@@ -343,10 +343,15 @@ export const componentMenuList = [
|
|
343 |
},
|
344 |
];
|
345 |
|
|
|
|
|
|
|
|
|
346 |
export const initialRetrievalValues = {
|
347 |
similarity_threshold: 0.2,
|
348 |
keywords_similarity_weight: 0.3,
|
349 |
top_n: 8,
|
|
|
350 |
};
|
351 |
|
352 |
export const initialBeginValues = {
|
@@ -390,6 +395,7 @@ export const initialCategorizeValues = {
|
|
390 |
...initialLlmBaseValues,
|
391 |
message_history_window_size: 1,
|
392 |
category_description: {},
|
|
|
393 |
};
|
394 |
|
395 |
export const initialMessageValues = {
|
@@ -399,29 +405,35 @@ export const initialMessageValues = {
|
|
399 |
export const initialKeywordExtractValues = {
|
400 |
...initialLlmBaseValues,
|
401 |
top_n: 1,
|
|
|
402 |
};
|
403 |
export const initialDuckValues = {
|
404 |
top_n: 10,
|
405 |
channel: Channel.Text,
|
|
|
406 |
};
|
407 |
|
408 |
export const initialBaiduValues = {
|
409 |
top_n: 10,
|
|
|
410 |
};
|
411 |
|
412 |
export const initialWikipediaValues = {
|
413 |
top_n: 10,
|
414 |
language: 'en',
|
|
|
415 |
};
|
416 |
|
417 |
export const initialPubMedValues = {
|
418 |
top_n: 10,
|
419 |
email: '',
|
|
|
420 |
};
|
421 |
|
422 |
export const initialArXivValues = {
|
423 |
top_n: 10,
|
424 |
sort_by: 'relevance',
|
|
|
425 |
};
|
426 |
|
427 |
export const initialGoogleValues = {
|
@@ -429,6 +441,7 @@ export const initialGoogleValues = {
|
|
429 |
api_key: 'Xxx(get from https://serpapi.com/manage-api-key)',
|
430 |
country: 'cn',
|
431 |
language: 'en',
|
|
|
432 |
};
|
433 |
|
434 |
export const initialBingValues = {
|
@@ -438,12 +451,14 @@ export const initialBingValues = {
|
|
438 |
'"YOUR_ACCESS_KEY"(get from https://www.microsoft.com/en-us/bing/apis/bing-web-search-api)',
|
439 |
country: 'CH',
|
440 |
language: 'en',
|
|
|
441 |
};
|
442 |
|
443 |
export const initialGoogleScholarValues = {
|
444 |
top_n: 5,
|
445 |
sort_by: 'relevance',
|
446 |
patents: true,
|
|
|
447 |
};
|
448 |
|
449 |
export const initialDeepLValues = {
|
@@ -453,12 +468,14 @@ export const initialDeepLValues = {
|
|
453 |
|
454 |
export const initialGithubValues = {
|
455 |
top_n: 5,
|
|
|
456 |
};
|
457 |
|
458 |
export const initialBaiduFanyiValues = {
|
459 |
appid: 'xxx',
|
460 |
secret_key: 'xxx',
|
461 |
trans_type: 'translate',
|
|
|
462 |
};
|
463 |
|
464 |
export const initialQWeatherValues = {
|
@@ -466,6 +483,7 @@ export const initialQWeatherValues = {
|
|
466 |
type: 'weather',
|
467 |
user_type: 'free',
|
468 |
time_period: 'now',
|
|
|
469 |
};
|
470 |
|
471 |
export const initialExeSqlValues = {
|
@@ -477,13 +495,18 @@ export const initialExeSqlValues = {
|
|
477 |
password: '',
|
478 |
loop: 3,
|
479 |
top_n: 30,
|
|
|
480 |
};
|
481 |
|
482 |
export const initialSwitchValues = { conditions: [] };
|
483 |
|
484 |
-
export const initialWenCaiValues = {
|
|
|
|
|
|
|
|
|
485 |
|
486 |
-
export const initialAkShareValues = { top_n: 10 };
|
487 |
|
488 |
export const initialYahooFinanceValues = {
|
489 |
info: true,
|
@@ -492,6 +515,7 @@ export const initialYahooFinanceValues = {
|
|
492 |
balance_sheet: false,
|
493 |
cash_flow_statement: false,
|
494 |
news: true,
|
|
|
495 |
};
|
496 |
|
497 |
export const initialJin10Values = {
|
@@ -500,6 +524,7 @@ export const initialJin10Values = {
|
|
500 |
flash_type: '1',
|
501 |
contain: '',
|
502 |
filter: '',
|
|
|
503 |
};
|
504 |
|
505 |
export const initialConcentratorValues = {};
|
@@ -508,6 +533,7 @@ export const initialTuShareValues = {
|
|
508 |
token: 'xxx',
|
509 |
src: 'eastmoney',
|
510 |
start_date: '2024-01-01 09:00:00',
|
|
|
511 |
};
|
512 |
|
513 |
export const initialNoteValues = {
|
@@ -516,6 +542,7 @@ export const initialNoteValues = {
|
|
516 |
|
517 |
export const initialCrawlerValues = {
|
518 |
extract_type: 'markdown',
|
|
|
519 |
};
|
520 |
|
521 |
export const initialInvokeValues = {
|
|
|
343 |
},
|
344 |
];
|
345 |
|
346 |
+
const initialQueryBaseValues = {
|
347 |
+
query: [],
|
348 |
+
};
|
349 |
+
|
350 |
export const initialRetrievalValues = {
|
351 |
similarity_threshold: 0.2,
|
352 |
keywords_similarity_weight: 0.3,
|
353 |
top_n: 8,
|
354 |
+
...initialQueryBaseValues,
|
355 |
};
|
356 |
|
357 |
export const initialBeginValues = {
|
|
|
395 |
...initialLlmBaseValues,
|
396 |
message_history_window_size: 1,
|
397 |
category_description: {},
|
398 |
+
...initialQueryBaseValues,
|
399 |
};
|
400 |
|
401 |
export const initialMessageValues = {
|
|
|
405 |
export const initialKeywordExtractValues = {
|
406 |
...initialLlmBaseValues,
|
407 |
top_n: 1,
|
408 |
+
...initialQueryBaseValues,
|
409 |
};
|
410 |
export const initialDuckValues = {
|
411 |
top_n: 10,
|
412 |
channel: Channel.Text,
|
413 |
+
...initialQueryBaseValues,
|
414 |
};
|
415 |
|
416 |
export const initialBaiduValues = {
|
417 |
top_n: 10,
|
418 |
+
...initialQueryBaseValues,
|
419 |
};
|
420 |
|
421 |
export const initialWikipediaValues = {
|
422 |
top_n: 10,
|
423 |
language: 'en',
|
424 |
+
...initialQueryBaseValues,
|
425 |
};
|
426 |
|
427 |
export const initialPubMedValues = {
|
428 |
top_n: 10,
|
429 |
email: '',
|
430 |
+
...initialQueryBaseValues,
|
431 |
};
|
432 |
|
433 |
export const initialArXivValues = {
|
434 |
top_n: 10,
|
435 |
sort_by: 'relevance',
|
436 |
+
...initialQueryBaseValues,
|
437 |
};
|
438 |
|
439 |
export const initialGoogleValues = {
|
|
|
441 |
api_key: 'Xxx(get from https://serpapi.com/manage-api-key)',
|
442 |
country: 'cn',
|
443 |
language: 'en',
|
444 |
+
...initialQueryBaseValues,
|
445 |
};
|
446 |
|
447 |
export const initialBingValues = {
|
|
|
451 |
'"YOUR_ACCESS_KEY"(get from https://www.microsoft.com/en-us/bing/apis/bing-web-search-api)',
|
452 |
country: 'CH',
|
453 |
language: 'en',
|
454 |
+
...initialQueryBaseValues,
|
455 |
};
|
456 |
|
457 |
export const initialGoogleScholarValues = {
|
458 |
top_n: 5,
|
459 |
sort_by: 'relevance',
|
460 |
patents: true,
|
461 |
+
...initialQueryBaseValues,
|
462 |
};
|
463 |
|
464 |
export const initialDeepLValues = {
|
|
|
468 |
|
469 |
export const initialGithubValues = {
|
470 |
top_n: 5,
|
471 |
+
...initialQueryBaseValues,
|
472 |
};
|
473 |
|
474 |
export const initialBaiduFanyiValues = {
|
475 |
appid: 'xxx',
|
476 |
secret_key: 'xxx',
|
477 |
trans_type: 'translate',
|
478 |
+
...initialQueryBaseValues,
|
479 |
};
|
480 |
|
481 |
export const initialQWeatherValues = {
|
|
|
483 |
type: 'weather',
|
484 |
user_type: 'free',
|
485 |
time_period: 'now',
|
486 |
+
...initialQueryBaseValues,
|
487 |
};
|
488 |
|
489 |
export const initialExeSqlValues = {
|
|
|
495 |
password: '',
|
496 |
loop: 3,
|
497 |
top_n: 30,
|
498 |
+
...initialQueryBaseValues,
|
499 |
};
|
500 |
|
501 |
export const initialSwitchValues = { conditions: [] };
|
502 |
|
503 |
+
export const initialWenCaiValues = {
|
504 |
+
top_n: 20,
|
505 |
+
query_type: 'stock',
|
506 |
+
...initialQueryBaseValues,
|
507 |
+
};
|
508 |
|
509 |
+
export const initialAkShareValues = { top_n: 10, ...initialQueryBaseValues };
|
510 |
|
511 |
export const initialYahooFinanceValues = {
|
512 |
info: true,
|
|
|
515 |
balance_sheet: false,
|
516 |
cash_flow_statement: false,
|
517 |
news: true,
|
518 |
+
...initialQueryBaseValues,
|
519 |
};
|
520 |
|
521 |
export const initialJin10Values = {
|
|
|
524 |
flash_type: '1',
|
525 |
contain: '',
|
526 |
filter: '',
|
527 |
+
...initialQueryBaseValues,
|
528 |
};
|
529 |
|
530 |
export const initialConcentratorValues = {};
|
|
|
533 |
token: 'xxx',
|
534 |
src: 'eastmoney',
|
535 |
start_date: '2024-01-01 09:00:00',
|
536 |
+
...initialQueryBaseValues,
|
537 |
};
|
538 |
|
539 |
export const initialNoteValues = {
|
|
|
542 |
|
543 |
export const initialCrawlerValues = {
|
544 |
extract_type: 'markdown',
|
545 |
+
...initialQueryBaseValues,
|
546 |
};
|
547 |
|
548 |
export const initialInvokeValues = {
|
web/src/pages/flow/form/akshare-form/index.tsx
CHANGED
@@ -1,17 +1,18 @@
|
|
1 |
import TopNItem from '@/components/top-n-item';
|
2 |
import { Form } from 'antd';
|
3 |
import { IOperatorForm } from '../../interface';
|
|
|
4 |
|
5 |
-
const AkShareForm = ({ onValuesChange, form }: IOperatorForm) => {
|
6 |
return (
|
7 |
<Form
|
8 |
name="basic"
|
9 |
-
labelCol={{ span: 6 }}
|
10 |
-
wrapperCol={{ span: 18 }}
|
11 |
autoComplete="off"
|
12 |
form={form}
|
13 |
onValuesChange={onValuesChange}
|
|
|
14 |
>
|
|
|
15 |
<TopNItem initialValue={10} max={99}></TopNItem>
|
16 |
</Form>
|
17 |
);
|
|
|
1 |
import TopNItem from '@/components/top-n-item';
|
2 |
import { Form } from 'antd';
|
3 |
import { IOperatorForm } from '../../interface';
|
4 |
+
import DynamicInputVariable from '../components/dynamic-input-variable';
|
5 |
|
6 |
+
const AkShareForm = ({ onValuesChange, form, node }: IOperatorForm) => {
|
7 |
return (
|
8 |
<Form
|
9 |
name="basic"
|
|
|
|
|
10 |
autoComplete="off"
|
11 |
form={form}
|
12 |
onValuesChange={onValuesChange}
|
13 |
+
layout={'vertical'}
|
14 |
>
|
15 |
+
<DynamicInputVariable nodeId={node?.id}></DynamicInputVariable>
|
16 |
<TopNItem initialValue={10} max={99}></TopNItem>
|
17 |
</Form>
|
18 |
);
|
web/src/pages/flow/form/arxiv-form/index.tsx
CHANGED
@@ -3,8 +3,9 @@ import { useTranslate } from '@/hooks/common-hooks';
|
|
3 |
import { Form, Select } from 'antd';
|
4 |
import { useMemo } from 'react';
|
5 |
import { IOperatorForm } from '../../interface';
|
|
|
6 |
|
7 |
-
const ArXivForm = ({ onValuesChange, form }: IOperatorForm) => {
|
8 |
const { t } = useTranslate('flow');
|
9 |
|
10 |
const options = useMemo(() => {
|
@@ -17,12 +18,13 @@ const ArXivForm = ({ onValuesChange, form }: IOperatorForm) => {
|
|
17 |
return (
|
18 |
<Form
|
19 |
name="basic"
|
20 |
-
labelCol={{ span: 6 }}
|
21 |
-
wrapperCol={{ span: 18 }}
|
22 |
autoComplete="off"
|
23 |
form={form}
|
24 |
onValuesChange={onValuesChange}
|
|
|
25 |
>
|
|
|
|
|
26 |
<TopNItem initialValue={10}></TopNItem>
|
27 |
<Form.Item label={t('sortBy')} name={'sort_by'}>
|
28 |
<Select options={options}></Select>
|
|
|
3 |
import { Form, Select } from 'antd';
|
4 |
import { useMemo } from 'react';
|
5 |
import { IOperatorForm } from '../../interface';
|
6 |
+
import DynamicInputVariable from '../components/dynamic-input-variable';
|
7 |
|
8 |
+
const ArXivForm = ({ onValuesChange, form, node }: IOperatorForm) => {
|
9 |
const { t } = useTranslate('flow');
|
10 |
|
11 |
const options = useMemo(() => {
|
|
|
18 |
return (
|
19 |
<Form
|
20 |
name="basic"
|
|
|
|
|
21 |
autoComplete="off"
|
22 |
form={form}
|
23 |
onValuesChange={onValuesChange}
|
24 |
+
layout={'vertical'}
|
25 |
>
|
26 |
+
<DynamicInputVariable nodeId={node?.id}></DynamicInputVariable>
|
27 |
+
|
28 |
<TopNItem initialValue={10}></TopNItem>
|
29 |
<Form.Item label={t('sortBy')} name={'sort_by'}>
|
30 |
<Select options={options}></Select>
|
web/src/pages/flow/form/baidu-fanyi-form/index.tsx
CHANGED
@@ -6,8 +6,9 @@ import {
|
|
6 |
BaiduFanyiSourceLangOptions,
|
7 |
} from '../../constant';
|
8 |
import { IOperatorForm } from '../../interface';
|
|
|
9 |
|
10 |
-
const BaiduFanyiForm = ({ onValuesChange, form }: IOperatorForm) => {
|
11 |
const { t } = useTranslate('flow');
|
12 |
const options = useMemo(() => {
|
13 |
return ['translate', 'fieldtranslate'].map((x) => ({
|
@@ -33,12 +34,12 @@ const BaiduFanyiForm = ({ onValuesChange, form }: IOperatorForm) => {
|
|
33 |
return (
|
34 |
<Form
|
35 |
name="basic"
|
36 |
-
labelCol={{ span: 8 }}
|
37 |
-
wrapperCol={{ span: 16 }}
|
38 |
autoComplete="off"
|
39 |
form={form}
|
40 |
onValuesChange={onValuesChange}
|
|
|
41 |
>
|
|
|
42 |
<Form.Item label={t('appid')} name={'appid'}>
|
43 |
<Input></Input>
|
44 |
</Form.Item>
|
|
|
6 |
BaiduFanyiSourceLangOptions,
|
7 |
} from '../../constant';
|
8 |
import { IOperatorForm } from '../../interface';
|
9 |
+
import DynamicInputVariable from '../components/dynamic-input-variable';
|
10 |
|
11 |
+
const BaiduFanyiForm = ({ onValuesChange, form, node }: IOperatorForm) => {
|
12 |
const { t } = useTranslate('flow');
|
13 |
const options = useMemo(() => {
|
14 |
return ['translate', 'fieldtranslate'].map((x) => ({
|
|
|
34 |
return (
|
35 |
<Form
|
36 |
name="basic"
|
|
|
|
|
37 |
autoComplete="off"
|
38 |
form={form}
|
39 |
onValuesChange={onValuesChange}
|
40 |
+
layout={'vertical'}
|
41 |
>
|
42 |
+
<DynamicInputVariable nodeId={node?.id}></DynamicInputVariable>
|
43 |
<Form.Item label={t('appid')} name={'appid'}>
|
44 |
<Input></Input>
|
45 |
</Form.Item>
|
web/src/pages/flow/form/baidu-form/index.tsx
CHANGED
@@ -1,17 +1,18 @@
|
|
1 |
import TopNItem from '@/components/top-n-item';
|
2 |
import { Form } from 'antd';
|
3 |
import { IOperatorForm } from '../../interface';
|
|
|
4 |
|
5 |
-
const BaiduForm = ({ onValuesChange, form }: IOperatorForm) => {
|
6 |
return (
|
7 |
<Form
|
8 |
name="basic"
|
9 |
-
labelCol={{ span: 6 }}
|
10 |
-
wrapperCol={{ span: 18 }}
|
11 |
autoComplete="off"
|
12 |
form={form}
|
13 |
onValuesChange={onValuesChange}
|
|
|
14 |
>
|
|
|
15 |
<TopNItem initialValue={10}></TopNItem>
|
16 |
</Form>
|
17 |
);
|
|
|
1 |
import TopNItem from '@/components/top-n-item';
|
2 |
import { Form } from 'antd';
|
3 |
import { IOperatorForm } from '../../interface';
|
4 |
+
import DynamicInputVariable from '../components/dynamic-input-variable';
|
5 |
|
6 |
+
const BaiduForm = ({ onValuesChange, form, node }: IOperatorForm) => {
|
7 |
return (
|
8 |
<Form
|
9 |
name="basic"
|
|
|
|
|
10 |
autoComplete="off"
|
11 |
form={form}
|
12 |
onValuesChange={onValuesChange}
|
13 |
+
layout={'vertical'}
|
14 |
>
|
15 |
+
<DynamicInputVariable nodeId={node?.id}></DynamicInputVariable>
|
16 |
<TopNItem initialValue={10}></TopNItem>
|
17 |
</Form>
|
18 |
);
|
web/src/pages/flow/form/bing-form/index.tsx
CHANGED
@@ -4,8 +4,9 @@ import { Form, Input, Select } from 'antd';
|
|
4 |
import { useMemo } from 'react';
|
5 |
import { BingCountryOptions, BingLanguageOptions } from '../../constant';
|
6 |
import { IOperatorForm } from '../../interface';
|
|
|
7 |
|
8 |
-
const BingForm = ({ onValuesChange, form }: IOperatorForm) => {
|
9 |
const { t } = useTranslate('flow');
|
10 |
|
11 |
const options = useMemo(() => {
|
@@ -15,12 +16,12 @@ const BingForm = ({ onValuesChange, form }: IOperatorForm) => {
|
|
15 |
return (
|
16 |
<Form
|
17 |
name="basic"
|
18 |
-
labelCol={{ span: 6 }}
|
19 |
-
wrapperCol={{ span: 18 }}
|
20 |
autoComplete="off"
|
21 |
form={form}
|
22 |
onValuesChange={onValuesChange}
|
|
|
23 |
>
|
|
|
24 |
<TopNItem initialValue={10}></TopNItem>
|
25 |
<Form.Item label={t('channel')} name={'channel'}>
|
26 |
<Select options={options}></Select>
|
|
|
4 |
import { useMemo } from 'react';
|
5 |
import { BingCountryOptions, BingLanguageOptions } from '../../constant';
|
6 |
import { IOperatorForm } from '../../interface';
|
7 |
+
import DynamicInputVariable from '../components/dynamic-input-variable';
|
8 |
|
9 |
+
const BingForm = ({ onValuesChange, form, node }: IOperatorForm) => {
|
10 |
const { t } = useTranslate('flow');
|
11 |
|
12 |
const options = useMemo(() => {
|
|
|
16 |
return (
|
17 |
<Form
|
18 |
name="basic"
|
|
|
|
|
19 |
autoComplete="off"
|
20 |
form={form}
|
21 |
onValuesChange={onValuesChange}
|
22 |
+
layout={'vertical'}
|
23 |
>
|
24 |
+
<DynamicInputVariable nodeId={node?.id}></DynamicInputVariable>
|
25 |
<TopNItem initialValue={10}></TopNItem>
|
26 |
<Form.Item label={t('channel')} name={'channel'}>
|
27 |
<Select options={options}></Select>
|
web/src/pages/flow/form/categorize-form/dynamic-categorize.tsx
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
import { useTranslate } from '@/hooks/common-hooks';
|
2 |
-
import { CloseOutlined } from '@ant-design/icons';
|
3 |
import {
|
4 |
Button,
|
5 |
Card,
|
@@ -197,8 +197,9 @@ const DynamicCategorize = ({ nodeId }: IProps) => {
|
|
197 |
onClick={handleAdd}
|
198 |
block
|
199 |
className={styles.addButton}
|
|
|
200 |
>
|
201 |
-
|
202 |
</Button>
|
203 |
</Flex>
|
204 |
);
|
|
|
1 |
import { useTranslate } from '@/hooks/common-hooks';
|
2 |
+
import { CloseOutlined, PlusOutlined } from '@ant-design/icons';
|
3 |
import {
|
4 |
Button,
|
5 |
Card,
|
|
|
197 |
onClick={handleAdd}
|
198 |
block
|
199 |
className={styles.addButton}
|
200 |
+
icon={<PlusOutlined />}
|
201 |
>
|
202 |
+
{t('addItem')}
|
203 |
</Button>
|
204 |
</Flex>
|
205 |
);
|
web/src/pages/flow/form/categorize-form/index.tsx
CHANGED
@@ -4,6 +4,7 @@ import { useTranslate } from '@/hooks/common-hooks';
|
|
4 |
import { Form } from 'antd';
|
5 |
import { useSetLlmSetting } from '../../hooks';
|
6 |
import { IOperatorForm } from '../../interface';
|
|
|
7 |
import DynamicCategorize from './dynamic-categorize';
|
8 |
import { useHandleFormValuesChange } from './hooks';
|
9 |
|
@@ -25,6 +26,7 @@ const CategorizeForm = ({ form, onValuesChange, node }: IOperatorForm) => {
|
|
25 |
initialValues={{ items: [{}] }}
|
26 |
layout={'vertical'}
|
27 |
>
|
|
|
28 |
<Form.Item
|
29 |
name={'llm_id'}
|
30 |
label={t('model', { keyPrefix: 'chat' })}
|
|
|
4 |
import { Form } from 'antd';
|
5 |
import { useSetLlmSetting } from '../../hooks';
|
6 |
import { IOperatorForm } from '../../interface';
|
7 |
+
import DynamicInputVariable from '../components/dynamic-input-variable';
|
8 |
import DynamicCategorize from './dynamic-categorize';
|
9 |
import { useHandleFormValuesChange } from './hooks';
|
10 |
|
|
|
26 |
initialValues={{ items: [{}] }}
|
27 |
layout={'vertical'}
|
28 |
>
|
29 |
+
<DynamicInputVariable nodeId={node?.id}></DynamicInputVariable>
|
30 |
<Form.Item
|
31 |
name={'llm_id'}
|
32 |
label={t('model', { keyPrefix: 'chat' })}
|
web/src/pages/flow/form/components/dynamic-input-variable.tsx
ADDED
@@ -0,0 +1,116 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import { MinusCircleOutlined, PlusOutlined } from '@ant-design/icons';
|
2 |
+
import { Button, Collapse, Flex, Form, Input, Select } from 'antd';
|
3 |
+
|
4 |
+
import { useCallback } from 'react';
|
5 |
+
import { useTranslation } from 'react-i18next';
|
6 |
+
import { useBuildComponentIdSelectOptions } from '../../hooks';
|
7 |
+
import styles from './index.less';
|
8 |
+
|
9 |
+
interface IProps {
|
10 |
+
nodeId?: string;
|
11 |
+
}
|
12 |
+
|
13 |
+
enum VariableType {
|
14 |
+
Reference = 'reference',
|
15 |
+
Input = 'input',
|
16 |
+
}
|
17 |
+
|
18 |
+
const getVariableName = (type: string) =>
|
19 |
+
type === VariableType.Reference ? 'component_id' : 'value';
|
20 |
+
|
21 |
+
const DynamicVariableForm = ({ nodeId }: IProps) => {
|
22 |
+
const { t } = useTranslation();
|
23 |
+
const valueOptions = useBuildComponentIdSelectOptions(nodeId);
|
24 |
+
const form = Form.useFormInstance();
|
25 |
+
|
26 |
+
const options = [
|
27 |
+
{ value: VariableType.Reference, label: t('flow.reference') },
|
28 |
+
{ value: VariableType.Input, label: t('flow.input') },
|
29 |
+
];
|
30 |
+
|
31 |
+
const handleTypeChange = useCallback(
|
32 |
+
(name: number) => () => {
|
33 |
+
setTimeout(() => {
|
34 |
+
form.setFieldValue(['query', name, 'component_id'], undefined);
|
35 |
+
form.setFieldValue(['query', name, 'value'], undefined);
|
36 |
+
}, 0);
|
37 |
+
},
|
38 |
+
[form],
|
39 |
+
);
|
40 |
+
|
41 |
+
return (
|
42 |
+
<Form.List name="query">
|
43 |
+
{(fields, { add, remove }) => (
|
44 |
+
<>
|
45 |
+
{fields.map(({ key, name, ...restField }) => (
|
46 |
+
<Flex key={key} gap={10} align={'baseline'}>
|
47 |
+
<Form.Item
|
48 |
+
{...restField}
|
49 |
+
name={[name, 'type']}
|
50 |
+
className={styles.variableType}
|
51 |
+
>
|
52 |
+
<Select
|
53 |
+
options={options}
|
54 |
+
onChange={handleTypeChange(name)}
|
55 |
+
></Select>
|
56 |
+
</Form.Item>
|
57 |
+
<Form.Item noStyle dependencies={[name, 'type']}>
|
58 |
+
{({ getFieldValue }) => {
|
59 |
+
const type = getFieldValue(['query', name, 'type']);
|
60 |
+
return (
|
61 |
+
<Form.Item
|
62 |
+
{...restField}
|
63 |
+
name={[name, getVariableName(type)]}
|
64 |
+
className={styles.variableValue}
|
65 |
+
>
|
66 |
+
{type === VariableType.Reference ? (
|
67 |
+
<Select
|
68 |
+
placeholder={t('common.pleaseSelect')}
|
69 |
+
options={valueOptions}
|
70 |
+
></Select>
|
71 |
+
) : (
|
72 |
+
<Input placeholder={t('common.pleaseInput')} />
|
73 |
+
)}
|
74 |
+
</Form.Item>
|
75 |
+
);
|
76 |
+
}}
|
77 |
+
</Form.Item>
|
78 |
+
<MinusCircleOutlined onClick={() => remove(name)} />
|
79 |
+
</Flex>
|
80 |
+
))}
|
81 |
+
<Form.Item>
|
82 |
+
<Button
|
83 |
+
type="dashed"
|
84 |
+
onClick={() => add({ type: VariableType.Reference })}
|
85 |
+
block
|
86 |
+
icon={<PlusOutlined />}
|
87 |
+
className={styles.addButton}
|
88 |
+
>
|
89 |
+
{t('flow.addItem')}
|
90 |
+
</Button>
|
91 |
+
</Form.Item>
|
92 |
+
</>
|
93 |
+
)}
|
94 |
+
</Form.List>
|
95 |
+
);
|
96 |
+
};
|
97 |
+
|
98 |
+
const DynamicInputVariable = ({ nodeId }: IProps) => {
|
99 |
+
const { t } = useTranslation();
|
100 |
+
|
101 |
+
return (
|
102 |
+
<Collapse
|
103 |
+
className={styles.dynamicInputVariable}
|
104 |
+
defaultActiveKey={['1']}
|
105 |
+
items={[
|
106 |
+
{
|
107 |
+
key: '1',
|
108 |
+
label: <span className={styles.title}>{t('flow.input')}</span>,
|
109 |
+
children: <DynamicVariableForm nodeId={nodeId}></DynamicVariableForm>,
|
110 |
+
},
|
111 |
+
]}
|
112 |
+
/>
|
113 |
+
);
|
114 |
+
};
|
115 |
+
|
116 |
+
export default DynamicInputVariable;
|
web/src/pages/flow/form/components/index.less
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.dynamicInputVariable {
|
2 |
+
background-color: #ebe9e9;
|
3 |
+
:global(.ant-collapse-content) {
|
4 |
+
background-color: #f6f6f6;
|
5 |
+
}
|
6 |
+
margin-bottom: 20px;
|
7 |
+
.title {
|
8 |
+
font-weight: 600;
|
9 |
+
font-size: 16px;
|
10 |
+
}
|
11 |
+
.variableType {
|
12 |
+
width: 30%;
|
13 |
+
}
|
14 |
+
.variableValue {
|
15 |
+
flex: 1;
|
16 |
+
}
|
17 |
+
|
18 |
+
.addButton {
|
19 |
+
color: rgb(22, 119, 255);
|
20 |
+
font-weight: 600;
|
21 |
+
}
|
22 |
+
}
|
web/src/pages/flow/form/crawler-form/index.tsx
CHANGED
@@ -3,7 +3,8 @@ import { Form, Input, Select } from 'antd';
|
|
3 |
import { useMemo } from 'react';
|
4 |
import { CrawlerResultOptions } from '../../constant';
|
5 |
import { IOperatorForm } from '../../interface';
|
6 |
-
|
|
|
7 |
const { t } = useTranslate('flow');
|
8 |
const crawlerResultOptions = useMemo(() => {
|
9 |
return CrawlerResultOptions.map((x) => ({
|
@@ -14,12 +15,12 @@ const CrawlerForm = ({ onValuesChange, form }: IOperatorForm) => {
|
|
14 |
return (
|
15 |
<Form
|
16 |
name="basic"
|
17 |
-
labelCol={{ span: 6 }}
|
18 |
-
wrapperCol={{ span: 18 }}
|
19 |
autoComplete="off"
|
20 |
form={form}
|
21 |
onValuesChange={onValuesChange}
|
|
|
22 |
>
|
|
|
23 |
<Form.Item label={t('proxy')} name={'proxy'}>
|
24 |
<Input placeholder="like: http://127.0.0.1:8888"></Input>
|
25 |
</Form.Item>
|
|
|
3 |
import { useMemo } from 'react';
|
4 |
import { CrawlerResultOptions } from '../../constant';
|
5 |
import { IOperatorForm } from '../../interface';
|
6 |
+
import DynamicInputVariable from '../components/dynamic-input-variable';
|
7 |
+
const CrawlerForm = ({ onValuesChange, form, node }: IOperatorForm) => {
|
8 |
const { t } = useTranslate('flow');
|
9 |
const crawlerResultOptions = useMemo(() => {
|
10 |
return CrawlerResultOptions.map((x) => ({
|
|
|
15 |
return (
|
16 |
<Form
|
17 |
name="basic"
|
|
|
|
|
18 |
autoComplete="off"
|
19 |
form={form}
|
20 |
onValuesChange={onValuesChange}
|
21 |
+
layout={'vertical'}
|
22 |
>
|
23 |
+
<DynamicInputVariable nodeId={node?.id}></DynamicInputVariable>
|
24 |
<Form.Item label={t('proxy')} name={'proxy'}>
|
25 |
<Input placeholder="like: http://127.0.0.1:8888"></Input>
|
26 |
</Form.Item>
|
web/src/pages/flow/form/deepl-form/index.tsx
CHANGED
@@ -4,20 +4,21 @@ import { Form, Select } from 'antd';
|
|
4 |
import { DeepLSourceLangOptions, DeepLTargetLangOptions } from '../../constant';
|
5 |
import { useBuildSortOptions } from '../../form-hooks';
|
6 |
import { IOperatorForm } from '../../interface';
|
|
|
7 |
|
8 |
-
const DeepLForm = ({ onValuesChange, form }: IOperatorForm) => {
|
9 |
const { t } = useTranslate('flow');
|
10 |
const options = useBuildSortOptions();
|
11 |
|
12 |
return (
|
13 |
<Form
|
14 |
name="basic"
|
15 |
-
labelCol={{ span: 8 }}
|
16 |
-
wrapperCol={{ span: 16 }}
|
17 |
autoComplete="off"
|
18 |
form={form}
|
19 |
onValuesChange={onValuesChange}
|
|
|
20 |
>
|
|
|
21 |
<TopNItem initialValue={5}></TopNItem>
|
22 |
<Form.Item label={t('authKey')} name={'auth_key'}>
|
23 |
<Select options={options}></Select>
|
|
|
4 |
import { DeepLSourceLangOptions, DeepLTargetLangOptions } from '../../constant';
|
5 |
import { useBuildSortOptions } from '../../form-hooks';
|
6 |
import { IOperatorForm } from '../../interface';
|
7 |
+
import DynamicInputVariable from '../components/dynamic-input-variable';
|
8 |
|
9 |
+
const DeepLForm = ({ onValuesChange, form, node }: IOperatorForm) => {
|
10 |
const { t } = useTranslate('flow');
|
11 |
const options = useBuildSortOptions();
|
12 |
|
13 |
return (
|
14 |
<Form
|
15 |
name="basic"
|
|
|
|
|
16 |
autoComplete="off"
|
17 |
form={form}
|
18 |
onValuesChange={onValuesChange}
|
19 |
+
layout={'vertical'}
|
20 |
>
|
21 |
+
<DynamicInputVariable nodeId={node?.id}></DynamicInputVariable>
|
22 |
<TopNItem initialValue={5}></TopNItem>
|
23 |
<Form.Item label={t('authKey')} name={'auth_key'}>
|
24 |
<Select options={options}></Select>
|
web/src/pages/flow/form/duckduckgo-form/index.tsx
CHANGED
@@ -4,8 +4,9 @@ import { Form, Select } from 'antd';
|
|
4 |
import { useMemo } from 'react';
|
5 |
import { Channel } from '../../constant';
|
6 |
import { IOperatorForm } from '../../interface';
|
|
|
7 |
|
8 |
-
const DuckDuckGoForm = ({ onValuesChange, form }: IOperatorForm) => {
|
9 |
const { t } = useTranslate('flow');
|
10 |
|
11 |
const options = useMemo(() => {
|
@@ -15,12 +16,12 @@ const DuckDuckGoForm = ({ onValuesChange, form }: IOperatorForm) => {
|
|
15 |
return (
|
16 |
<Form
|
17 |
name="basic"
|
18 |
-
labelCol={{ span: 6 }}
|
19 |
-
wrapperCol={{ span: 18 }}
|
20 |
autoComplete="off"
|
21 |
form={form}
|
22 |
onValuesChange={onValuesChange}
|
|
|
23 |
>
|
|
|
24 |
<TopNItem initialValue={10}></TopNItem>
|
25 |
<Form.Item
|
26 |
label={t('channel')}
|
|
|
4 |
import { useMemo } from 'react';
|
5 |
import { Channel } from '../../constant';
|
6 |
import { IOperatorForm } from '../../interface';
|
7 |
+
import DynamicInputVariable from '../components/dynamic-input-variable';
|
8 |
|
9 |
+
const DuckDuckGoForm = ({ onValuesChange, form, node }: IOperatorForm) => {
|
10 |
const { t } = useTranslate('flow');
|
11 |
|
12 |
const options = useMemo(() => {
|
|
|
16 |
return (
|
17 |
<Form
|
18 |
name="basic"
|
|
|
|
|
19 |
autoComplete="off"
|
20 |
form={form}
|
21 |
onValuesChange={onValuesChange}
|
22 |
+
layout={'vertical'}
|
23 |
>
|
24 |
+
<DynamicInputVariable nodeId={node?.id}></DynamicInputVariable>
|
25 |
<TopNItem initialValue={10}></TopNItem>
|
26 |
<Form.Item
|
27 |
label={t('channel')}
|
web/src/pages/flow/form/exesql-form/index.tsx
CHANGED
@@ -5,8 +5,9 @@ import { Button, Flex, Form, Input, InputNumber, Select } from 'antd';
|
|
5 |
import { useCallback } from 'react';
|
6 |
import { ExeSQLOptions } from '../../constant';
|
7 |
import { IOperatorForm } from '../../interface';
|
|
|
8 |
|
9 |
-
const ExeSQLForm = ({ onValuesChange, form }: IOperatorForm) => {
|
10 |
const { t } = useTranslate('flow');
|
11 |
const { testDbConnect, loading } = useTestDbConnect();
|
12 |
|
@@ -18,12 +19,12 @@ const ExeSQLForm = ({ onValuesChange, form }: IOperatorForm) => {
|
|
18 |
return (
|
19 |
<Form
|
20 |
name="basic"
|
21 |
-
labelCol={{ span: 7 }}
|
22 |
-
wrapperCol={{ span: 17 }}
|
23 |
autoComplete="off"
|
24 |
form={form}
|
25 |
onValuesChange={onValuesChange}
|
|
|
26 |
>
|
|
|
27 |
<Form.Item
|
28 |
label={t('dbType')}
|
29 |
name={'db_type'}
|
|
|
5 |
import { useCallback } from 'react';
|
6 |
import { ExeSQLOptions } from '../../constant';
|
7 |
import { IOperatorForm } from '../../interface';
|
8 |
+
import DynamicInputVariable from '../components/dynamic-input-variable';
|
9 |
|
10 |
+
const ExeSQLForm = ({ onValuesChange, form, node }: IOperatorForm) => {
|
11 |
const { t } = useTranslate('flow');
|
12 |
const { testDbConnect, loading } = useTestDbConnect();
|
13 |
|
|
|
19 |
return (
|
20 |
<Form
|
21 |
name="basic"
|
|
|
|
|
22 |
autoComplete="off"
|
23 |
form={form}
|
24 |
onValuesChange={onValuesChange}
|
25 |
+
layout={'vertical'}
|
26 |
>
|
27 |
+
<DynamicInputVariable nodeId={node?.id}></DynamicInputVariable>
|
28 |
<Form.Item
|
29 |
label={t('dbType')}
|
30 |
name={'db_type'}
|
web/src/pages/flow/form/github-form/index.tsx
CHANGED
@@ -1,17 +1,18 @@
|
|
1 |
import TopNItem from '@/components/top-n-item';
|
2 |
import { Form } from 'antd';
|
3 |
import { IOperatorForm } from '../../interface';
|
|
|
4 |
|
5 |
-
const GithubForm = ({ onValuesChange, form }: IOperatorForm) => {
|
6 |
return (
|
7 |
<Form
|
8 |
name="basic"
|
9 |
-
labelCol={{ span: 6 }}
|
10 |
-
wrapperCol={{ span: 18 }}
|
11 |
autoComplete="off"
|
12 |
form={form}
|
13 |
onValuesChange={onValuesChange}
|
|
|
14 |
>
|
|
|
15 |
<TopNItem initialValue={5}></TopNItem>
|
16 |
</Form>
|
17 |
);
|
|
|
1 |
import TopNItem from '@/components/top-n-item';
|
2 |
import { Form } from 'antd';
|
3 |
import { IOperatorForm } from '../../interface';
|
4 |
+
import DynamicInputVariable from '../components/dynamic-input-variable';
|
5 |
|
6 |
+
const GithubForm = ({ onValuesChange, form, node }: IOperatorForm) => {
|
7 |
return (
|
8 |
<Form
|
9 |
name="basic"
|
|
|
|
|
10 |
autoComplete="off"
|
11 |
form={form}
|
12 |
onValuesChange={onValuesChange}
|
13 |
+
layout={'vertical'}
|
14 |
>
|
15 |
+
<DynamicInputVariable nodeId={node?.id}></DynamicInputVariable>
|
16 |
<TopNItem initialValue={5}></TopNItem>
|
17 |
</Form>
|
18 |
);
|
web/src/pages/flow/form/google-form/index.tsx
CHANGED
@@ -3,19 +3,20 @@ import { useTranslate } from '@/hooks/common-hooks';
|
|
3 |
import { Form, Input, Select } from 'antd';
|
4 |
import { GoogleCountryOptions, GoogleLanguageOptions } from '../../constant';
|
5 |
import { IOperatorForm } from '../../interface';
|
|
|
6 |
|
7 |
-
const GoogleForm = ({ onValuesChange, form }: IOperatorForm) => {
|
8 |
const { t } = useTranslate('flow');
|
9 |
|
10 |
return (
|
11 |
<Form
|
12 |
name="basic"
|
13 |
-
labelCol={{ span: 6 }}
|
14 |
-
wrapperCol={{ span: 18 }}
|
15 |
autoComplete="off"
|
16 |
form={form}
|
17 |
onValuesChange={onValuesChange}
|
|
|
18 |
>
|
|
|
19 |
<TopNItem initialValue={10}></TopNItem>
|
20 |
<Form.Item label={t('apiKey')} name={'api_key'}>
|
21 |
<Input></Input>
|
|
|
3 |
import { Form, Input, Select } from 'antd';
|
4 |
import { GoogleCountryOptions, GoogleLanguageOptions } from '../../constant';
|
5 |
import { IOperatorForm } from '../../interface';
|
6 |
+
import DynamicInputVariable from '../components/dynamic-input-variable';
|
7 |
|
8 |
+
const GoogleForm = ({ onValuesChange, form, node }: IOperatorForm) => {
|
9 |
const { t } = useTranslate('flow');
|
10 |
|
11 |
return (
|
12 |
<Form
|
13 |
name="basic"
|
|
|
|
|
14 |
autoComplete="off"
|
15 |
form={form}
|
16 |
onValuesChange={onValuesChange}
|
17 |
+
layout={'vertical'}
|
18 |
>
|
19 |
+
<DynamicInputVariable nodeId={node?.id}></DynamicInputVariable>
|
20 |
<TopNItem initialValue={10}></TopNItem>
|
21 |
<Form.Item label={t('apiKey')} name={'api_key'}>
|
22 |
<Input></Input>
|
web/src/pages/flow/form/google-scholar-form/index.tsx
CHANGED
@@ -5,6 +5,7 @@ import dayjs from 'dayjs';
|
|
5 |
import { useCallback, useMemo } from 'react';
|
6 |
import { useBuildSortOptions } from '../../form-hooks';
|
7 |
import { IOperatorForm } from '../../interface';
|
|
|
8 |
|
9 |
const YearPicker = ({
|
10 |
onChange,
|
@@ -31,7 +32,7 @@ const YearPicker = ({
|
|
31 |
return <DatePicker picker="year" onChange={handleChange} value={nextValue} />;
|
32 |
};
|
33 |
|
34 |
-
const GoogleScholarForm = ({ onValuesChange, form }: IOperatorForm) => {
|
35 |
const { t } = useTranslate('flow');
|
36 |
|
37 |
const options = useBuildSortOptions();
|
@@ -39,12 +40,12 @@ const GoogleScholarForm = ({ onValuesChange, form }: IOperatorForm) => {
|
|
39 |
return (
|
40 |
<Form
|
41 |
name="basic"
|
42 |
-
labelCol={{ span: 6 }}
|
43 |
-
wrapperCol={{ span: 18 }}
|
44 |
autoComplete="off"
|
45 |
form={form}
|
46 |
onValuesChange={onValuesChange}
|
|
|
47 |
>
|
|
|
48 |
<TopNItem initialValue={5}></TopNItem>
|
49 |
<Form.Item
|
50 |
label={t('sortBy')}
|
|
|
5 |
import { useCallback, useMemo } from 'react';
|
6 |
import { useBuildSortOptions } from '../../form-hooks';
|
7 |
import { IOperatorForm } from '../../interface';
|
8 |
+
import DynamicInputVariable from '../components/dynamic-input-variable';
|
9 |
|
10 |
const YearPicker = ({
|
11 |
onChange,
|
|
|
32 |
return <DatePicker picker="year" onChange={handleChange} value={nextValue} />;
|
33 |
};
|
34 |
|
35 |
+
const GoogleScholarForm = ({ onValuesChange, form, node }: IOperatorForm) => {
|
36 |
const { t } = useTranslate('flow');
|
37 |
|
38 |
const options = useBuildSortOptions();
|
|
|
40 |
return (
|
41 |
<Form
|
42 |
name="basic"
|
|
|
|
|
43 |
autoComplete="off"
|
44 |
form={form}
|
45 |
onValuesChange={onValuesChange}
|
46 |
+
layout={'vertical'}
|
47 |
>
|
48 |
+
<DynamicInputVariable nodeId={node?.id}></DynamicInputVariable>
|
49 |
<TopNItem initialValue={5}></TopNItem>
|
50 |
<Form.Item
|
51 |
label={t('sortBy')}
|
web/src/pages/flow/form/jin10-form/index.tsx
CHANGED
@@ -10,8 +10,9 @@ import {
|
|
10 |
Jin10TypeOptions,
|
11 |
} from '../../constant';
|
12 |
import { IOperatorForm } from '../../interface';
|
|
|
13 |
|
14 |
-
const Jin10Form = ({ onValuesChange, form }: IOperatorForm) => {
|
15 |
const { t } = useTranslate('flow');
|
16 |
|
17 |
const jin10TypeOptions = useMemo(() => {
|
@@ -59,12 +60,12 @@ const Jin10Form = ({ onValuesChange, form }: IOperatorForm) => {
|
|
59 |
return (
|
60 |
<Form
|
61 |
name="basic"
|
62 |
-
labelCol={{ span: 9 }}
|
63 |
-
wrapperCol={{ span: 15 }}
|
64 |
autoComplete="off"
|
65 |
form={form}
|
66 |
onValuesChange={onValuesChange}
|
|
|
67 |
>
|
|
|
68 |
<Form.Item label={t('type')} name={'type'} initialValue={'flash'}>
|
69 |
<Select options={jin10TypeOptions}></Select>
|
70 |
</Form.Item>
|
|
|
10 |
Jin10TypeOptions,
|
11 |
} from '../../constant';
|
12 |
import { IOperatorForm } from '../../interface';
|
13 |
+
import DynamicInputVariable from '../components/dynamic-input-variable';
|
14 |
|
15 |
+
const Jin10Form = ({ onValuesChange, form, node }: IOperatorForm) => {
|
16 |
const { t } = useTranslate('flow');
|
17 |
|
18 |
const jin10TypeOptions = useMemo(() => {
|
|
|
60 |
return (
|
61 |
<Form
|
62 |
name="basic"
|
|
|
|
|
63 |
autoComplete="off"
|
64 |
form={form}
|
65 |
onValuesChange={onValuesChange}
|
66 |
+
layout={'vertical'}
|
67 |
>
|
68 |
+
<DynamicInputVariable nodeId={node?.id}></DynamicInputVariable>
|
69 |
<Form.Item label={t('type')} name={'type'} initialValue={'flash'}>
|
70 |
<Select options={jin10TypeOptions}></Select>
|
71 |
</Form.Item>
|
web/src/pages/flow/form/keyword-extract-form/index.tsx
CHANGED
@@ -4,8 +4,9 @@ import { useTranslate } from '@/hooks/common-hooks';
|
|
4 |
import { Form } from 'antd';
|
5 |
import { useSetLlmSetting } from '../../hooks';
|
6 |
import { IOperatorForm } from '../../interface';
|
|
|
7 |
|
8 |
-
const KeywordExtractForm = ({ onValuesChange, form }: IOperatorForm) => {
|
9 |
const { t } = useTranslate('flow');
|
10 |
|
11 |
useSetLlmSetting(form);
|
@@ -13,12 +14,12 @@ const KeywordExtractForm = ({ onValuesChange, form }: IOperatorForm) => {
|
|
13 |
return (
|
14 |
<Form
|
15 |
name="basic"
|
16 |
-
labelCol={{ span: 6 }}
|
17 |
-
wrapperCol={{ span: 18 }}
|
18 |
autoComplete="off"
|
19 |
form={form}
|
20 |
onValuesChange={onValuesChange}
|
|
|
21 |
>
|
|
|
22 |
<Form.Item
|
23 |
name={'llm_id'}
|
24 |
label={t('model', { keyPrefix: 'chat' })}
|
|
|
4 |
import { Form } from 'antd';
|
5 |
import { useSetLlmSetting } from '../../hooks';
|
6 |
import { IOperatorForm } from '../../interface';
|
7 |
+
import DynamicInputVariable from '../components/dynamic-input-variable';
|
8 |
|
9 |
+
const KeywordExtractForm = ({ onValuesChange, form, node }: IOperatorForm) => {
|
10 |
const { t } = useTranslate('flow');
|
11 |
|
12 |
useSetLlmSetting(form);
|
|
|
14 |
return (
|
15 |
<Form
|
16 |
name="basic"
|
|
|
|
|
17 |
autoComplete="off"
|
18 |
form={form}
|
19 |
onValuesChange={onValuesChange}
|
20 |
+
layout={'vertical'}
|
21 |
>
|
22 |
+
<DynamicInputVariable nodeId={node?.id}></DynamicInputVariable>
|
23 |
<Form.Item
|
24 |
name={'llm_id'}
|
25 |
label={t('model', { keyPrefix: 'chat' })}
|
web/src/pages/flow/form/pubmed-form/index.tsx
CHANGED
@@ -2,19 +2,20 @@ import TopNItem from '@/components/top-n-item';
|
|
2 |
import { useTranslate } from '@/hooks/common-hooks';
|
3 |
import { Form, Input } from 'antd';
|
4 |
import { IOperatorForm } from '../../interface';
|
|
|
5 |
|
6 |
-
const PubMedForm = ({ onValuesChange, form }: IOperatorForm) => {
|
7 |
const { t } = useTranslate('flow');
|
8 |
|
9 |
return (
|
10 |
<Form
|
11 |
name="basic"
|
12 |
-
labelCol={{ span: 6 }}
|
13 |
-
wrapperCol={{ span: 18 }}
|
14 |
autoComplete="off"
|
15 |
form={form}
|
16 |
onValuesChange={onValuesChange}
|
|
|
17 |
>
|
|
|
18 |
<TopNItem initialValue={10}></TopNItem>
|
19 |
<Form.Item
|
20 |
label={t('email')}
|
|
|
2 |
import { useTranslate } from '@/hooks/common-hooks';
|
3 |
import { Form, Input } from 'antd';
|
4 |
import { IOperatorForm } from '../../interface';
|
5 |
+
import DynamicInputVariable from '../components/dynamic-input-variable';
|
6 |
|
7 |
+
const PubMedForm = ({ onValuesChange, form, node }: IOperatorForm) => {
|
8 |
const { t } = useTranslate('flow');
|
9 |
|
10 |
return (
|
11 |
<Form
|
12 |
name="basic"
|
|
|
|
|
13 |
autoComplete="off"
|
14 |
form={form}
|
15 |
onValuesChange={onValuesChange}
|
16 |
+
layout={'vertical'}
|
17 |
>
|
18 |
+
<DynamicInputVariable nodeId={node?.id}></DynamicInputVariable>
|
19 |
<TopNItem initialValue={10}></TopNItem>
|
20 |
<Form.Item
|
21 |
label={t('email')}
|
web/src/pages/flow/form/qweather-form/index.tsx
CHANGED
@@ -8,8 +8,9 @@ import {
|
|
8 |
QWeatherUserTypeOptions,
|
9 |
} from '../../constant';
|
10 |
import { IOperatorForm } from '../../interface';
|
|
|
11 |
|
12 |
-
const QWeatherForm = ({ onValuesChange, form }: IOperatorForm) => {
|
13 |
const { t } = useTranslate('flow');
|
14 |
const qWeatherLangOptions = useMemo(() => {
|
15 |
return QWeatherLangOptions.map((x) => ({
|
@@ -49,12 +50,12 @@ const QWeatherForm = ({ onValuesChange, form }: IOperatorForm) => {
|
|
49 |
return (
|
50 |
<Form
|
51 |
name="basic"
|
52 |
-
labelCol={{ span: 6 }}
|
53 |
-
wrapperCol={{ span: 18 }}
|
54 |
autoComplete="off"
|
55 |
form={form}
|
56 |
onValuesChange={onValuesChange}
|
|
|
57 |
>
|
|
|
58 |
<Form.Item label={t('webApiKey')} name={'web_apikey'}>
|
59 |
<Input></Input>
|
60 |
</Form.Item>
|
|
|
8 |
QWeatherUserTypeOptions,
|
9 |
} from '../../constant';
|
10 |
import { IOperatorForm } from '../../interface';
|
11 |
+
import DynamicInputVariable from '../components/dynamic-input-variable';
|
12 |
|
13 |
+
const QWeatherForm = ({ onValuesChange, form, node }: IOperatorForm) => {
|
14 |
const { t } = useTranslate('flow');
|
15 |
const qWeatherLangOptions = useMemo(() => {
|
16 |
return QWeatherLangOptions.map((x) => ({
|
|
|
50 |
return (
|
51 |
<Form
|
52 |
name="basic"
|
|
|
|
|
53 |
autoComplete="off"
|
54 |
form={form}
|
55 |
onValuesChange={onValuesChange}
|
56 |
+
layout={'vertical'}
|
57 |
>
|
58 |
+
<DynamicInputVariable nodeId={node?.id}></DynamicInputVariable>
|
59 |
<Form.Item label={t('webApiKey')} name={'web_apikey'}>
|
60 |
<Input></Input>
|
61 |
</Form.Item>
|
web/src/pages/flow/form/retrieval-form/index.tsx
CHANGED
@@ -6,6 +6,7 @@ import { useTranslate } from '@/hooks/common-hooks';
|
|
6 |
import type { FormProps } from 'antd';
|
7 |
import { Form, Input } from 'antd';
|
8 |
import { IOperatorForm } from '../../interface';
|
|
|
9 |
|
10 |
type FieldType = {
|
11 |
top_n?: number;
|
@@ -19,7 +20,7 @@ const onFinishFailed: FormProps<FieldType>['onFinishFailed'] = (errorInfo) => {
|
|
19 |
console.log('Failed:', errorInfo);
|
20 |
};
|
21 |
|
22 |
-
const RetrievalForm = ({ onValuesChange, form }: IOperatorForm) => {
|
23 |
const { t } = useTranslate('flow');
|
24 |
return (
|
25 |
<Form
|
@@ -31,6 +32,7 @@ const RetrievalForm = ({ onValuesChange, form }: IOperatorForm) => {
|
|
31 |
form={form}
|
32 |
layout={'vertical'}
|
33 |
>
|
|
|
34 |
<SimilaritySlider
|
35 |
isTooltipShown
|
36 |
vectorSimilarityWeightName="keywords_similarity_weight"
|
|
|
6 |
import type { FormProps } from 'antd';
|
7 |
import { Form, Input } from 'antd';
|
8 |
import { IOperatorForm } from '../../interface';
|
9 |
+
import DynamicInputVariable from '../components/dynamic-input-variable';
|
10 |
|
11 |
type FieldType = {
|
12 |
top_n?: number;
|
|
|
20 |
console.log('Failed:', errorInfo);
|
21 |
};
|
22 |
|
23 |
+
const RetrievalForm = ({ onValuesChange, form, node }: IOperatorForm) => {
|
24 |
const { t } = useTranslate('flow');
|
25 |
return (
|
26 |
<Form
|
|
|
32 |
form={form}
|
33 |
layout={'vertical'}
|
34 |
>
|
35 |
+
<DynamicInputVariable nodeId={node?.id}></DynamicInputVariable>
|
36 |
<SimilaritySlider
|
37 |
isTooltipShown
|
38 |
vectorSimilarityWeightName="keywords_similarity_weight"
|
web/src/pages/flow/form/tushare-form/index.tsx
CHANGED
@@ -4,6 +4,7 @@ import dayjs from 'dayjs';
|
|
4 |
import { useCallback, useMemo } from 'react';
|
5 |
import { TuShareSrcOptions } from '../../constant';
|
6 |
import { IOperatorForm } from '../../interface';
|
|
|
7 |
|
8 |
const DateTimePicker = ({
|
9 |
onChange,
|
@@ -37,7 +38,7 @@ const DateTimePicker = ({
|
|
37 |
);
|
38 |
};
|
39 |
|
40 |
-
const TuShareForm = ({ onValuesChange, form }: IOperatorForm) => {
|
41 |
const { t } = useTranslate('flow');
|
42 |
|
43 |
const tuShareSrcOptions = useMemo(() => {
|
@@ -50,12 +51,12 @@ const TuShareForm = ({ onValuesChange, form }: IOperatorForm) => {
|
|
50 |
return (
|
51 |
<Form
|
52 |
name="basic"
|
53 |
-
labelCol={{ span: 6 }}
|
54 |
-
wrapperCol={{ span: 18 }}
|
55 |
autoComplete="off"
|
56 |
form={form}
|
57 |
onValuesChange={onValuesChange}
|
|
|
58 |
>
|
|
|
59 |
<Form.Item
|
60 |
label={t('token')}
|
61 |
name={'token'}
|
|
|
4 |
import { useCallback, useMemo } from 'react';
|
5 |
import { TuShareSrcOptions } from '../../constant';
|
6 |
import { IOperatorForm } from '../../interface';
|
7 |
+
import DynamicInputVariable from '../components/dynamic-input-variable';
|
8 |
|
9 |
const DateTimePicker = ({
|
10 |
onChange,
|
|
|
38 |
);
|
39 |
};
|
40 |
|
41 |
+
const TuShareForm = ({ onValuesChange, form, node }: IOperatorForm) => {
|
42 |
const { t } = useTranslate('flow');
|
43 |
|
44 |
const tuShareSrcOptions = useMemo(() => {
|
|
|
51 |
return (
|
52 |
<Form
|
53 |
name="basic"
|
|
|
|
|
54 |
autoComplete="off"
|
55 |
form={form}
|
56 |
onValuesChange={onValuesChange}
|
57 |
+
layout={'vertical'}
|
58 |
>
|
59 |
+
<DynamicInputVariable nodeId={node?.id}></DynamicInputVariable>
|
60 |
<Form.Item
|
61 |
label={t('token')}
|
62 |
name={'token'}
|
web/src/pages/flow/form/wencai-form/index.tsx
CHANGED
@@ -4,8 +4,9 @@ import { Form, Select } from 'antd';
|
|
4 |
import { useMemo } from 'react';
|
5 |
import { WenCaiQueryTypeOptions } from '../../constant';
|
6 |
import { IOperatorForm } from '../../interface';
|
|
|
7 |
|
8 |
-
const WenCaiForm = ({ onValuesChange, form }: IOperatorForm) => {
|
9 |
const { t } = useTranslate('flow');
|
10 |
|
11 |
const wenCaiQueryTypeOptions = useMemo(() => {
|
@@ -18,12 +19,12 @@ const WenCaiForm = ({ onValuesChange, form }: IOperatorForm) => {
|
|
18 |
return (
|
19 |
<Form
|
20 |
name="basic"
|
21 |
-
labelCol={{ span: 6 }}
|
22 |
-
wrapperCol={{ span: 18 }}
|
23 |
autoComplete="off"
|
24 |
form={form}
|
25 |
onValuesChange={onValuesChange}
|
|
|
26 |
>
|
|
|
27 |
<TopNItem initialValue={20} max={99}></TopNItem>
|
28 |
<Form.Item label={t('queryType')} name={'query_type'}>
|
29 |
<Select options={wenCaiQueryTypeOptions}></Select>
|
|
|
4 |
import { useMemo } from 'react';
|
5 |
import { WenCaiQueryTypeOptions } from '../../constant';
|
6 |
import { IOperatorForm } from '../../interface';
|
7 |
+
import DynamicInputVariable from '../components/dynamic-input-variable';
|
8 |
|
9 |
+
const WenCaiForm = ({ onValuesChange, form, node }: IOperatorForm) => {
|
10 |
const { t } = useTranslate('flow');
|
11 |
|
12 |
const wenCaiQueryTypeOptions = useMemo(() => {
|
|
|
19 |
return (
|
20 |
<Form
|
21 |
name="basic"
|
|
|
|
|
22 |
autoComplete="off"
|
23 |
form={form}
|
24 |
onValuesChange={onValuesChange}
|
25 |
+
layout={'vertical'}
|
26 |
>
|
27 |
+
<DynamicInputVariable nodeId={node?.id}></DynamicInputVariable>
|
28 |
<TopNItem initialValue={20} max={99}></TopNItem>
|
29 |
<Form.Item label={t('queryType')} name={'query_type'}>
|
30 |
<Select options={wenCaiQueryTypeOptions}></Select>
|
web/src/pages/flow/form/wikipedia-form/index.tsx
CHANGED
@@ -3,19 +3,20 @@ import { useTranslate } from '@/hooks/common-hooks';
|
|
3 |
import { Form, Select } from 'antd';
|
4 |
import { LanguageOptions } from '../../constant';
|
5 |
import { IOperatorForm } from '../../interface';
|
|
|
6 |
|
7 |
-
const WikipediaForm = ({ onValuesChange, form }: IOperatorForm) => {
|
8 |
const { t } = useTranslate('common');
|
9 |
|
10 |
return (
|
11 |
<Form
|
12 |
name="basic"
|
13 |
-
labelCol={{ span: 6 }}
|
14 |
-
wrapperCol={{ span: 18 }}
|
15 |
autoComplete="off"
|
16 |
form={form}
|
17 |
onValuesChange={onValuesChange}
|
|
|
18 |
>
|
|
|
19 |
<TopNItem initialValue={10}></TopNItem>
|
20 |
<Form.Item label={t('language')} name={'language'}>
|
21 |
<Select options={LanguageOptions}></Select>
|
|
|
3 |
import { Form, Select } from 'antd';
|
4 |
import { LanguageOptions } from '../../constant';
|
5 |
import { IOperatorForm } from '../../interface';
|
6 |
+
import DynamicInputVariable from '../components/dynamic-input-variable';
|
7 |
|
8 |
+
const WikipediaForm = ({ onValuesChange, form, node }: IOperatorForm) => {
|
9 |
const { t } = useTranslate('common');
|
10 |
|
11 |
return (
|
12 |
<Form
|
13 |
name="basic"
|
|
|
|
|
14 |
autoComplete="off"
|
15 |
form={form}
|
16 |
onValuesChange={onValuesChange}
|
17 |
+
layout={'vertical'}
|
18 |
>
|
19 |
+
<DynamicInputVariable nodeId={node?.id}></DynamicInputVariable>
|
20 |
<TopNItem initialValue={10}></TopNItem>
|
21 |
<Form.Item label={t('language')} name={'language'}>
|
22 |
<Select options={LanguageOptions}></Select>
|
web/src/pages/flow/form/yahoo-finance-form/index.tsx
CHANGED
@@ -1,19 +1,20 @@
|
|
1 |
import { useTranslate } from '@/hooks/common-hooks';
|
2 |
import { Form, Switch } from 'antd';
|
3 |
import { IOperatorForm } from '../../interface';
|
|
|
4 |
|
5 |
-
const YahooFinanceForm = ({ onValuesChange, form }: IOperatorForm) => {
|
6 |
const { t } = useTranslate('flow');
|
7 |
|
8 |
return (
|
9 |
<Form
|
10 |
name="basic"
|
11 |
-
labelCol={{ span: 10 }}
|
12 |
-
wrapperCol={{ span: 14 }}
|
13 |
autoComplete="off"
|
14 |
form={form}
|
15 |
onValuesChange={onValuesChange}
|
|
|
16 |
>
|
|
|
17 |
<Form.Item label={t('info')} name={'info'}>
|
18 |
<Switch></Switch>
|
19 |
</Form.Item>
|
|
|
1 |
import { useTranslate } from '@/hooks/common-hooks';
|
2 |
import { Form, Switch } from 'antd';
|
3 |
import { IOperatorForm } from '../../interface';
|
4 |
+
import DynamicInputVariable from '../components/dynamic-input-variable';
|
5 |
|
6 |
+
const YahooFinanceForm = ({ onValuesChange, form, node }: IOperatorForm) => {
|
7 |
const { t } = useTranslate('flow');
|
8 |
|
9 |
return (
|
10 |
<Form
|
11 |
name="basic"
|
|
|
|
|
12 |
autoComplete="off"
|
13 |
form={form}
|
14 |
onValuesChange={onValuesChange}
|
15 |
+
layout={'vertical'}
|
16 |
>
|
17 |
+
<DynamicInputVariable nodeId={node?.id}></DynamicInputVariable>
|
18 |
<Form.Item label={t('info')} name={'info'}>
|
19 |
<Switch></Switch>
|
20 |
</Form.Item>
|