diff --git a/frontend/src/views/CreateTask.vue b/frontend/src/views/CreateTask.vue index 19702ed..a7e1521 100644 --- a/frontend/src/views/CreateTask.vue +++ b/frontend/src/views/CreateTask.vue @@ -712,14 +712,23 @@ const cascaderFilter = (inputValue: string, path: CascaderOption[]) => { // 任务类型级联选择变更 const onTaskTypeChange = (value: (string | number)[] | undefined, item: TaskTypeItem, index: number) => { - if (value && value.length === 3) { - // 选择了三级分类,设置taskTypeId为三级分类的ID - item.taskTypeId = value[2] as number + if (value && value.length > 0) { + // 取选择路径中的最后一个ID(叶子节点) + const lastId = value[value.length - 1] as number + // 检查该节点是否是叶子节点(没有子分类) + const selectedNode = findTaskTypeById(lastId) + if (selectedNode && (!selectedNode.children || selectedNode.children.length === 0)) { + // 是叶子节点,可以设置taskTypeId + item.taskTypeId = lastId + } else { + // 不是叶子节点,还需要继续选择 + item.taskTypeId = undefined + } item.taskTypePath = value } else { - // 未选择完整路径 + // 清空选择 item.taskTypeId = undefined - item.taskTypePath = value + item.taskTypePath = undefined } calculateScore() }