diff --git a/src/views/bpm/processInstance/create/ProcessDefinitionDetail.vue b/src/views/bpm/processInstance/create/ProcessDefinitionDetail.vue index 50d3fbd7..610963e1 100644 --- a/src/views/bpm/processInstance/create/ProcessDefinitionDetail.vue +++ b/src/views/bpm/processInstance/create/ProcessDefinitionDetail.vue @@ -162,8 +162,10 @@ const getApprovalDetail = async (row: any) => { startUserSelectTasks.value = data.activityNodes?.filter( (node: ApprovalNodeInfo) => CandidateStrategy.START_USER_SELECT === node.candidateStrategy ) - for (const node of startUserSelectTasks.value) { - startUserSelectAssignees.value[node.id] = [] + if (startUserSelectTasks.value?.length > 0) { + for (const node of startUserSelectTasks.value) { + startUserSelectAssignees.value[node.id] = [] + } } // 获取审批节点,显示 Timeline 的数据 diff --git a/src/views/bpm/processInstance/create/index.vue b/src/views/bpm/processInstance/create/index.vue index a028b0e7..4253448f 100644 --- a/src/views/bpm/processInstance/create/index.vue +++ b/src/views/bpm/processInstance/create/index.vue @@ -22,7 +22,7 @@
{ try { // 流程分类 categoryList.value = await CategoryApi.getCategorySimpleList() - // 选中首个分类 - if (categoryList.value.length > 0) { - categoryActive.value = categoryList.value[0] + // 等待流程定义数据加载完成后再设置默认选中分类 + await nextTick() + // 选中第一个有流程的分类 + if (availableCategories.value.length > 0) { + categoryActive.value = availableCategories.value[0] } } finally { } @@ -261,6 +263,21 @@ const handleScroll = (e) => { onMounted(() => { getList() }) + +/** 过滤出有流程的分类列表 */ +const availableCategories = computed(() => { + if (!categoryList.value?.length || !processDefinitionGroup.value) { + return [] + } + + // 获取所有有流程的分类代码 + const availableCategoryCodes = Object.keys(processDefinitionGroup.value) + + // 过滤出有流程的分类 + return categoryList.value.filter(category => + availableCategoryCodes.includes(category.code) + ) +})