feat: 收到webaddress事件直接展示卡片

This commit is contained in:
2026-06-04 16:18:56 +08:00
parent 6934f3e4fe
commit 3128e3cc08
2 changed files with 21 additions and 8 deletions

View File

@@ -362,7 +362,6 @@
let hasSketchEvent = false
let hasReportEvent = false
let hasUrlEvent = false
try {
let flag = true
while (flag) {
@@ -374,9 +373,6 @@
if (hasReportEvent) {
aiMessage.text += `<slot slot-name="card" title="Report" content="Report"></slot>`
}
if (hasUrlEvent) {
aiMessage.text += `<slot slot-name="url"></slot>`
}
aiMessage.streaming = false
aiMessage.loading = false
@@ -470,7 +466,11 @@
if (jsonData.webAddress) {
const parsed = JSON.parse(jsonData.webAddress)
aiMessage.webAddress = parsed
hasUrlEvent = true
aiMessage.loading = false
if (!aiMessage._urlSlotAdded) {
aiMessage.text += `<slot slot-name="url"></slot>`
aiMessage._urlSlotAdded = true
}
if (String(aiMessage.sessionId) === String(projectStore.state.id)) {
triggerOpenUrls(parsed)
}

View File

@@ -54,15 +54,15 @@
</div>
</template>
<template v-else-if="type === 'url'">
<div class="url-list flex">
<div class="url-item flex flex-col" v-for="item in urlList" :key="item">
<TransitionGroup name="url-card" class="url-list flex" tag="div">
<div class="url-item flex flex-col" v-for="item in urlList" :key="item.url">
<div class="url-title" v-ellipsis="3" @click="handleClickUrl(item)">
{{ item.title }}
<img src="@/assets/images/link-outer.png" class="link-outer" />
</div>
<div class="url-link" v-ellipsis="3">{{ item.url }}</div>
</div>
</div>
</TransitionGroup>
</template>
<div v-else class="reportBorder">
<div class="report">
@@ -433,6 +433,19 @@
}
}
}
.url-card-enter-active {
animation: urlCardIn 0.4s ease-out;
}
@keyframes urlCardIn {
from {
opacity: 0;
transform: translateY(2rem) scale(0.95);
}
to {
opacity: 1;
transform: translateY(0) scale(1);
}
}
.url-list {
flex: 1;
flex-wrap: wrap;