feat: 搜索功能支持任务编号,所有页面卡片显示任务编号

1. 后端 TaskMapper 和 TaskItemMapper 增加 task_no 和 item_no 搜索支持
2. 前端搜索框 placeholder 更新为包含任务编号
3. 进行中任务、已完成任务、我发起的任务卡片底部添加任务编号显示
4. 任务编号支持点击复制
This commit is contained in:
Your Name 2026-01-15 16:29:22 +08:00
parent eeeba7b685
commit 37a35e8cb5
3 changed files with 42 additions and 5 deletions

View File

@ -49,6 +49,8 @@ public interface TaskItemMapper extends BaseMapper<TaskItem> {
"<if test='taskTypeId != null'> AND ti.task_type_id = #{taskTypeId}</if> " +
"<if test='keyword != null and keyword != \"\"'> " +
" AND (t.title LIKE CONCAT('%', #{keyword}, '%') " +
" OR t.task_no LIKE CONCAT('%', #{keyword}, '%') " +
" OR ti.item_no LIKE CONCAT('%', #{keyword}, '%') " +
" OR t.spu_info LIKE CONCAT('%', #{keyword}, '%') " +
" OR u.real_name LIKE CONCAT('%', #{keyword}, '%'))" +
"</if> " +

View File

@ -47,6 +47,7 @@ public interface TaskMapper extends BaseMapper<Task> {
"<if test='maxScore != null'> AND t.score &lt;= #{maxScore}</if>" +
"<if test='keyword != null and keyword != \"\"'> " +
" AND (t.title LIKE CONCAT('%', #{keyword}, '%') " +
" OR t.task_no LIKE CONCAT('%', #{keyword}, '%') " +
" OR t.spu_info LIKE CONCAT('%', #{keyword}, '%') " +
" OR t.remark LIKE CONCAT('%', #{keyword}, '%') " +
" OR u.real_name LIKE CONCAT('%', #{keyword}, '%'))" +
@ -111,6 +112,7 @@ public interface TaskMapper extends BaseMapper<Task> {
"<if test='maxScore != null'> AND t.score &lt;= #{maxScore}</if>" +
"<if test='keyword != null and keyword != \"\"'> " +
" AND (t.title LIKE CONCAT('%', #{keyword}, '%') " +
" OR t.task_no LIKE CONCAT('%', #{keyword}, '%') " +
" OR t.spu_info LIKE CONCAT('%', #{keyword}, '%') " +
" OR t.remark LIKE CONCAT('%', #{keyword}, '%') " +
" OR u.real_name LIKE CONCAT('%', #{keyword}, '%'))" +

View File

@ -63,7 +63,7 @@
<div class="search-row">
<a-input-search
v-model:value="filters.keyword"
placeholder="搜索任务标题、SPU信息、发布人..."
placeholder="搜索任务编号、标题、SPU信息、发布人..."
class="search-input"
@search="handleFilterChange"
@pressEnter="handleFilterChange"
@ -413,7 +413,7 @@
<div class="search-row">
<a-input-search
v-model:value="reviewFilters.keyword"
placeholder="搜索任务标题、SPU信息、发布人..."
placeholder="搜索任务编号、标题、SPU信息、发布人..."
class="search-input"
@search="loadReviewTasks"
@pressEnter="loadReviewTasks"
@ -763,7 +763,7 @@
<div class="search-row">
<a-input-search
v-model:value="inProgressFilters.keyword"
placeholder="搜索任务标题、SPU信息、发布人..."
placeholder="搜索任务编号、标题、SPU信息、发布人..."
class="search-input"
@search="loadInProgressTasks"
@pressEnter="loadInProgressTasks"
@ -1096,6 +1096,17 @@
<!-- 时间信息 -->
<div class="task-footer">
<div class="footer-item task-no-item">
<Icon name="hash" size="sm" color="#31f08b" />
<span style="color: #ffffff;">编号: {{ task.isSubTask ? task.itemNo : task.taskNo }}</span>
<Icon
name="copy"
size="xs"
class="copy-icon"
@click.stop="handleCopyTaskNo(task.isSubTask ? task.itemNo : task.taskNo)"
title="复制任务编号"
/>
</div>
<div class="footer-item">
<Icon name="calendar" size="sm" color="#31f08b" />
<span style="color: #ffffff;">发布: {{ formatTime(task.createTime) }}</span>
@ -1157,7 +1168,7 @@
<div class="search-row">
<a-input-search
v-model:value="completedFilters.keyword"
placeholder="搜索任务标题、SPU信息、发布人..."
placeholder="搜索任务编号、标题、SPU信息、发布人..."
class="search-input"
@search="loadCompletedTasks"
@pressEnter="loadCompletedTasks"
@ -1441,6 +1452,17 @@
<!-- 时间信息 -->
<div class="task-footer">
<div class="footer-item task-no-item">
<Icon name="hash" size="sm" color="#31f08b" />
<span style="color: #ffffff;">编号: {{ task.isSubTask ? task.itemNo : task.taskNo }}</span>
<Icon
name="copy"
size="xs"
class="copy-icon"
@click.stop="handleCopyTaskNo(task.isSubTask ? task.itemNo : task.taskNo)"
title="复制任务编号"
/>
</div>
<div class="footer-item">
<Icon name="calendar" size="sm" color="#31f08b" />
<span style="color: #ffffff;">发布: {{ formatDate(task.createTime) }}</span>
@ -1507,7 +1529,7 @@
<div class="search-row">
<a-input-search
v-model:value="publishedFilters.keyword"
placeholder="搜索任务标题、SPU信息、发布人..."
placeholder="搜索任务编号、标题、SPU信息、发布人..."
class="search-input"
@search="loadPublishedTasks"
@pressEnter="loadPublishedTasks"
@ -1860,6 +1882,17 @@
<!-- 时间信息 -->
<div class="task-footer">
<div class="footer-item task-no-item">
<Icon name="hash" size="sm" color="#31f08b" />
<span style="color: #ffffff;">编号: {{ task.taskNo }}</span>
<Icon
name="copy"
size="xs"
class="copy-icon"
@click.stop="handleCopyTaskNo(task.taskNo)"
title="复制任务编号"
/>
</div>
<div class="footer-item">
<Icon name="calendar" size="sm" color="#31f08b" />
<span style="color: #ffffff;">发布: {{ formatTime(task.createTime) }}</span>