Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
D
dify
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ai-tech
dify
Commits
b5ed4af2
Commit
b5ed4af2
authored
Feb 23, 2024
by
Joel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: var assigner node
parent
b6c683a1
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
81 additions
and
8 deletions
+81
-8
page.tsx
web/app/(commonLayout)/workflow/nodes/page.tsx
+2
-2
var-reference-picker.tsx
.../nodes/_base/components/variable/var-reference-picker.tsx
+1
-1
mock.ts
web/app/components/workflow/nodes/variable-assigner/mock.ts
+2
-1
node.tsx
web/app/components/workflow/nodes/variable-assigner/node.tsx
+60
-4
workflow.ts
web/i18n/en-US/workflow.ts
+8
-0
workflow.ts
web/i18n/zh-Hans/workflow.ts
+8
-0
No files found.
web/app/(commonLayout)/workflow/nodes/page.tsx
View file @
b5ed4af2
...
...
@@ -5,9 +5,9 @@ import { memo } from 'react'
import
Workflow
from
'@/app/components/workflow'
import
{
BlockEnum
}
from
'@/app/components/workflow/types'
const
nodes
=
[
BlockEnum
.
End
/* 12
*/
,
BlockEnum
.
Start
/* 1 */
,
BlockEnum
.
DirectAnswer
/* 2 */
,
BlockEnum
.
LLM
/* 3 */
,
BlockEnum
.
KnowledgeRetrieval
/* 4 */
,
BlockEnum
.
QuestionClassifier
/* 5 */
,
BlockEnum
.
VariableAssigner
/* 11
*/
,
BlockEnum
.
Start
/* 1 */
,
BlockEnum
.
DirectAnswer
/* 2 */
,
BlockEnum
.
LLM
/* 3 */
,
BlockEnum
.
KnowledgeRetrieval
/* 4 */
,
BlockEnum
.
QuestionClassifier
/* 5 */
,
BlockEnum
.
IfElse
/* 6 */
,
BlockEnum
.
Code
/* 7 */
,
BlockEnum
.
TemplateTransform
/* 8 */
,
BlockEnum
.
HttpRequest
/* 9 */
,
BlockEnum
.
Tool
/* 10 */
,
BlockEnum
.
VariableAssigner
/* 11
*/
,
BlockEnum
.
End
/* 12
*/
,
].
map
((
item
,
i
)
=>
({
id
:
`
${
i
+
1
}
`
,
type
:
'custom'
,
...
...
web/app/components/workflow/nodes/_base/components/variable/var-reference-picker.tsx
View file @
b5ed4af2
...
...
@@ -30,7 +30,7 @@ type Props = {
// }
// TODO: get data from context
const
getNodeInfoById
=
(
id
:
string
)
=>
{
export
const
getNodeInfoById
=
(
id
:
string
)
=>
{
return
mockNodesData
[
id
]
}
...
...
web/app/components/workflow/nodes/variable-assigner/mock.ts
View file @
b5ed4af2
import
{
BlockEnum
}
from
'../../types'
import
type
{
VariableAssignerNodeType
}
from
'./types'
export
const
mockData
:
VariableAssignerNodeType
=
{
title
:
'Test'
,
desc
:
'Test'
,
type
:
'Test'
,
type
:
BlockEnum
.
VariableAssigner
,
output_type
:
'string'
,
variables
:
[
[
'aaa'
,
'name'
],
...
...
web/app/components/workflow/nodes/variable-assigner/node.tsx
View file @
b5ed4af2
import
type
{
FC
}
from
'react'
import
{
useTranslation
}
from
'react-i18next'
// import { mockData } from './mock'
import
{
mockData
}
from
'./mock'
import
{
getNodeInfoById
}
from
'@/app/components/workflow/nodes/_base/components/variable/var-reference-picker'
import
{
VarBlockIcon
}
from
'@/app/components/workflow/block-icon'
import
{
Line3
}
from
'@/app/components/base/icons/src/public/common'
import
{
Variable02
}
from
'@/app/components/base/icons/src/vender/solid/development'
const
i18nPrefix
=
'workflow.nodes.variableAssigner'
const
Node
:
FC
=
()
=>
{
const
{
t
}
=
useTranslation
()
// const { variables } = mockData
const
{
variables
,
output_type
}
=
mockData
// TODO: get var type through node and value
const
getVarType
=
()
=>
{
return
'string'
}
return
(
<
div
className=
'px-3'
>
<
div
className=
'leading-4 text-xs font-medium text-gray-500 uppercase'
>
{
t
(
`${i18nPrefix}.title`
)
}
</
div
>
</
div
>
<
div
className=
'mb-0.5 leading-4 text-xs font-medium text-gray-500 uppercase'
>
{
t
(
`${i18nPrefix}.title`
)
}
</
div
>
{
variables
.
length
===
0
&&
(
<
div
className=
'flex items-center h-6 justify-between bg-gray-100 rounded-md px-1 space-x-1 text-xs font-normal text-gray-400 uppercase'
>
{
t
(
`${i18nPrefix}.varNotSet`
)
}
</
div
>
)
}
{
variables
.
length
>
0
&&
(
<>
<
div
className=
'space-y-0.5'
>
{
variables
.
map
((
item
,
index
)
=>
{
const
node
=
getNodeInfoById
(
item
[
0
])
const
varName
=
item
[
item
.
length
-
1
]
return
(
<
div
key=
{
index
}
className=
'flex items-center h-6 bg-gray-100 rounded-md px-1 text-xs font-normal text-gray-700'
>
<
div
className=
'flex items-center'
>
<
div
className=
'p-[1px]'
>
<
VarBlockIcon
className=
'!text-gray-900'
type=
{
node
?.
type
}
/>
</
div
>
<
div
className=
'mx-0.5 text-xs font-medium text-gray-700'
>
{
node
?.
title
}
</
div
>
<
Line3
className=
'mr-0.5'
></
Line3
>
</
div
>
<
div
className=
'flex items-center text-primary-600'
>
<
Variable02
className=
'w-3.5 h-3.5'
/>
<
div
className=
'ml-0.5 text-xs font-medium'
>
{
varName
}
</
div
>
</
div
>
<
div
className=
'ml-0.5 text-xs font-normal text-gray-500'
>
{
getVarType
()
}
</
div
>
</
div
>
)
},
)
}
</
div
>
<
div
className=
'mt-2 flex items-center h-6 justify-between bg-gray-100 rounded-md px-1 space-x-1 text-xs font-normal text-gray-700'
>
<
div
className=
'text-xs font-medium text-gray-500 uppercase'
>
{
t
(
`${i18nPrefix}.outputType`
)
}
</
div
>
<
div
className=
'text-xs font-normal text-gray-700'
>
{
t
(
`${i18nPrefix}.type.${output_type}`
)
}
</
div
>
</
div
>
</>
)
}
</
div
>
)
}
...
...
web/i18n/en-US/workflow.ts
View file @
b5ed4af2
...
...
@@ -89,6 +89,14 @@ const translation = {
},
variableAssigner
:
{
title
:
'Assign variables'
,
outputType
:
'Output Type'
,
varNotSet
:
'Variable not set'
,
type
:
{
string
:
'String'
,
number
:
'Number'
,
object
:
'Object'
,
arrayObject
:
'Array[Object]'
,
},
},
},
}
...
...
web/i18n/zh-Hans/workflow.ts
View file @
b5ed4af2
...
...
@@ -88,6 +88,14 @@ const translation = {
},
variableAssigner
:
{
title
:
'变量赋值'
,
outputType
:
'输出类型'
,
varNotSet
:
'未设置变量'
,
type
:
{
string
:
'String'
,
number
:
'Number'
,
object
:
'Object'
,
arrayObject
:
'Array[Object]'
,
},
},
},
}
...
...
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