Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
inscode
NodeJS_639770
提交
a75f6598
N
NodeJS_639770
项目概览
inscode
/
NodeJS_639770
与 Fork 源项目一致
Fork自
inscode / NodeJS
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
N
NodeJS_639770
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
a75f6598
编写于
6月 07, 2024
作者:
D
DebugIsFalse
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: 自动滚动问题
上级
3b442069
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
27 addition
and
23 deletion
+27
-23
pages/search/[id].vue
pages/search/[id].vue
+27
-23
未找到文件。
pages/search/[id].vue
浏览文件 @
a75f6598
...
...
@@ -9,7 +9,7 @@
:repo=
"state.repo"
@
update-query=
"handleUpdateQuery"
/>
<div
class=
"container min-h-svh max-w-screen-lg 2xl:max-w-screen-xl flex flex-col space-y-6 p-6 mb-6 pb-0"
id
=
"scrollElement"
>
<div
class=
"container min-h-svh max-w-screen-lg 2xl:max-w-screen-xl flex flex-col space-y-6 p-6 mb-6 pb-0"
ref
=
"scrollElement"
>
<template
v-for=
"(item, index) in data"
:key=
"index"
>
<ISearchArticle>
<template
#title
>
...
...
@@ -74,7 +74,8 @@ const historyStatus = ref(200)
const
data
=
ref
([])
const
askingData
=
ref
({
question
:
$setFirstRecordTitle
.
value
,
collapse
:
true
,
actions
:
[],
processStatus
:
'
start
'
})
const
recommendQuestions
=
ref
([])
let
asking
=
ref
(
false
)
const
asking
=
ref
(
false
)
const
scrollElement
=
ref
(
null
)
// demo [{ type: 'search_relate_repo', data: [] }], 右侧推荐图表数据
const
askingSidebarCards
=
ref
([])
// 处理ai generate
...
...
@@ -161,18 +162,27 @@ function resetAskingData (question) {
}
// 是否停止自动滚动到底部
const
isAutoToBottom
=
ref
(
true
)
watch
(
()
=>
directions
.
top
,
()
=>
{
if
(
directions
.
top
)
{
isAutoToBottom
.
value
=
false
}
watch
(()
=>
directions
.
top
,
()
=>
{
if
(
directions
.
top
)
isAutoToBottom
.
value
=
false
})
watch
(()
=>
askingData
.
value
.
collapse
,
(
newVal
,
oldVal
)
=>
{
if
(
!
newVal
&&
asking
.
value
)
resetAutoBottom
()
})
watch
(()
=>
directions
.
bottom
,
()
=>
{
if
(
directions
.
bottom
&&
asking
.
value
)
handleToBottom
()
})
function
handleToBottom
()
{
const
$target
=
scrollElement
.
value
const
scrollTop
=
window
.
innerHeight
+
window
.
scrollY
+
30
;
const
height
=
$target
.
parentNode
.
clientHeight
if
(
scrollTop
>=
height
)
{
isAutoToBottom
.
value
=
true
scrollToView
()
}
)
}
function
scrollToView
()
{
if
(
!
isAutoToBottom
.
value
)
return
const
$target
=
document
.
querySelector
(
'
#scrollElement
'
)
if
(
!
$target
)
return
y
.
value
=
$target
.
clientHeight
if
(
!
isAutoToBottom
.
value
||
!
scrollElement
.
value
)
return
y
.
value
=
scrollElement
.
value
.
clientHeight
}
function
createGenerateInitItem
(
question
,
regenerate
)
{
if
(
askingData
.
value
.
question
&&
!
regenerate
)
{
...
...
@@ -195,18 +205,14 @@ function handleContinueAsk (question, regenerate) {
question
=
regenerate
||
question
generateFetchData
(
question
)
setTimeout
(()
=>
{
scrollToView
()
isAutoToBottom
.
value
=
true
scrollToView
()
})
}
function
handleReGenerate
()
{
const
{
question
}
=
askingData
.
value
handleContinueAsk
(
question
,
`根据上述回答,对问题"
${
question
}
"重新生成`
)
}
function
resetAnsLoading
()
{
Object
.
assign
(
askingData
.
value
,
{
showActions
:
true
})
}
function
resetAutoBottom
()
{
nextTick
(()
=>
{
isAutoToBottom
.
value
=
true
...
...
@@ -236,9 +242,6 @@ function handleFormFetchData (fetchData) {
}
catch
(
error
)
{
}
if
(
Object
.
keys
(
message
).
length
===
0
)
return
const
{
meta
,
choices
,
error
,
code
}
=
message
setTimeout
(()
=>
{
scrollToView
()
})
// 处理403
if
(
error
&&
code
===
403
)
{
handleSetNoPermission
()
...
...
@@ -251,6 +254,9 @@ function handleFormFetchData (fetchData) {
let
article
=
message
.
choices
[
0
].
message
.
content
article
=
Array
.
isArray
(
article
)
?
handleFormatReports
(
article
)
:
article
Object
.
assign
(
askingData
.
value
,
{
article
,
collapse
:
false
,
processStatus
:
'
finish
'
,
ansLoading
:
true
})
nextTick
(()
=>
{
scrollToView
()
})
return
}
if
(
meta
.
type
!==
'
log
'
)
return
...
...
@@ -292,9 +298,8 @@ function handleCreateAiTitle () {
}
function
handleMessage
(
event
)
{
if
(
event
.
data
===
markedEnd
)
{
askingData
.
value
.
ansLoading
=
false
Object
.
assign
(
askingData
.
value
,
{
ansLoading
:
false
,
showActions
:
true
})
handleCreateAiTitle
()
resetAnsLoading
()
handleStopGenerate
()
return
}
...
...
@@ -370,5 +375,4 @@ nextTick( () => {
asking
.
value
=
false
;
}
})
</
script
>
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录