From 82eb291cb56b0db0d7941496d3070ce470b8e1ef Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 5 Jan 2026 22:44:59 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BB=BB=E5=8A=A1=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E6=94=AF=E6=8C=81=E9=80=89=E6=8B=A9=E5=88=B0?= =?UTF-8?q?=E5=8F=B6=E5=AD=90=E8=8A=82=E7=82=B9=EF=BC=8C=E4=B8=8D=E5=BC=BA?= =?UTF-8?q?=E5=88=B6=E8=A6=81=E6=B1=82=E4=B8=89=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/views/CreateTask.vue | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) 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() }