Skip to content

Commit 38578c3

Browse files
committed
feat: 获取分支中的节点
1 parent 69ccd83 commit 38578c3

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

src/components/SimpleProcessDesignerV2/src/nodes-config/RouterNodeConfig.vue

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -86,15 +86,15 @@ const currentNode = useWatchNode(props)
8686
// 节点名称
8787
const { nodeName, showInput, clickIcon, blurEvent } = useNodeName(NodeType.ROUTER_BRANCH_NODE)
8888
const routerGroups = ref<RouterCondition[]>([])
89-
const nodeOptions = ref()
89+
const nodeOptions = ref<any>([])
9090
const conditionRef = ref([])
9191
9292
/** 保存配置 */
9393
const saveConfig = async () => {
9494
// 校验表单
9595
let valid = true
9696
for (const item of conditionRef.value) {
97-
if (!(await item.validate())) {
97+
if (item && !(await item.validate())) {
9898
valid = false
9999
}
100100
}
@@ -109,7 +109,7 @@ const saveConfig = async () => {
109109
}
110110
// 显示路由分支节点配置, 由父组件传过来
111111
const showRouteNodeConfig = (node: SimpleFlowNode) => {
112-
getRouterNode()
112+
getRouterNode(processNodeTree?.value)
113113
routerGroups.value = []
114114
nodeName.value = node.name
115115
if (node.routerGroups) {
@@ -172,15 +172,14 @@ const deleteRouterGroup = (index: number) => {
172172
routerGroups.value.splice(index, 1)
173173
}
174174
175-
const getRouterNode = () => {
176-
// TODO @lesan 还需要满足以下要求
175+
// 递归获取所有节点
176+
const getRouterNode = (node) => {
177+
// TODO 最好还需要满足以下要求
177178
// 并行分支、包容分支内部节点不能跳转到外部节点
178179
// 条件分支节点可以向上跳转到外部节点
179-
let node = processNodeTree?.value
180-
nodeOptions.value = []
181180
while (true) {
182181
if (!node) break
183-
if (node.type !== NodeType.ROUTER_BRANCH_NODE) {
182+
if (node.type !== NodeType.ROUTER_BRANCH_NODE && node.type !== NodeType.CONDITION_NODE) {
184183
nodeOptions.value.push({
185184
label: node.name,
186185
value: node.id
@@ -189,6 +188,11 @@ const getRouterNode = () => {
189188
if (!node.childNode || node.type === NodeType.END_EVENT_NODE) {
190189
break
191190
}
191+
if (node.conditionNodes && node.conditionNodes.length) {
192+
node.conditionNodes.forEach((item) => {
193+
getRouterNode(item)
194+
})
195+
}
192196
node = node.childNode
193197
}
194198
}

0 commit comments

Comments
 (0)