|
@ -659,10 +659,9 @@ const addStock = (stockData) => { |
|
|
console.log("历史记录股票已标记为已显示"); |
|
|
console.log("历史记录股票已标记为已显示"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 5. 使用nextTick确保DOM更新后启动高度监听器 |
|
|
|
|
|
|
|
|
// 5. 使用nextTick确保DOM更新后完成历史记录恢复 |
|
|
nextTick(() => { |
|
|
nextTick(() => { |
|
|
// 启动页面高度监听器,实时监听内容变化并自动滚动 |
|
|
|
|
|
startHeightObserver(); |
|
|
|
|
|
|
|
|
// 历史记录恢复时不启动内部滚动监听器,完全依赖父组件管理 |
|
|
// 历史记录恢复时不滚动到底部,保持在顶部 |
|
|
// 历史记录恢复时不滚动到底部,保持在顶部 |
|
|
|
|
|
|
|
|
// 6. 历史记录加载完成后,通知父组件重新启用输入框 |
|
|
// 6. 历史记录加载完成后,通知父组件重新启用输入框 |
|
@ -2506,16 +2505,14 @@ async function handleSendMessage(input, onComplete) { |
|
|
// isLoading.value = false; |
|
|
// isLoading.value = false; |
|
|
isPageLoaded.value = true; |
|
|
isPageLoaded.value = true; |
|
|
|
|
|
|
|
|
// 使用nextTick确保DOM更新后清空对话显示并启动高度监听器 |
|
|
|
|
|
|
|
|
// 使用nextTick确保DOM更新后清空对话显示 |
|
|
nextTick(() => { |
|
|
nextTick(() => { |
|
|
messages.value = []; |
|
|
messages.value = []; |
|
|
// 清空已添加股票的记录,避免重复添加 |
|
|
// 清空已添加股票的记录,避免重复添加 |
|
|
addedStocks.value.clear(); |
|
|
addedStocks.value.clear(); |
|
|
// 搜索新数据成功,启用自动滚动 |
|
|
|
|
|
shouldEnableAutoScroll.value = true; |
|
|
|
|
|
// 启动页面高度监听器,实时监听内容变化并自动滚动 |
|
|
|
|
|
startHeightObserver(); |
|
|
|
|
|
// 立即滚动到底部 |
|
|
|
|
|
|
|
|
// 搜索新数据成功,但不启用内部自动滚动监听器,避免与父组件冲突 |
|
|
|
|
|
shouldEnableAutoScroll.value = false; |
|
|
|
|
|
// 只通知父组件滚动到底部,不启动内部监听器 |
|
|
scrollToBottom(); |
|
|
scrollToBottom(); |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
@ -2636,9 +2633,8 @@ async function handleSendMessage(input, onComplete) { |
|
|
messages.value = []; |
|
|
messages.value = []; |
|
|
// 搜索失败恢复场景,不启用自动滚动 |
|
|
// 搜索失败恢复场景,不启用自动滚动 |
|
|
shouldEnableAutoScroll.value = false; |
|
|
shouldEnableAutoScroll.value = false; |
|
|
// 启动页面高度监听器,实时监听内容变化并自动滚动 |
|
|
|
|
|
startHeightObserver(); |
|
|
|
|
|
// 立即滚动到底部 |
|
|
|
|
|
|
|
|
// 不启动内部滚动监听器,避免与父组件冲突 |
|
|
|
|
|
// 只通知父组件滚动到底部 |
|
|
scrollToBottom(); |
|
|
scrollToBottom(); |
|
|
}); |
|
|
}); |
|
|
console.log("请求工作流接口失败,但恢复显示之前的股票数据"); |
|
|
console.log("请求工作流接口失败,但恢复显示之前的股票数据"); |
|
@ -2725,9 +2721,8 @@ async function fetchData(code, market, stockName, queryText, stockId, presetUniq |
|
|
messages.value = []; |
|
|
messages.value = []; |
|
|
// 数据验证失败恢复场景,不启用自动滚动 |
|
|
// 数据验证失败恢复场景,不启用自动滚动 |
|
|
shouldEnableAutoScroll.value = false; |
|
|
shouldEnableAutoScroll.value = false; |
|
|
// 启动页面高度监听器,实时监听内容变化并自动滚动 |
|
|
|
|
|
startHeightObserver(); |
|
|
|
|
|
// 立即滚动到底部 |
|
|
|
|
|
|
|
|
// 不启动内部滚动监听器,避免与父组件冲突 |
|
|
|
|
|
// 只通知父组件滚动到底部 |
|
|
scrollToBottom(); |
|
|
scrollToBottom(); |
|
|
}); |
|
|
}); |
|
|
console.log("数据验证失败,但恢复显示之前的股票数据"); |
|
|
console.log("数据验证失败,但恢复显示之前的股票数据"); |
|
@ -2786,9 +2781,8 @@ async function fetchData(code, market, stockName, queryText, stockId, presetUniq |
|
|
messages.value = []; |
|
|
messages.value = []; |
|
|
// API请求失败恢复场景,不启用自动滚动 |
|
|
// API请求失败恢复场景,不启用自动滚动 |
|
|
shouldEnableAutoScroll.value = false; |
|
|
shouldEnableAutoScroll.value = false; |
|
|
// 启动页面高度监听器,实时监听内容变化并自动滚动 |
|
|
|
|
|
startHeightObserver(); |
|
|
|
|
|
// 立即滚动到底部 |
|
|
|
|
|
|
|
|
// 不启动内部滚动监听器,避免与父组件冲突 |
|
|
|
|
|
// 只通知父组件滚动到底部 |
|
|
scrollToBottom(); |
|
|
scrollToBottom(); |
|
|
}); |
|
|
}); |
|
|
console.log("API请求失败,但恢复显示之前的股票数据"); |
|
|
console.log("API请求失败,但恢复显示之前的股票数据"); |
|
@ -2830,9 +2824,8 @@ async function fetchData(code, market, stockName, queryText, stockId, presetUniq |
|
|
messages.value = []; |
|
|
messages.value = []; |
|
|
// 网络异常恢复场景,不启用自动滚动 |
|
|
// 网络异常恢复场景,不启用自动滚动 |
|
|
shouldEnableAutoScroll.value = false; |
|
|
shouldEnableAutoScroll.value = false; |
|
|
// 启动页面高度监听器,实时监听内容变化并自动滚动 |
|
|
|
|
|
startHeightObserver(); |
|
|
|
|
|
// 立即滚动到底部 |
|
|
|
|
|
|
|
|
// 不启动内部滚动监听器,避免与父组件冲突 |
|
|
|
|
|
// 只通知父组件滚动到底部 |
|
|
scrollToBottom(); |
|
|
scrollToBottom(); |
|
|
}); |
|
|
}); |
|
|
console.log("网络异常,但恢复显示之前的股票数据"); |
|
|
console.log("网络异常,但恢复显示之前的股票数据"); |
|
@ -3561,13 +3554,12 @@ onMounted(async () => { |
|
|
|
|
|
|
|
|
// 恢复页面加载状态 |
|
|
// 恢复页面加载状态 |
|
|
isPageLoaded.value = true; |
|
|
isPageLoaded.value = true; |
|
|
// 使用nextTick确保DOM更新后清空对话显示并启动高度监听器 |
|
|
|
|
|
|
|
|
// 使用nextTick确保DOM更新后清空对话显示 |
|
|
nextTick(() => { |
|
|
nextTick(() => { |
|
|
messages.value = []; |
|
|
messages.value = []; |
|
|
// 组件挂载时恢复数据场景,不启用自动滚动 |
|
|
|
|
|
|
|
|
// 组件挂载时恢复数据场景,不启用自动滚动,完全依赖父组件管理 |
|
|
shouldEnableAutoScroll.value = false; |
|
|
shouldEnableAutoScroll.value = false; |
|
|
// 启动页面高度监听器,实时监听内容变化并自动滚动 |
|
|
|
|
|
startHeightObserver(); |
|
|
|
|
|
|
|
|
// 不启动内部滚动监听器,避免与父组件冲突 |
|
|
// 组件挂载时恢复数据不滚动到底部,保持在顶部 |
|
|
// 组件挂载时恢复数据不滚动到底部,保持在顶部 |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|