Skip to content

Commit 47c51c9

Browse files
authored
fix: Node copied in orchestration, default name incorrect, should be in numerical calculation form of+1, not string form of+1 (#3818)
1 parent 2337dee commit 47c51c9

File tree

2 files changed

+23
-18
lines changed

2 files changed

+23
-18
lines changed

ui/src/workflow/common/NodeContainer.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -244,9 +244,9 @@ const editName = async (formEl: FormInstance | undefined) => {
244244
await formEl.validate((valid) => {
245245
if (valid) {
246246
if (
247-
!props.nodeModel.graphModel.nodes?.some(
248-
(node: any) => node.properties.stepName === form.value.title,
249-
)
247+
!props.nodeModel.graphModel.nodes
248+
.filter((node: any) => node.id !== props.nodeModel.id)
249+
?.some((node: any) => node.properties.stepName === form.value.title)
250250
) {
251251
set(props.nodeModel.properties, 'stepName', form.value.title)
252252
nodeNameDialogVisible.value = false

ui/src/workflow/common/app-node.ts

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,20 @@ import { nodeDict } from '@/workflow/common/data'
1212
import { isActive, connect, disconnect } from './teleport'
1313
import { t } from '@/locales'
1414
import { type Dict } from '@/api/type/common'
15+
const getNodeName = (nodes: Array<any>, baseName: string) => {
16+
let index = 0
17+
let name = baseName
18+
while (true) {
19+
if (index > 0) {
20+
name = baseName + index
21+
console.log(name)
22+
}
23+
if (!nodes.some((node: any) => node.properties.stepName === name.trim())) {
24+
return name
25+
}
26+
index++
27+
}
28+
}
1529
class AppNode extends HtmlResize.view {
1630
isMounted
1731
r?: any
@@ -32,23 +46,14 @@ class AppNode extends HtmlResize.view {
3246
if (props.model.properties.noRender) {
3347
delete props.model.properties.noRender
3448
} else {
35-
const filterNodes = props.graphModel.nodes.filter((v: any) => v.type === props.model.type)
36-
const filterNameSameNodes = filterNodes.filter(
37-
(v: any) => v.properties.stepName === props.model.properties.stepName,
49+
console.log('ss', props.model.properties.stepName)
50+
console.log(props.graphModel.nodes, this)
51+
props.model.properties.stepName = getNodeName(
52+
props.graphModel.nodes.filter((node: any) => node.id !== props.model.id),
53+
props.model.properties.stepName,
3854
)
39-
if (filterNameSameNodes.length - 1 > 0) {
40-
getNodesName(filterNameSameNodes.length - 1)
41-
}
42-
}
43-
function getNodesName(num: number) {
44-
const number = num
45-
const name = props.model.properties.stepName + number
46-
if (!props.graphModel.nodes?.some((node: any) => node.properties.stepName === name.trim())) {
47-
props.model.properties.stepName = name
48-
} else {
49-
getNodesName(number + 1)
50-
}
5155
}
56+
5257
props.model.properties.config = nodeDict[props.model.type].properties.config
5358
if (props.model.properties.height) {
5459
props.model.height = props.model.properties.height

0 commit comments

Comments
 (0)