diff --git a/src/views/home/agent/components/Agent.vue b/src/views/home/agent/components/Agent.vue
index 2bb695e..211b18a 100644
--- a/src/views/home/agent/components/Agent.vue
+++ b/src/views/home/agent/components/Agent.vue
@@ -353,10 +353,7 @@
})
}
})
- // 通知 Preview 有新 sketch 正在加载,传入 sketch 索引
- MyEvent.emit('loading-sketch', sketchList.value.length - 1)
MyEvent.emit('OpenSketch')
- // contentBody += ``
}
if (eventName === 'reportName' || eventName === 'reportTitle') {
aiMessage.reportName = jsonData.reportName || jsonData.reportTitle
@@ -470,13 +467,7 @@
}
// 处理对话列表,将连续的 assistant 消息合并为一条
- const processDialogue = (
- dialogue,
- startIndex,
- existingImgList,
- sessionId,
- firstReportIndex = -1
- ) => {
+ const processDialogue = (dialogue, startIndex, existingImgList, sessionId) => {
if (!dialogue || dialogue.length === 0) return []
const result = []
@@ -485,7 +476,6 @@
while (i < dialogue.length) {
const item = dialogue[i]
if (item.role === 'user') {
- // user 角色直接添加
result.push({
...item,
text: item.content,
@@ -495,42 +485,42 @@
})
i++
} else if (item.role === 'assistant') {
- // assistant 角色,拼接直到下一个 user
-
let combinedContent = item.content || ''
let combinedThinkingText = item.reasoning || ''
let combinedImageUrl = item.image_url || null
let reportName = item.reportName || null
let webAddress = item.webAddress || null
- // 继续往后找连续的 assistant 消息
+ let combinedReport = item.report || ''
+ let hasReportSlot = !!item.report
+ let hasUrlSlot = !!item.webAddress
+
let j = i + 1
while (j < dialogue.length && dialogue[j].role === 'assistant') {
- combinedContent += dialogue[j].content || ''
- combinedThinkingText += dialogue[j].reasoning || ''
- // 如果有 image_url 则保留
- if (dialogue[j].image_url) {
- combinedImageUrl = dialogue[j].image_url
- }
- if (dialogue[j].reportName) {
- reportName = dialogue[j].reportName
- }
- if (dialogue[j].webAddress) {
- combinedContent += ``
- webAddress = dialogue[j].webAddress
- // console.log('webAddress22222222222222', dialogue[j].webAddress)
- // debugger
+ const next = dialogue[j]
+ combinedContent += next.content || ''
+ combinedThinkingText += next.reasoning || ''
+ combinedReport += next.report || ''
+ if (next.image_url) combinedImageUrl = next.image_url
+ if (next.reportName) reportName = next.reportName
+ if (next.report) hasReportSlot = true
+ if (next.webAddress) {
+ webAddress = next.webAddress
+ hasUrlSlot = true
}
j++
}
- // 如果 firstReportIndex 在当前合并范围内,则把 slot 追加到末尾
- if (firstReportIndex >= i && firstReportIndex < j) {
+ if (hasUrlSlot) {
+ combinedContent += ``
+ }
+ if (hasReportSlot) {
combinedContent += ``
}
result.push({
...item,
reportName,
+ report: combinedReport,
content: combinedContent,
thinkingText: combinedThinkingText,
text: combinedContent,
@@ -543,7 +533,6 @@
i = j
} else {
- // 其他角色直接添加
result.push({
...item,
text: item.content,
@@ -560,35 +549,11 @@
const processSession = (session, imgList, ancestorsList, idCounterRef) => {
if (!session) return
- // 1. 找到第一个 report 项的索引,供 processDialogue 使用
- let firstReportIndex = -1
- if (session.dialogue) {
- for (let i = 0; i < session.dialogue.length; i++) {
- if (session.dialogue[i].report) {
- firstReportIndex = i
- break
- }
- }
- }
-
- // 2. 收集 report 内容并保存到 sessionStorage
- let reportStr = ''
- session.dialogue?.forEach((item) => {
- if (item.report) {
- reportStr += item.report
- }
- })
- if (reportStr && session.id) {
- sessionStorage.setItem(`reportsContent_${session.id}`, reportStr)
- }
-
- // 3. 收集 sketchIDAndUrl 到 imgList
if (session.sketchIDAndUrl) {
imgList.push(session.sketchIDAndUrl)
}
- // 4. 处理 dialogue
- const list = processDialogue(session.dialogue, 0, imgList, session.id, firstReportIndex)
+ const list = processDialogue(session.dialogue, 0, imgList, session.id)
list.forEach((el) => {
el.id = idCounterRef.value++
})
@@ -636,6 +601,7 @@
item.text += ``
}
})
+ console.log('ancestorslist', ancestorsList)
messageList.value = [...ancestorsList]
params.versionID = current?.id
sketchList.value = imgList
diff --git a/src/views/home/agent/components/List.vue b/src/views/home/agent/components/List.vue
index a85a3ea..7cc345e 100644
--- a/src/views/home/agent/components/List.vue
+++ b/src/views/home/agent/components/List.vue
@@ -2,7 +2,7 @@
-
+