diff --git a/src/assets/icons/arrowDown.svg b/src/assets/icons/arrowDown.svg new file mode 100644 index 0000000..bf1e98b --- /dev/null +++ b/src/assets/icons/arrowDown.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/checked.svg b/src/assets/icons/checked.svg new file mode 100644 index 0000000..661a55c --- /dev/null +++ b/src/assets/icons/checked.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/images/sketch-card.png b/src/assets/images/sketch-card.png new file mode 100644 index 0000000..2a9ec5f Binary files /dev/null and b/src/assets/images/sketch-card.png differ diff --git a/src/lang/en.ts b/src/lang/en.ts index c49a54a..3cbf6e9 100644 --- a/src/lang/en.ts +++ b/src/lang/en.ts @@ -154,6 +154,7 @@ export default { Download: 'Download', deleteSuccess: 'Successfully deleted', thinking: 'Thinking...', + thinkComplete: 'Thinking complete.', }, // Version Tree diff --git a/src/lang/zh-cn.ts b/src/lang/zh-cn.ts index 6389846..43a3b67 100644 --- a/src/lang/zh-cn.ts +++ b/src/lang/zh-cn.ts @@ -148,7 +148,8 @@ export default { '复制失败。您的浏览器可能限制了剪贴板访问,请允许浏览器访问剪贴板或尝试手动复制。', Download: '下载', deleteSuccess: '删除成功', - thinking:'已思考' + thinking:'已思考', + thinkComplete: '思考完成。' }, // Version Tree diff --git a/src/views/home/agent/components/Agent.vue b/src/views/home/agent/components/Agent.vue index b2dbc24..8e21826 100644 --- a/src/views/home/agent/components/Agent.vue +++ b/src/views/home/agent/components/Agent.vue @@ -156,7 +156,6 @@ loading: true, thinking: false, thinkingText: '', - thinkingCollapsed: false, streaming: true }) messageList.value.push(aiMessage) @@ -309,7 +308,7 @@ // } if (eventName === 'tool') { - MyEvent.emit('loading-sketch') + MyEvent.emit('loading-sketch', sketchList.value.length) } if (dataLines.length === 0) continue @@ -330,7 +329,10 @@ sketchList.value.push({ [Object.keys(jsonData)[0]]: jsonData[Object.keys(jsonData)[0]] }) + // 通知 Preview 有新 sketch 正在加载,传入 sketch 索引 + MyEvent.emit('loading-sketch', sketchList.value.length - 1) MyEvent.emit('OpenSketch') + contentBody += `` } if (eventName === 'report') { reportsContent.value += jsonData.report @@ -575,6 +577,15 @@ // 延迟设置新数据,确保 UI 有时间响应清空操作 nextTick(() => { + // 找到每个 sessionId 对应的最后一项,插入sketch卡片 + const sessionLastIndexMap = new Map() + ancestorsList.forEach((item, index) => { + sessionLastIndexMap.set(item.sessionId, index) + }) + sessionLastIndexMap.forEach((lastIndex) => { + ancestorsList[lastIndex].text += '' + }) + messageList.value = [...ancestorsList] params.versionID = current?.id sketchList.value = imgList diff --git a/src/views/home/agent/components/Item.vue b/src/views/home/agent/components/Item.vue index fbc7638..1597d49 100644 --- a/src/views/home/agent/components/Item.vue +++ b/src/views/home/agent/components/Item.vue @@ -16,22 +16,40 @@ class="img-item" /> -
+ +
+ {{ + t('agent.thinking') + }} + + {{ + t('agent.thinkComplete') + }} +
+
-
+
{{ content.thinkingText }}
- + -->
- +
{ - props.content.thinkingCollapsed = !props.content.thinkingCollapsed + thinkingCollapsed.value = !thinkingCollapsed.value } const handleClickReport = () => { @@ -241,6 +263,9 @@ MyEvent.emit('openUrls', props.content.webAddress) // 点击显示来源 } + const handleClickSketch = () => { + MyEvent.emit('openSketch') + } \ No newline at end of file diff --git a/src/views/home/components/Input.vue b/src/views/home/components/Input.vue index 8918dac..f3062d1 100644 --- a/src/views/home/components/Input.vue +++ b/src/views/home/components/Input.vue @@ -465,7 +465,7 @@ // 打字机效果显示placeholder文本 const placeholderText = - 'Generate a furniture trending report for 2025, including popular styles and design directions.' + 'Generate a furniture trending report for 2026, including popular styles and design directions.' typeWriterEffect(placeholderSpan, placeholderText) const removePlaceholderOnInput = () => { @@ -1378,6 +1378,7 @@ .agent-modal { // width: 14.6rem; // height: 8.5rem; + row-gap: 1.2rem; font-family: 'Medium'; font-weight: 500; @@ -1388,6 +1389,7 @@ box-shadow: 0px 6.53px 32.63px 0px #0000000d; border-radius: 1rem; padding: 1.2rem 1.4rem; + transform: translateX(calc(50% - 1.6rem)); .c-svg { width: initial; width: 1rem;