feat: 收到webaddress事件直接展示卡片
This commit is contained in:
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user