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

View File

@@ -54,15 +54,15 @@
</div> </div>
</template> </template>
<template v-else-if="type === 'url'"> <template v-else-if="type === 'url'">
<div class="url-list flex"> <TransitionGroup name="url-card" class="url-list flex" tag="div">
<div class="url-item flex flex-col" v-for="item in urlList" :key="item"> <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)"> <div class="url-title" v-ellipsis="3" @click="handleClickUrl(item)">
{{ item.title }} {{ item.title }}
<img src="@/assets/images/link-outer.png" class="link-outer" /> <img src="@/assets/images/link-outer.png" class="link-outer" />
</div> </div>
<div class="url-link" v-ellipsis="3">{{ item.url }}</div> <div class="url-link" v-ellipsis="3">{{ item.url }}</div>
</div> </div>
</div> </TransitionGroup>
</template> </template>
<div v-else class="reportBorder"> <div v-else class="reportBorder">
<div class="report"> <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 { .url-list {
flex: 1; flex: 1;
flex-wrap: wrap; flex-wrap: wrap;