From a6d620d114566c4d80e76635cc3c07c97cc41b54 Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 6 Jan 2026 22:50:18 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BB=BB=E5=8A=A1=E6=A0=87=E9=A2=98?= =?UTF-8?q?=E6=94=B9=E4=B8=BASPU+=E5=93=81=E7=89=8C+=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=EF=BC=8CSPU=E8=BE=93=E5=85=A5=E9=99=90=E5=88=B6=E5=A4=A7?= =?UTF-8?q?=E5=86=99=E5=AD=97=E6=AF=8D=E5=92=8C=E6=95=B0=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/TaskApprovalService.java | 10 ++-- .../designhub/service/TaskItemService.java | 18 +++---- frontend/src/views/CreateTask.vue | 53 ++++++++----------- 3 files changed, 36 insertions(+), 45 deletions(-) diff --git a/backend/src/main/java/com/designhub/service/TaskApprovalService.java b/backend/src/main/java/com/designhub/service/TaskApprovalService.java index 39e8d4b..5bcca3f 100644 --- a/backend/src/main/java/com/designhub/service/TaskApprovalService.java +++ b/backend/src/main/java/com/designhub/service/TaskApprovalService.java @@ -657,11 +657,11 @@ public class TaskApprovalService { if (allowedDeptIds != null && !allowedDeptIds.isEmpty()) { String[] deptIds = allowedDeptIds.split(","); - if (deptIds.length > 0) { - Long deptId = Long.parseLong(deptIds[0].trim()); - Department dept = departmentMapper.selectById(deptId); - if (dept != null && dept.getLeaderId() != null) { - return dept.getLeaderId(); + if (deptIds.length > 0) { + Long deptId = Long.parseLong(deptIds[0].trim()); + Department dept = departmentMapper.selectById(deptId); + if (dept != null && dept.getLeaderId() != null) { + return dept.getLeaderId(); } } } diff --git a/backend/src/main/java/com/designhub/service/TaskItemService.java b/backend/src/main/java/com/designhub/service/TaskItemService.java index 3531806..ac058f8 100644 --- a/backend/src/main/java/com/designhub/service/TaskItemService.java +++ b/backend/src/main/java/com/designhub/service/TaskItemService.java @@ -157,17 +157,17 @@ public class TaskItemService { } if (allowedDeptIds != null && !allowedDeptIds.isEmpty()) { - // 检查用户部门是否在允许列表中 + // 检查用户部门是否在允许列表中 String[] allowedIds = allowedDeptIds.split(","); - boolean isAllowed = false; - for (String allowedId : allowedIds) { - if (allowedId.trim().equals(String.valueOf(user.getDeptId()))) { - isAllowed = true; - break; - } + boolean isAllowed = false; + for (String allowedId : allowedIds) { + if (allowedId.trim().equals(String.valueOf(user.getDeptId()))) { + isAllowed = true; + break; } - if (!isAllowed) { - throw new BusinessException(ResultCode.FORBIDDEN, "您的部门无权接收此类型的任务"); + } + if (!isAllowed) { + throw new BusinessException(ResultCode.FORBIDDEN, "您的部门无权接收此类型的任务"); } } } diff --git a/frontend/src/views/CreateTask.vue b/frontend/src/views/CreateTask.vue index 2138296..0c6d89c 100644 --- a/frontend/src/views/CreateTask.vue +++ b/frontend/src/views/CreateTask.vue @@ -52,7 +52,7 @@ />
- 标题将根据SPU信息、平台、品牌、任务子类型、需求类型自动生成 + 标题将根据SPU、品牌、平台自动生成
@@ -352,11 +352,11 @@ - @@ -890,7 +890,15 @@ const removeTaskType = (index: number) => { } } -// 自动生成任务标题 +// 处理SPU输入(只允许大写字母和数字) +const handleSpuInput = (e: Event) => { + const input = e.target as HTMLInputElement + // 移除非大写字母和数字的字符,同时将小写字母转为大写 + const filtered = input.value.toUpperCase().replace(/[^A-Z0-9]/g, '') + formData.spuInfo = filtered +} + +// 自动生成任务标题(SPU + 品牌名 + 平台名) const generateTitle = () => { const parts: string[] = [] @@ -899,15 +907,7 @@ const generateTitle = () => { parts.push(formData.spuInfo.trim()) } - // 2. 平台名称 - if (formData.platformId) { - const platform = platforms.value.find((p: any) => p.id === formData.platformId) - if (platform) { - parts.push(platform.name) - } - } - - // 3. 品牌名称 + // 2. 品牌名称 if (formData.brandId) { const brand = brands.value.find((b: any) => b.id === formData.brandId) if (brand) { @@ -915,16 +915,11 @@ const generateTitle = () => { } } - // 4. 任务子类型 - if (formData.taskSubType) { - parts.push(formData.taskSubType) - } - - // 5. 需求类型(第一个任务类型名称) - if (formData.taskTypes.length > 0 && formData.taskTypes[0].taskTypeId) { - const taskType = getTaskTypeInfo(formData.taskTypes[0].taskTypeId) - if (taskType) { - parts.push(taskType.name) + // 3. 平台名称 + if (formData.platformId) { + const platform = platforms.value.find((p: any) => p.id === formData.platformId) + if (platform) { + parts.push(platform.name) } } @@ -934,20 +929,16 @@ const generateTitle = () => { } } -// 监听相关字段变化,自动生成标题 +// 监听相关字段变化,自动生成标题(SPU + 品牌 + 平台) watch( () => [ formData.spuInfo, - formData.platformId, formData.brandId, - formData.taskSubType, - formData.taskTypes[0]?.taskTypeId + formData.platformId ], () => { - // 只有当标题为空或是之前自动生成的标题时才自动更新 generateTitle() - }, - { deep: true } + } ) // 计算预估积分(累加所有任务类型)