fix: Node copied in orchestration, default name incorrect, should be in numerical calculation form of+1, not string form of+1 (#3818)

This commit is contained in:
shaohuzhang1 2025-08-05 16:29:55 +08:00 committed by GitHub
parent 2337dee02d
commit 47c51c9466
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 23 additions and 18 deletions

View File

@ -244,9 +244,9 @@ const editName = async (formEl: FormInstance | undefined) => {
await formEl.validate((valid) => {
if (valid) {
if (
!props.nodeModel.graphModel.nodes?.some(
(node: any) => node.properties.stepName === form.value.title,
)
!props.nodeModel.graphModel.nodes
.filter((node: any) => node.id !== props.nodeModel.id)
?.some((node: any) => node.properties.stepName === form.value.title)
) {
set(props.nodeModel.properties, 'stepName', form.value.title)
nodeNameDialogVisible.value = false

View File

@ -12,6 +12,20 @@ import { nodeDict } from '@/workflow/common/data'
import { isActive, connect, disconnect } from './teleport'
import { t } from '@/locales'
import { type Dict } from '@/api/type/common'
const getNodeName = (nodes: Array<any>, baseName: string) => {
let index = 0
let name = baseName
while (true) {
if (index > 0) {
name = baseName + index
console.log(name)
}
if (!nodes.some((node: any) => node.properties.stepName === name.trim())) {
return name
}
index++
}
}
class AppNode extends HtmlResize.view {
isMounted
r?: any
@ -32,23 +46,14 @@ class AppNode extends HtmlResize.view {
if (props.model.properties.noRender) {
delete props.model.properties.noRender
} else {
const filterNodes = props.graphModel.nodes.filter((v: any) => v.type === props.model.type)
const filterNameSameNodes = filterNodes.filter(
(v: any) => v.properties.stepName === props.model.properties.stepName,
console.log('ss', props.model.properties.stepName)
console.log(props.graphModel.nodes, this)
props.model.properties.stepName = getNodeName(
props.graphModel.nodes.filter((node: any) => node.id !== props.model.id),
props.model.properties.stepName,
)
if (filterNameSameNodes.length - 1 > 0) {
getNodesName(filterNameSameNodes.length - 1)
}
}
function getNodesName(num: number) {
const number = num
const name = props.model.properties.stepName + number
if (!props.graphModel.nodes?.some((node: any) => node.properties.stepName === name.trim())) {
props.model.properties.stepName = name
} else {
getNodesName(number + 1)
}
}
props.model.properties.config = nodeDict[props.model.type].properties.config
if (props.model.properties.height) {
props.model.height = props.model.properties.height