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
3f5bbff0
Commit
3f5bbff0
authored
Mar 11, 2026
by
Liu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:流式输出时正常展示可点击链接
parent
b2dc32ed
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
18 additions
and
9 deletions
+18
-9
src/pages/Chat/Chat.tsx
+8
-4
src/pages/ChatTactics/TacticsChat.tsx
+10
-5
No files found.
src/pages/Chat/Chat.tsx
View file @
3f5bbff0
...
...
@@ -198,8 +198,10 @@ export const Chat: React.FC = () => {
// 创建最后一项的新对象,合并现有数据和新的 answer
const
existingAnswer
=
newItems
[
currentIndex
].
answerList
?.[
0
]
||
{}
const
originalAnswer
=
(
existingAnswer
.
answer
||
''
)
+
(
msg
.
content
.
data
.
answer
??
'
\
n'
)
// 移除所有括号及其内容
let
filteredAnswer
=
originalAnswer
.
replace
(
/
\([^
)
]
*
\)
/g
,
''
)
// 移除所有括号及其内容(但保留 Markdown 链接语法中的 ](...))
let
filteredAnswer
=
originalAnswer
.
replace
(
/
\([^
)
]
*
\)
/g
,
(
match
,
offset
,
str
)
=>
{
return
str
[
offset
-
1
]
===
']'
?
match
:
''
})
// 去除 [参考文档《任意内容》 《任意内容》...] 格式的内容
filteredAnswer
=
filteredAnswer
.
replace
(
/
\[
参考文档
(?:
《
[^
》
]
*》
\s
*
)
+
\]
/g
,
''
)
// 只移除空格和制表符,保留换行符(避免移除末尾的 \n\n)
...
...
@@ -614,7 +616,8 @@ export const Chat: React.FC = () => {
answerList
:
item
.
answerList
.
map
(
answerItem
=>
({
...
answerItem
,
answer
:
answerItem
.
answer
?.
replace
(
/
\([^
)
]
*
\)
/g
,
''
)
// 移除括号内容,但保留 Markdown 链接语法中的 ](...)
?.
replace
(
/
\([^
)
]
*
\)
/g
,
(
match
,
offset
,
str
)
=>
(
str
[
offset
-
1
]
===
']'
?
match
:
''
))
.
replace
(
/
\[
参考文档
(?:
《
[^
》
]
*》
\s
*
)
+
\]
/g
,
''
)
.
trim
(),
})),
...
...
@@ -926,7 +929,8 @@ export const Chat: React.FC = () => {
answerList
:
item
.
answerList
.
map
(
answerItem
=>
({
...
answerItem
,
answer
:
answerItem
.
answer
?.
replace
(
/
\([^
)
]
*
\)
/g
,
''
)
// 移除括号内容,但保留 Markdown 链接语法中的 ](...)
?.
replace
(
/
\([^
)
]
*
\)
/g
,
(
match
,
offset
,
str
)
=>
(
str
[
offset
-
1
]
===
']'
?
match
:
''
))
.
replace
(
/
\[
参考文档
(?:
《
[^
》
]
*》
\s
*
)
+
\]
/g
,
''
)
.
trim
(),
})),
...
...
src/pages/ChatTactics/TacticsChat.tsx
View file @
3f5bbff0
...
...
@@ -245,8 +245,10 @@ export const TacticsChat: React.FC = () => {
const
originalAnswer
=
existingAnswerText
+
newAnswer
// 移除 ♪ 符号之后的所有文本(与历史记录保持一致)
let
filteredAnswer
=
originalAnswer
.
split
(
'♪'
)[
0
]
// 移除所有括号及其内容
filteredAnswer
=
filteredAnswer
.
replace
(
/
\([^
)
]
*
\)
/g
,
''
)
// 移除所有括号及其内容(但保留 Markdown 链接语法中的 ](...))
filteredAnswer
=
filteredAnswer
.
replace
(
/
\([^
)
]
*
\)
/g
,
(
match
:
string
,
offset
:
number
,
str
:
string
)
=>
{
return
str
[
offset
-
1
]
===
']'
?
match
:
''
})
// 去除 [参考文档《任意内容》 《任意内容》...] 格式的内容
filteredAnswer
=
filteredAnswer
.
replace
(
/
\[
参考文档
(?:
《
[^
》
]
*》
\s
*
)
+
\]
/g
,
''
)
// 只移除空格和制表符,保留换行符(避免移除末尾的 \n\n)
...
...
@@ -280,8 +282,10 @@ export const TacticsChat: React.FC = () => {
const
newAnswer
=
msg
.
content
?.
data
?.
answer
??
'
\
n'
// 移除 ♪ 符号之后的所有文本(与历史记录保持一致)
let
filteredAnswer
=
newAnswer
.
split
(
'♪'
)[
0
]
// 移除所有括号及其内容
filteredAnswer
=
filteredAnswer
.
replace
(
/
\([^
)
]
*
\)
/g
,
''
)
// 移除所有括号及其内容(但保留 Markdown 链接语法中的 ](...))
filteredAnswer
=
filteredAnswer
.
replace
(
/
\([^
)
]
*
\)
/g
,
(
match
:
string
,
offset
:
number
,
str
:
string
)
=>
{
return
str
[
offset
-
1
]
===
']'
?
match
:
''
})
// 去除 [参考文档《任意内容》 《任意内容》...] 格式的内容
filteredAnswer
=
filteredAnswer
.
replace
(
/
\[
参考文档
(?:
《
[^
》
]
*》
\s
*
)
+
\]
/g
,
''
)
// 只移除空格和制表符,保留换行符(避免移除末尾的 \n\n)
...
...
@@ -675,7 +679,8 @@ export const TacticsChat: React.FC = () => {
answerList
:
item
.
answerList
.
map
(
answerItem
=>
({
...
answerItem
,
answer
:
answerItem
.
answer
?.
replace
(
/
\([^
)
]
*
\)
/g
,
''
)
// 移除括号内容,但保留 Markdown 链接语法中的 ](...)
?.
replace
(
/
\([^
)
]
*
\)
/g
,
(
match
:
string
,
offset
:
number
,
str
:
string
)
=>
(
str
[
offset
-
1
]
===
']'
?
match
:
''
))
.
replace
(
/
\[
参考文档
(?:
《
[^
》
]
*》
\s
*
)
+
\]
/g
,
''
)
.
trim
(),
})),
...
...
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