Commit f0b87df8 by Liu

fix:提质增效返回时参数逻辑

parent e28c4017
...@@ -556,23 +556,6 @@ export const Chat: React.FC = () => { ...@@ -556,23 +556,6 @@ export const Chat: React.FC = () => {
} }
} }
// 如果从收藏页返回,触发事件通知 HomeNew 刷新问题列表
if (fromCollect) {
const eventToolId = toolId || currentToolId || safeSessionStorageGetItem('currentToolId') || ''
console.log('[Chat] 检测到从收藏页返回 (fromCollect=true) - 准备触发 refreshQuestionsFromCollect 事件')
console.log('[Chat] refreshQuestionsFromCollect - 传递的 toolId:', eventToolId)
// 清除 sessionStorage 中的标记,避免影响后续路由
sessionStorage.removeItem('fromCollect')
// 延迟触发事件,确保 Home 组件的监听器已注册
setTimeout(() => {
window.dispatchEvent(new CustomEvent('refreshQuestionsFromCollect', {
detail: {
toolId: eventToolId,
},
}))
console.log('[Chat] refreshQuestionsFromCollect 事件已触发')
}, 100)
}
await waitForToken() await waitForToken()
const res = await fetchUserQaRecordPage(finalConversationId, toolId || safeSessionStorageGetItem('currentToolId') || '') const res = await fetchUserQaRecordPage(finalConversationId, toolId || safeSessionStorageGetItem('currentToolId') || '')
console.log('qaRes chatEditor2222222', res) console.log('qaRes chatEditor2222222', res)
...@@ -617,6 +600,23 @@ export const Chat: React.FC = () => { ...@@ -617,6 +600,23 @@ export const Chat: React.FC = () => {
} }
// 无条件同步到 sessionStorage,确保 ChatEditor 和 handleSubmitQuestion 能获取到正确的 toolId // 无条件同步到 sessionStorage,确保 ChatEditor 和 handleSubmitQuestion 能获取到正确的 toolId
sessionStorage.setItem('currentToolId', toolIdFromState) sessionStorage.setItem('currentToolId', toolIdFromState)
// 如果从收藏页返回,在确定 toolId 后触发事件通知 HomeNew 刷新问题列表
if (fromCollect) {
const eventToolId = toolIdFromState || toolId || currentToolId || safeSessionStorageGetItem('currentToolId') || ''
console.log('[Chat] 检测到从收藏页返回 (fromCollect=true) - 准备触发 refreshQuestionsFromCollect 事件')
console.log('[Chat] refreshQuestionsFromCollect - 传递的 toolId:', eventToolId)
// 清除 sessionStorage 中的标记,避免影响后续路由
sessionStorage.removeItem('fromCollect')
// 延迟触发事件,确保 Home 组件的监听器已注册,并且 toolId 已经同步到 sessionStorage
setTimeout(() => {
window.dispatchEvent(new CustomEvent('refreshQuestionsFromCollect', {
detail: {
toolId: eventToolId,
},
}))
console.log('[Chat] refreshQuestionsFromCollect 事件已触发')
}, 100)
}
} }
else { else {
// 如果从 location.state 传递的是 null,清除 toolId // 如果从 location.state 传递的是 null,清除 toolId
...@@ -625,6 +625,21 @@ export const Chat: React.FC = () => { ...@@ -625,6 +625,21 @@ export const Chat: React.FC = () => {
} }
// 清除 sessionStorage,确保制度活化模式正确 // 清除 sessionStorage,确保制度活化模式正确
sessionStorage.removeItem('currentToolId') sessionStorage.removeItem('currentToolId')
// 如果从收藏页返回,在确定 toolId 后触发事件通知 HomeNew 刷新问题列表(制度活化模式)
if (fromCollect) {
console.log('[Chat] 检测到从收藏页返回 (fromCollect=true) - 制度活化模式 - 准备触发 refreshQuestionsFromCollect 事件')
// 清除 sessionStorage 中的标记,避免影响后续路由
sessionStorage.removeItem('fromCollect')
// 延迟触发事件,确保 Home 组件的监听器已注册
setTimeout(() => {
window.dispatchEvent(new CustomEvent('refreshQuestionsFromCollect', {
detail: {
toolId: '', // 制度活化模式,toolId 为空
},
}))
console.log('[Chat] refreshQuestionsFromCollect 事件已触发 - 制度活化模式')
}, 100)
}
} }
// 清除 ref,避免下次路由变化时误用 // 清除 ref,避免下次路由变化时误用
toolIdFromStateRef.current = undefined toolIdFromStateRef.current = undefined
...@@ -649,6 +664,23 @@ export const Chat: React.FC = () => { ...@@ -649,6 +664,23 @@ export const Chat: React.FC = () => {
sessionStorage.setItem('currentToolId', finalToolId) sessionStorage.setItem('currentToolId', finalToolId)
} }
} }
// 如果从收藏页返回,在确定 toolId 后触发事件通知 HomeNew 刷新问题列表
if (fromCollect) {
const eventToolId = finalToolId || toolId || currentToolId || safeSessionStorageGetItem('currentToolId') || ''
console.log('[Chat] 检测到从收藏页返回 (fromCollect=true) - 准备触发 refreshQuestionsFromCollect 事件')
console.log('[Chat] refreshQuestionsFromCollect - 传递的 toolId:', eventToolId)
// 清除 sessionStorage 中的标记,避免影响后续路由
sessionStorage.removeItem('fromCollect')
// 延迟触发事件,确保 Home 组件的监听器已注册,并且 toolId 已经同步到 sessionStorage
setTimeout(() => {
window.dispatchEvent(new CustomEvent('refreshQuestionsFromCollect', {
detail: {
toolId: eventToolId,
},
}))
console.log('[Chat] refreshQuestionsFromCollect 事件已触发')
}, 100)
}
} }
else { else {
// 如果 qaRecords 和 conversation 中都没有 toolId // 如果 qaRecords 和 conversation 中都没有 toolId
...@@ -663,6 +695,23 @@ export const Chat: React.FC = () => { ...@@ -663,6 +695,23 @@ export const Chat: React.FC = () => {
sessionStorage.setItem('currentToolId', currentToolId) sessionStorage.setItem('currentToolId', currentToolId)
} }
} }
// 如果从收藏页返回,在确定 toolId 后触发事件通知 HomeNew 刷新问题列表(制度活化模式或没有 toolId 的情况)
if (fromCollect) {
const eventToolId = currentToolId || safeSessionStorageGetItem('currentToolId') || ''
console.log('[Chat] 检测到从收藏页返回 (fromCollect=true) - 准备触发 refreshQuestionsFromCollect 事件')
console.log('[Chat] refreshQuestionsFromCollect - 传递的 toolId:', eventToolId)
// 清除 sessionStorage 中的标记,避免影响后续路由
sessionStorage.removeItem('fromCollect')
// 延迟触发事件,确保 Home 组件的监听器已注册,并且 toolId 已经同步到 sessionStorage
setTimeout(() => {
window.dispatchEvent(new CustomEvent('refreshQuestionsFromCollect', {
detail: {
toolId: eventToolId,
},
}))
console.log('[Chat] refreshQuestionsFromCollect 事件已触发')
}, 100)
}
} }
} }
} }
......
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