Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
sdream-ai-fe
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
侯明涛
sdream-ai-fe
Commits
06358447
Commit
06358447
authored
Apr 17, 2026
by
Liu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix:上线漏洞
parent
91c11f7b
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
38 additions
and
15 deletions
+38
-15
src/components/FilePreviewModal/DocxPreview.tsx
+1
-1
src/pages/Chat/Chat.tsx
+2
-2
src/pages/ChatTactics/TacticsChat.tsx
+2
-2
src/pages/Collect/Collect.tsx
+33
-10
No files found.
src/components/FilePreviewModal/DocxPreview.tsx
View file @
06358447
...
...
@@ -44,7 +44,7 @@ export const DocxPreview: React.FC<DocxPreviewProps> = ({ src, className = '', o
onRendered
?.()
})
.
catch
((
error
)
=>
{
console
.
error
(
'DOCX 渲染失败:'
,
error
)
console
.
error
(
'DOCX 渲染失败:'
)
onError
?.(
error
)
})
}
...
...
src/pages/Chat/Chat.tsx
View file @
06358447
...
...
@@ -539,9 +539,9 @@ export const Chat: React.FC = () => {
},
2000
)
}
})
.
catch
((
error
)
=>
{
.
catch
(()
=>
{
// 流式请求出错时的处理
console
.
error
(
'[Chat] 流式请求失败:'
,
error
)
console
.
error
(
'[Chat] 流式请求失败:'
)
// 清除自动调用标记
isAutoSubmitQualityImprovementRef
.
current
=
false
// 设置最后一条 AI 回答的 endAnswerFlag,用于停止打字效果
...
...
src/pages/ChatTactics/TacticsChat.tsx
View file @
06358447
...
...
@@ -598,9 +598,9 @@ export const TacticsChat: React.FC = () => {
},
2000
)
}
})
.
catch
((
error
)
=>
{
.
catch
(()
=>
{
// 流式请求出错时的处理
console
.
error
(
'[TacticsChat] 流式请求失败:'
,
error
)
console
.
error
(
'[TacticsChat] 流式请求失败:'
)
// 设置最后一条 AI 回答的 endAnswerFlag,用于停止打字效果
setAllItems
((
prevItems
)
=>
{
const
newItems
=
[...
prevItems
]
...
...
src/pages/Collect/Collect.tsx
View file @
06358447
...
...
@@ -8,12 +8,14 @@ import styles from './Collect.module.less'
import
{
fetchQueryCollectionList
}
from
'@/api/collect'
import
DeleteIcon
from
'@/assets/svg/delete.svg?react'
import
{
fetchDelCollection
}
from
'@/api/chat'
import
{
fetchSessionConversationId
}
from
'@/api/conversation'
import
{
MarkdownDetail
}
from
'@/components/MarkdownDetail'
import
AIcon
from
'@/assets/svg/aicon.svg?react'
import
QIcon
from
'@/assets/svg/qicon.svg?react'
import
EmptyIcon
from
'@/assets/svg/empty.svg?react'
import
ShineBorder
from
'@/components/ShineBorder'
import
SdreamLoading
from
'@/components/SdreamLoading'
import
{
safeSessionStorageGetItem
}
from
'@/lib/utils'
export
const
Collect
:
React
.
FC
=
()
=>
{
const
navigate
=
useNavigate
()
...
...
@@ -84,22 +86,43 @@ export const Collect: React.FC = () => {
}
// 添加返回上一页的函数
const
handleGoBack
=
()
=>
{
const
handleGoBack
=
async
()
=>
{
// 设置标记,用于 Chat 组件检测从收藏页返回
sessionStorage
.
setItem
(
'fromCollect'
,
'true'
)
if
(
window
.
history
.
length
>
1
)
{
// 仅允许回退到同源来源页,避免跳转到不可控外部页面
const
isSameOriginReferrer
=
(()
=>
{
if
(
!
document
.
referrer
)
{
return
false
}
try
{
return
new
URL
(
document
.
referrer
).
origin
===
window
.
location
.
origin
}
catch
{
return
false
}
})()
if
(
window
.
history
.
length
>
1
&&
isSameOriginReferrer
)
{
navigate
(
-
1
)
return
}
const
rawConversationId
=
sessionStorage
.
getItem
(
'currentConversationId'
)
||
''
// 仅允许常见会话 ID 字符,避免可控输入直接参与路由拼接
if
(
/^
[\w
-
]
+$/
.
test
(
rawConversationId
))
{
const
conversationId
=
encodeURIComponent
(
rawConversationId
)
navigate
(
`/chat/
${
conversationId
}
`
,
{
state
:
{
fromCollect
:
true
}
})
return
try
{
const
currentToolId
=
safeSessionStorageGetItem
(
'currentToolId'
)
||
''
const
sessionRes
=
await
fetchSessionConversationId
({
busiId
:
currentToolId
})
const
conversationId
=
sessionRes
?.
data
?.
conversationId
const
isSafeConversationId
=
typeof
conversationId
===
'string'
&&
/^
[
0-9a-f
]{8}
-
[
0-9a-f
]{4}
-
[
1-5
][
0-9a-f
]{3}
-
[
89ab
][
0-9a-f
]{3}
-
[
0-9a-f
]{12}
$/i
.
test
(
conversationId
)
if
(
isSafeConversationId
)
{
navigate
(
`/chat/
${
encodeURIComponent
(
conversationId
)}
`
,
{
state
:
{
fromCollect
:
true
}
})
return
}
}
catch
(
error
)
{
console
.
error
(
'[Collect] 获取会话ID失败:'
,
error
)
}
// 无
效 ID 时保持原有目标页(等价于 conversationId 为空时的 /chat/)
navigate
(
'/
chat/
'
,
{
state
:
{
fromCollect
:
true
}
})
// 无
有效会话 ID 时,固定回到站内白名单页面
navigate
(
'/
home
'
,
{
state
:
{
fromCollect
:
true
}
})
}
useEffect
(()
=>
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment