|
85 | 85 | </Column> |
86 | 86 | <Column field="scanUrl" header="扫描URL" :style="{ minWidth: '250px', maxWidth: '600px' }" sortable> |
87 | 87 | <template #body="{ data }"> |
88 | | - <div class="url-cell" :title="data.scanUrl"> |
| 88 | + <div |
| 89 | + class="url-cell clickable-url" |
| 90 | + :title="'点击查看HTTP请求信息'" |
| 91 | + @click="goToTaskHttpInfo(data)" |
| 92 | + > |
89 | 93 | {{ data.scanUrl }} |
90 | 94 | </div> |
91 | 95 | </template> |
|
98 | 102 | :value="data.injected ? '存在注入' : '无注入'" |
99 | 103 | :severity="data.injected ? 'danger' : 'success'" |
100 | 104 | :icon="data.injected ? 'pi pi-exclamation-triangle' : 'pi pi-check-circle'" |
| 105 | + :class="{ 'clickable-tag': data.injected }" |
| 106 | + @click="data.injected && goToTaskResults(data)" |
| 107 | + v-tooltip.top="data.injected ? '点击查看扫描结果' : ''" |
101 | 108 | /> |
102 | 109 | <Tag v-else value="未知" severity="secondary" icon="pi pi-question-circle" /> |
103 | 110 | </template> |
@@ -428,6 +435,16 @@ function goToTaskLogs(task: any) { |
428 | 435 | router.push({ path: `/tasks/${task.taskid}`, query: { tab: '4' } }) |
429 | 436 | } |
430 | 437 |
|
| 438 | +function goToTaskResults(task: any) { |
| 439 | + // 跳转到任务详情页的扫描结果标签页(value="3") |
| 440 | + router.push({ path: `/tasks/${task.taskid}`, query: { tab: '3' } }) |
| 441 | +} |
| 442 | +
|
| 443 | +function goToTaskHttpInfo(task: any) { |
| 444 | + // 跳转到任务详情页的HTTP请求信息标签页(value="1") |
| 445 | + router.push({ path: `/tasks/${task.taskid}`, query: { tab: '1' } }) |
| 446 | +} |
| 447 | +
|
431 | 448 | async function stopTask(taskId: string) { |
432 | 449 | await taskStore.stopTask(taskId) |
433 | 450 | } |
@@ -745,6 +762,27 @@ function confirmDeleteAll() { |
745 | 762 | } |
746 | 763 | } |
747 | 764 |
|
| 765 | +// 可点击URL样式 |
| 766 | +.clickable-url { |
| 767 | + cursor: pointer; |
| 768 | + color: #6366f1; |
| 769 | + text-decoration: none; |
| 770 | + transition: all 0.2s ease; |
| 771 | +
|
| 772 | + &:hover { |
| 773 | + color: #4f46e5; |
| 774 | + background: rgba(99, 102, 241, 0.1); |
| 775 | + text-decoration: underline; |
| 776 | + transform: translateY(-1px); |
| 777 | + box-shadow: 0 2px 4px rgba(99, 102, 241, 0.2); |
| 778 | + border-radius: 4px; |
| 779 | + } |
| 780 | +
|
| 781 | + &:active { |
| 782 | + transform: translateY(0); |
| 783 | + } |
| 784 | +} |
| 785 | +
|
748 | 786 | .clickable-id { |
749 | 787 | cursor: pointer; |
750 | 788 | padding: 4px 8px; |
|
0 commit comments