diff --git a/backend/src/main/java/com/designhub/service/TaskService.java b/backend/src/main/java/com/designhub/service/TaskService.java index 96b7990..d3f15e3 100644 --- a/backend/src/main/java/com/designhub/service/TaskService.java +++ b/backend/src/main/java/com/designhub/service/TaskService.java @@ -484,7 +484,7 @@ public class TaskService { item.setEstimatedHours(groupTotalHours); item.setSortOrder(itemIndex); item.setProgress(0); - + // 如果是assigned模式,设置子任务的接收人(从该组的第一个任务项获取) if ("assigned".equals(dto.getReleaseType()) && !groupItems.isEmpty()) { Long itemReceiverId = groupItems.get(0).getReceiverId(); @@ -1990,17 +1990,17 @@ public class TaskService { log.debug("接单部门积分统计: deptIds={}, totalScore={}", deptAndChildIds, totalScore); } else { // 个人视角:统计当前用户获得的积分 - LambdaQueryWrapper scoreQuery = new LambdaQueryWrapper() - .eq(Task::getStatus, "completed") - .select(Task::getScoreReward); - if (!isAdmin) { - scoreQuery.eq(Task::getReceiverId, userId); - } - List completedTasks = taskMapper.selectList(scoreQuery); + LambdaQueryWrapper scoreQuery = new LambdaQueryWrapper() + .eq(Task::getStatus, "completed") + .select(Task::getScoreReward); + if (!isAdmin) { + scoreQuery.eq(Task::getReceiverId, userId); + } + List completedTasks = taskMapper.selectList(scoreQuery); totalScore = completedTasks.stream() - .filter(t -> t.getScoreReward() != null) - .mapToInt(t -> t.getScoreReward().intValue()) - .sum(); + .filter(t -> t.getScoreReward() != null) + .mapToInt(t -> t.getScoreReward().intValue()) + .sum(); } // 获取当月发布的任务数 @@ -2022,9 +2022,9 @@ public class TaskService { } else { // 当前用户发布的任务数 publishedCount = taskMapper.selectCount(new LambdaQueryWrapper() - .eq(Task::getPublisherId, userId) - .ge(Task::getCreateTime, monthStart) - .le(Task::getCreateTime, monthEnd) + .eq(Task::getPublisherId, userId) + .ge(Task::getCreateTime, monthStart) + .le(Task::getCreateTime, monthEnd) .eq(Task::getDeleted, 0)); } diff --git a/frontend/src/views/CreateTask.vue b/frontend/src/views/CreateTask.vue index 100c32a..c31fc06 100644 --- a/frontend/src/views/CreateTask.vue +++ b/frontend/src/views/CreateTask.vue @@ -373,7 +373,7 @@ @@ -897,11 +897,11 @@ const removeTaskType = (index: number) => { } } -// 处理SPU输入(只允许大写字母和数字) +// 处理SPU输入(只允许大写字母、数字和横杠) const handleSpuInput = (e: Event) => { const input = e.target as HTMLInputElement - // 移除非大写字母和数字的字符,同时将小写字母转为大写 - const filtered = input.value.toUpperCase().replace(/[^A-Z0-9]/g, '') + // 移除非大写字母、数字和横杠的字符,同时将小写字母转为大写 + const filtered = input.value.toUpperCase().replace(/[^A-Z0-9\-]/g, '') formData.spuInfo = filtered } diff --git a/frontend/src/views/Settings.vue b/frontend/src/views/Settings.vue index dcbba0d..96c885c 100644 --- a/frontend/src/views/Settings.vue +++ b/frontend/src/views/Settings.vue @@ -523,7 +523,7 @@ :loading="loading.departments" row-key="id" :pagination="false" - :default-expand-all-rows="true" + :default-expand-all-rows="false" :indent-size="24" >