|
|
@@ -659,6 +659,13 @@ export function useFlowDesigner(lfContainer: Ref<HTMLDivElement | undefined>) {
|
|
|
optionDialogVisible.value = false
|
|
|
}
|
|
|
|
|
|
+ function getNodeDisplayName(node: any): string {
|
|
|
+ // LogicFlow 的 node.text 可能是 { value: '节点名' },直接拼接会变成 [object Object]
|
|
|
+ const text = node?.text
|
|
|
+ const value = text && typeof text === 'object' ? text.value : text
|
|
|
+ return String(value || node?.name || '未命名节点')
|
|
|
+ }
|
|
|
+
|
|
|
function validateFlow(graphData: any): string | null {
|
|
|
const nodes = graphData.nodes || []
|
|
|
const edges = graphData.edges || []
|
|
|
@@ -676,15 +683,15 @@ export function useFlowDesigner(lfContainer: Ref<HTMLDivElement | undefined>) {
|
|
|
const assigneeType = props.assigneeType ?? 'ROLE'
|
|
|
const assigneeValue = props.assigneeValue || props.approver
|
|
|
if (assigneeType === 'ROLE' && !assigneeValue && props.subNodesEnabled !== true) {
|
|
|
- return `审批节点 ${node.text || node.name} 未选择审批角色`
|
|
|
+ return `审批节点 ${getNodeDisplayName(node)} 未选择审批角色`
|
|
|
}
|
|
|
if (assigneeType === 'EXTERNAL') {
|
|
|
if (props.subNodesEnabled === true) {
|
|
|
- return `审批节点 "${node.text || node.name}" 使用外部指定审批人时不支持子节点`
|
|
|
+ return `审批节点 ${getNodeDisplayName(node)} 使用外部指定审批人时不支持子节点`
|
|
|
}
|
|
|
const nodeKey = String(props.nodeKey || '').trim()
|
|
|
if (!nodeKey) {
|
|
|
- return `审批节点 "${node.text || node.name}" 未填写节点编码(nodeKey)`
|
|
|
+ return `审批节点 ${getNodeDisplayName(node)} 未填写节点编码(nodeKey)`
|
|
|
}
|
|
|
if (externalNodeKeys.has(nodeKey)) {
|
|
|
return `节点编码 "${nodeKey}" 重复,请保证每个外部指定节点编码唯一`
|
|
|
@@ -694,14 +701,14 @@ export function useFlowDesigner(lfContainer: Ref<HTMLDivElement | undefined>) {
|
|
|
if (props.subNodesEnabled === true) {
|
|
|
const subNodes = props.subNodes || []
|
|
|
if (subNodes.length === 0) {
|
|
|
- return `审批节点 "${node.text || node.name}" 已启用子节点,请至少配置一个子节点`
|
|
|
+ return `审批节点 ${getNodeDisplayName(node)} 已启用子节点,请至少配置一个子节点`
|
|
|
}
|
|
|
for (let i = 0; i < subNodes.length; i++) {
|
|
|
const sub = subNodes[i]
|
|
|
const subAssigneeType = sub.assigneeType ?? 'ROLE'
|
|
|
const subAssigneeValue = sub.assigneeValue
|
|
|
if (subAssigneeType === 'ROLE' && !subAssigneeValue) {
|
|
|
- return `审批节点 ${node.text || node.name} 的子节点 ${i + 1} 未选择审批角色`
|
|
|
+ return `审批节点 ${getNodeDisplayName(node)} 的子节点 ${i + 1} 未选择审批角色`
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -721,7 +728,7 @@ export function useFlowDesigner(lfContainer: Ref<HTMLDivElement | undefined>) {
|
|
|
node.type !== 'end-node' &&
|
|
|
node.type !== 'end'
|
|
|
) {
|
|
|
- return `节点 "${node.text || node.name}" 是孤立节点,请删除或连接`
|
|
|
+ return `节点 ${getNodeDisplayName(node)} 是孤立节点,请删除或连接`
|
|
|
}
|
|
|
}
|
|
|
// 检查条件分支:有且只能有一个默认分支,非默认分支必须填写条件
|
|
|
@@ -739,17 +746,17 @@ export function useFlowDesigner(lfContainer: Ref<HTMLDivElement | undefined>) {
|
|
|
return props.isDefault || (!props.condition && !e.condition)
|
|
|
})
|
|
|
if (defaultEdges.length === 0) {
|
|
|
- return `条件节点 "${node.text || node.name}" 需要至少一条默认分支`
|
|
|
+ return `条件节点 ${getNodeDisplayName(node)} 需要至少一条默认分支`
|
|
|
}
|
|
|
if (defaultEdges.length > 1) {
|
|
|
- return `条件节点 "${node.text || node.name}" 只能有一条默认分支`
|
|
|
+ return `条件节点 ${getNodeDisplayName(node)} 只能有一条默认分支`
|
|
|
}
|
|
|
const invalid = outEdges.some((e: any) => {
|
|
|
const props = e.properties || {}
|
|
|
return !props.isDefault && !props.condition && !e.condition
|
|
|
})
|
|
|
if (invalid) {
|
|
|
- return `条件节点 "${node.text || node.name}" 的非默认分支必须填写条件表达式`
|
|
|
+ return `条件节点 ${getNodeDisplayName(node)} 的非默认分支必须填写条件表达式`
|
|
|
}
|
|
|
}
|
|
|
}
|