Commit ca0d7aea by Liu

fix:历史记录展示

parent a12ce805
......@@ -236,6 +236,32 @@ const ChatEditorBase: React.FC<ChatEditorProps & WithAuthProps> = ({ checkAuth,
newSearchParams.delete('toolId')
setSearchParams(newSearchParams, { replace: true })
}
// 先调用 fetchSessionConversationId 获取会话ID
try {
const requestData = {
busiId: '',
}
const res = await fetchSessionConversationId(requestData)
if (res?.data?.conversationId) {
const conversationId = res.data.conversationId
// 使用获取到的会话ID调用历史会话
const qaRes = await fetchUserQaRecordPage(conversationId, '')
console.log('qaRes chatEditor11111', qaRes)
// 通过自定义事件将历史记录数据传递给父组件进行渲染
window.dispatchEvent(new CustomEvent('toolHistoryLoaded', {
detail: {
conversationId,
toolId: '',
toolName: '制度活化',
qaRecords: qaRes?.data || [],
},
}))
}
}
catch (error) {
console.error('获取会话ID或历史记录失败:', error)
}
}
// 处理工具按钮点击:先创建新会话,再切换工具
......
......@@ -15,7 +15,7 @@ import { fetchUserQaRecordPage } from '@/api/conversation'
import { fetchCheckTokenApi, fetchStreamResponse } from '@/api/chat'
import { fetchToolList } from '@/api/home'
import { clearCurrentToolId, clearShouldSendQuestion, fetchConversations, setCurrentToolId } from '@/store/conversationSlice'
import { getUserRolesForApi, safeSessionStorageGetItem } from '@/lib/utils'
import { getUserRolesForApi } from '@/lib/utils'
import type { RootState } from '@/store'
import { useAppDispatch, useAppSelector } from '@/store/hook'
import ScrollBtoIcon from '@/assets/svg/scrollBto.svg?react'
......@@ -477,17 +477,13 @@ export const Chat: React.FC = () => {
// 制度活化,清除 toolId
dispatch(clearCurrentToolId())
}
// 刷新对话内容
if (currentIdRef.current) {
const toolIdForApi = toolId || safeSessionStorageGetItem('currentToolId') || ''
getUserQaRecordPage(currentIdRef.current, toolIdForApi)
}
// 历史记录加载已由 ChatEditor 通过 toolHistoryLoaded 事件处理,此处不再重复调用
}
window.addEventListener('toolButtonClick', handleToolClickEvent as EventListener)
return () => {
window.removeEventListener('toolButtonClick', handleToolClickEvent as EventListener)
}
}, [dispatch, getUserQaRecordPage])
}, [dispatch])
// 监听工具历史记录加载事件,渲染历史会话
useEffect(() => {
......
......@@ -107,10 +107,11 @@ export const TacticsChat: React.FC = () => {
}
}, [searchParams])
// 读取 from=order 时的 orderMeta 参数(直接从 query 读取,不再使用 sessionStorage)
// 读取 from=tactics&place=order 时的 orderMeta 参数(直接从 query 读取,不再使用 sessionStorage)
const orderMeta = useMemo(() => {
const fromValues = searchParams.getAll('from')
if (!fromValues.includes('order')) {
const from = searchParams.get('from')
const place = searchParams.get('place')
if (from !== 'tactics' || place !== 'order') {
return undefined
}
return {
......@@ -121,6 +122,7 @@ export const TacticsChat: React.FC = () => {
// 仅用于创建会话的额外参数(create_conversation)
const getConversationExtra = useCallback(() => {
if (orderMeta) {
console.log('orderMeta', orderMeta)
// 从 localStorage 读取 userName
const userNameFromStorage = safeLocalStorageGetItem('__USER_NAME__')
let userName = ''
......
......@@ -18,6 +18,16 @@ export const TacticsWelcome: React.FC<TacticsWelcomeProps> = ({ cleared }) => {
const placeFromCache = safeSessionStorageGetItem('__TACTICS_PLACE__')
const isOrderPlace = from === 'tactics' && placeFromCache === 'order'
// 打印路由参数
console.log('TacticsWelcome 路由参数:', {
searchParams: Object.fromEntries(searchParams.entries()),
from,
placeFromCache,
isOrderPlace,
cleared,
url: window.location.href,
})
const welcomeText = cleared
? '暂无分析记录,点击右上方按钮开始新的分析吧!'
: isOrderPlace
......
......@@ -12,7 +12,7 @@ import { useAppDispatch } from '@/store/hook'
import { fetchEfficiencyQuestionList } from '@/api/home'
import SdreamLoading from '@/components/SdreamLoading'
import { fetchLoginByToken, fetchLoginByUid } from '@/api/common'
import { fetchSessionConversationId, fetchUserQaRecordPage } from '@/api/conversation'
import { fetchSessionConversationId } from '@/api/conversation'
import { getUserRolesFromRoute, safeLocalStorageGetItem, safeSessionStorageGetItem, safeSessionStorageRemoveItem, safeSessionStorageSetItem } from '@/lib/utils'
import type { Conversation } from '@/types/conversation'
......@@ -130,10 +130,8 @@ export const Home: React.FC = () => {
dispatch(setCurrentConversation(conversationId))
dispatch(setNavigationFlag(true))
// 获取历史记录
await fetchUserQaRecordPage(conversationId, toolId || undefined)
console.log('qaRes homeNew333333', res)
// 历史记录会在 Chat 页面自动渲染,这里只负责获取
// 历史记录会在 Chat 页面自动渲染,不需要在这里获取
// 移除重复调用,避免接口被调用两次
}
}
catch (error) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment