Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
赵月辉
/
fastgpt-migrated
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Unverified
Commit
8862e353
authored
Aug 02, 2023
by
archer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: extract modules
parent
bf1f958d
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
26 additions
and
11 deletions
+26
-11
client/src/pages/app/detail/components/AdEdit/components/Nodes/NodeExtract.tsx
+1
-1
client/src/pages/app/detail/components/AdEdit/components/modules/ExtractFieldModal.tsx
+12
-4
client/src/pages/chat/components/ChatHeader.tsx
+11
-1
client/src/pages/chat/index.tsx
+1
-0
client/src/utils/adapt.ts
+1
-5
No files found.
client/src/pages/app/detail/components/AdEdit/components/Nodes/NodeExtract.tsx
View file @
8862e353
...
@@ -13,7 +13,6 @@ import RenderOutput from '../render/RenderOutput';
...
@@ -13,7 +13,6 @@ import RenderOutput from '../render/RenderOutput';
import
MyIcon
from
'@/components/Icon'
;
import
MyIcon
from
'@/components/Icon'
;
import
ExtractFieldModal
from
'../modules/ExtractFieldModal'
;
import
ExtractFieldModal
from
'../modules/ExtractFieldModal'
;
import
{
ContextExtractEnum
}
from
'@/constants/flow/flowField'
;
import
{
ContextExtractEnum
}
from
'@/constants/flow/flowField'
;
import
SourceHandle
from
'../render/SourceHandle'
;
import
{
FlowOutputItemTypeEnum
,
FlowValueTypeEnum
}
from
'@/constants/flow'
;
import
{
FlowOutputItemTypeEnum
,
FlowValueTypeEnum
}
from
'@/constants/flow'
;
const
NodeExtract
=
({
const
NodeExtract
=
({
...
@@ -150,6 +149,7 @@ const NodeExtract = ({
...
@@ -150,6 +149,7 @@ const NodeExtract = ({
:
outputs
.
concat
({
:
outputs
.
concat
({
key
:
data
.
key
,
key
:
data
.
key
,
label
:
`提取结果-${data.desc}`
,
label
:
`提取结果-${data.desc}`
,
description
:
'无法提取时不会返回'
,
valueType
:
FlowValueTypeEnum
.
string
,
valueType
:
FlowValueTypeEnum
.
string
,
type
:
FlowOutputItemTypeEnum
.
source
,
type
:
FlowOutputItemTypeEnum
.
source
,
targets
:
[]
targets
:
[]
...
...
client/src/pages/app/detail/components/AdEdit/components/modules/ExtractFieldModal.tsx
View file @
8862e353
import
React
,
{
useState
}
from
'react'
;
import
React
,
{
use
Memo
,
use
State
}
from
'react'
;
import
{
import
{
Box
,
Box
,
Button
,
Button
,
...
@@ -16,6 +16,7 @@ import { customAlphabet } from 'nanoid';
...
@@ -16,6 +16,7 @@ import { customAlphabet } from 'nanoid';
const
nanoid
=
customAlphabet
(
'abcdefghijklmnopqrstuvwxyz1234567890'
,
6
);
const
nanoid
=
customAlphabet
(
'abcdefghijklmnopqrstuvwxyz1234567890'
,
6
);
import
MyModal
from
'@/components/MyModal'
;
import
MyModal
from
'@/components/MyModal'
;
import
Avatar
from
'@/components/Avatar'
;
import
Avatar
from
'@/components/Avatar'
;
import
MyTooltip
from
'@/components/MyTooltip'
;
const
ExtractFieldModal
=
({
const
ExtractFieldModal
=
({
defaultField
=
{
defaultField
=
{
...
@@ -33,6 +34,7 @@ const ExtractFieldModal = ({
...
@@ -33,6 +34,7 @@ const ExtractFieldModal = ({
const
{
register
,
handleSubmit
}
=
useForm
<
ContextExtractAgentItemType
>
({
const
{
register
,
handleSubmit
}
=
useForm
<
ContextExtractAgentItemType
>
({
defaultValues
:
defaultField
defaultValues
:
defaultField
});
});
const
isEdit
=
useMemo
(()
=>
!!
defaultField
.
key
,
[
defaultField
]);
return
(
return
(
<
MyModal
isOpen=
{
true
}
onClose=
{
onClose
}
>
<
MyModal
isOpen=
{
true
}
onClose=
{
onClose
}
>
...
@@ -42,23 +44,29 @@ const ExtractFieldModal = ({
...
@@ -42,23 +44,29 @@ const ExtractFieldModal = ({
</
ModalHeader
>
</
ModalHeader
>
<
ModalBody
>
<
ModalBody
>
<
Flex
alignItems=
{
'center'
}
>
<
Flex
alignItems=
{
'center'
}
>
<
Box
w=
{
'
70px'
}
>
必填
</
Box
>
<
Box
flex=
{
'0 0
70px'
}
>
必填
</
Box
>
<
Switch
{
...
register
('
required
')}
/>
<
Switch
{
...
register
('
required
')}
/>
</
Flex
>
</
Flex
>
<
Flex
mt=
{
5
}
alignItems=
{
'center'
}
>
<
Flex
mt=
{
5
}
alignItems=
{
'center'
}
>
<
Box
w=
{
'8
0px'
}
>
字段描述
</
Box
>
<
Box
flex=
{
'0 0 7
0px'
}
>
字段描述
</
Box
>
<
Input
<
Input
placeholder=
"姓名/年龄/sql语句……"
placeholder=
"姓名/年龄/sql语句……"
{
...
register
('
desc
',
{
required
:
'字段描述不能为空'
})}
{
...
register
('
desc
',
{
required
:
'字段描述不能为空'
})}
/>
/>
</
Flex
>
</
Flex
>
<
Flex
mt=
{
5
}
alignItems=
{
'center'
}
>
<
Flex
mt=
{
5
}
alignItems=
{
'center'
}
>
<
Box
w=
{
'80px'
}
>
字段 key
</
Box
>
<
Box
flex=
{
'0 0 70px'
}
>
字段 key
</
Box
>
<
MyTooltip
label=
{
isEdit
?
'不支持修改 key'
:
''
}
shouldWrapChildren=
{
false
}
>
<
Input
<
Input
isDisabled=
{
isEdit
}
placeholder=
"name/age/sql"
placeholder=
"name/age/sql"
{
...
register
('
key
',
{
required
:
'字段
key
不能为空'
})}
{
...
register
('
key
',
{
required
:
'字段
key
不能为空'
})}
/>
/>
</
MyTooltip
>
</
Flex
>
</
Flex
>
<
Box
mt=
{
1
}
pl=
{
'70px'
}
color=
{
'myGray.600'
}
fontSize=
{
'sm'
}
>
注意: key 字段创建后无法修改
</
Box
>
</
ModalBody
>
</
ModalBody
>
<
ModalFooter
>
<
ModalFooter
>
...
...
client/src/pages/chat/components/ChatHeader.tsx
View file @
8862e353
...
@@ -6,20 +6,24 @@ import Tag from '@/components/Tag';
...
@@ -6,20 +6,24 @@ import Tag from '@/components/Tag';
import
Avatar
from
'@/components/Avatar'
;
import
Avatar
from
'@/components/Avatar'
;
import
ToolMenu
from
'./ToolMenu'
;
import
ToolMenu
from
'./ToolMenu'
;
import
{
ChatItemType
}
from
'@/types/chat'
;
import
{
ChatItemType
}
from
'@/types/chat'
;
import
{
useRouter
}
from
'next/router'
;
const
ChatHeader
=
({
const
ChatHeader
=
({
history
,
history
,
appName
,
appName
,
appAvatar
,
appAvatar
,
chatModels
,
chatModels
,
appId
,
onOpenSlider
onOpenSlider
}:
{
}:
{
history
:
ChatItemType
[];
history
:
ChatItemType
[];
appName
:
string
;
appName
:
string
;
appAvatar
:
string
;
appAvatar
:
string
;
chatModels
?:
string
[];
chatModels
?:
string
[];
appId
?:
string
;
onOpenSlider
:
()
=>
void
;
onOpenSlider
:
()
=>
void
;
})
=>
{
})
=>
{
const
router
=
useRouter
();
const
theme
=
useTheme
();
const
theme
=
useTheme
();
const
{
isPc
}
=
useGlobalStore
();
const
{
isPc
}
=
useGlobalStore
();
const
title
=
useMemo
(
const
title
=
useMemo
(
...
@@ -58,7 +62,13 @@ const ChatHeader = ({
...
@@ -58,7 +62,13 @@ const ChatHeader = ({
<
MyIcon
name=
{
'menu'
}
w=
{
'20px'
}
h=
{
'20px'
}
color=
{
'myGray.900'
}
onClick=
{
onOpenSlider
}
/>
<
MyIcon
name=
{
'menu'
}
w=
{
'20px'
}
h=
{
'20px'
}
color=
{
'myGray.900'
}
onClick=
{
onOpenSlider
}
/>
<
Flex
px=
{
3
}
alignItems=
{
'center'
}
flex=
{
'1 0 0'
}
w=
{
0
}
justifyContent=
{
'center'
}
>
<
Flex
px=
{
3
}
alignItems=
{
'center'
}
flex=
{
'1 0 0'
}
w=
{
0
}
justifyContent=
{
'center'
}
>
<
Avatar
src=
{
appAvatar
}
w=
{
'16px'
}
/>
<
Avatar
src=
{
appAvatar
}
w=
{
'16px'
}
/>
<
Box
ml=
{
1
}
className=
"textEllipsis"
>
<
Box
ml=
{
1
}
className=
"textEllipsis"
onClick=
{
()
=>
{
appId
&&
router
.
push
(
`/app/detail?appId=${appId}`
);
}
}
>
{
appName
}
{
appName
}
</
Box
>
</
Box
>
</
Flex
>
</
Flex
>
...
...
client/src/pages/chat/index.tsx
View file @
8862e353
...
@@ -345,6 +345,7 @@ const Chat = ({ appId, chatId }: { appId: string; chatId: string }) => {
...
@@ -345,6 +345,7 @@ const Chat = ({ appId, chatId }: { appId: string; chatId: string }) => {
<
ChatHeader
<
ChatHeader
appAvatar=
{
chatData
.
app
.
avatar
}
appAvatar=
{
chatData
.
app
.
avatar
}
appName=
{
chatData
.
app
.
name
}
appName=
{
chatData
.
app
.
name
}
appId=
{
appId
}
history=
{
chatData
.
history
}
history=
{
chatData
.
history
}
chatModels=
{
chatData
.
app
.
chatModels
}
chatModels=
{
chatData
.
app
.
chatModels
}
onOpenSlider=
{
onOpenSlider
}
onOpenSlider=
{
onOpenSlider
}
...
...
client/src/utils/adapt.ts
View file @
8862e353
...
@@ -73,10 +73,6 @@ export const appModule2FlowNode = ({
...
@@ -73,10 +73,6 @@ export const appModule2FlowNode = ({
const
template
=
const
template
=
ModuleTemplatesFlat
.
find
((
template
)
=>
template
.
flowType
===
item
.
flowType
)
||
EmptyModule
;
ModuleTemplatesFlat
.
find
((
template
)
=>
template
.
flowType
===
item
.
flowType
)
||
EmptyModule
;
const
mergeOutputs
=
item
.
outputs
.
concat
(
template
.
outputs
.
filter
((
output
)
=>
!
item
.
outputs
.
find
((
item
)
=>
item
.
key
===
output
.
key
))
);
// replace item data
// replace item data
const
moduleItem
:
FlowModuleItemType
=
{
const
moduleItem
:
FlowModuleItemType
=
{
...
item
,
...
item
,
...
@@ -90,7 +86,7 @@ export const appModule2FlowNode = ({
...
@@ -90,7 +86,7 @@ export const appModule2FlowNode = ({
};
};
}),
}),
// 合并 template 和数据库,文案以 template 为准
// 合并 template 和数据库,文案以 template 为准
outputs
:
mergeO
utputs
.
map
((
output
)
=>
{
outputs
:
item
.
o
utputs
.
map
((
output
)
=>
{
// unChange outputs
// unChange outputs
const
templateOutput
=
template
.
outputs
.
find
((
item
)
=>
item
.
key
===
output
.
key
);
const
templateOutput
=
template
.
outputs
.
find
((
item
)
=>
item
.
key
===
output
.
key
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment