From 412114271e5b6090f644ceb927812736115c88d6 Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 6 Jan 2026 20:58:12 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A4=9A=E4=B8=AA=E5=90=8C=E7=BA=A7?= =?UTF-8?q?=E9=83=A8=E9=97=A8=E6=97=B6=E6=98=BE=E7=A4=BA=E7=88=B6=E9=83=A8?= =?UTF-8?q?=E9=97=A8=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/views/CreateTask.vue | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/frontend/src/views/CreateTask.vue b/frontend/src/views/CreateTask.vue index f98be90..0a69da9 100644 --- a/frontend/src/views/CreateTask.vue +++ b/frontend/src/views/CreateTask.vue @@ -1133,21 +1133,34 @@ const getDeptNameFromIds = (deptIds: string): string => { const ids = deptIds.split(',').map(id => parseInt(id.trim())).filter(id => !isNaN(id)) if (ids.length === 0) return '所有部门' - // 从部门列表中查找名称 - const deptNames = ids.map(id => { - const dept = departmentList.value.find(d => d.id === id) - return dept ? dept.deptName : `部门${id}` - }) + // 从部门列表中查找部门信息 + const depts = ids.map(id => departmentList.value.find(d => d.id === id)).filter(d => d) + if (depts.length === 0) return '所有部门' // 如果只有一个部门,显示部门名称 - if (deptNames.length === 1) { - return deptNames[0] + if (depts.length === 1) { + return depts[0]!.deptName } - // 如果有多个部门,显示全部名称(用逗号分隔) + + // 检查是否所有部门属于同一个父部门 + const parentIds = depts.map(d => d!.parentId).filter(id => id !== undefined && id !== null) + if (parentIds.length === depts.length) { + // 所有部门都有父部门 + const uniqueParentIds = [...new Set(parentIds)] + if (uniqueParentIds.length === 1) { + // 所有部门属于同一个父部门,显示父部门名称 + const parentDept = departmentList.value.find(d => d.id === uniqueParentIds[0]) + if (parentDept) { + return parentDept.deptName + } + } + } + + // 部门属于不同父部门,显示具体名称 + const deptNames = depts.map(d => d!.deptName) if (deptNames.length <= 3) { return deptNames.join('、') } - // 如果部门太多,显示前2个加省略 return `${deptNames.slice(0, 2).join('、')}等${deptNames.length}个部门` }