Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
S
saas-learn
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
saas-learn
Commits
1f39e6ff
提交
1f39e6ff
authored
8月 01, 2022
作者:
王鹏飞
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
chore: update
上级
d8acd0b7
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
17 行增加
和
18 行删除
+17
-18
CourseListSearch.vue
src/modules/course/components/CourseListSearch.vue
+17
-18
没有找到文件。
src/modules/course/components/CourseListSearch.vue
浏览文件 @
1f39e6ff
...
...
@@ -19,31 +19,28 @@ const searchValue = $ref('')
function
querySearch
(
query
:
string
,
cb
:
(
arg
:
any
)
=>
void
)
{
searchCourseList
({
search_name
:
query
}).
then
(
res
=>
{
let
results
=
res
.
data
.
data
||
[]
if
(
query
)
{
results
=
searchHighlight
(
results
,
query
)
}
results
=
results
.
map
((
item
:
any
)
=>
{
item
.
value
=
item
.
name
return
item
})
cb
(
results
)
})
}
// 设置关键词高亮
function
searchHighlight
(
list
:
Record
<
string
,
any
>
,
query
:
string
)
{
return
list
.
map
((
item
:
any
)
=>
{
item
.
name
=
item
.
name
.
replace
(
query
,
`<span class="search-highlight">
${
query
}
</span>`
)
if
(
item
.
chapters
)
{
item
.
chapters
=
searchHighlight
(
item
.
chapters
,
query
)
}
if
(
item
.
sections
)
{
item
.
sections
=
searchHighlight
(
item
.
sections
,
query
)
}
return
item
})
function
searchHighlight
(
name
:
string
)
{
return
searchValue
?
name
.
replace
(
searchValue
,
`<span class="search-highlight">
${
searchValue
}
</span>`
)
:
name
}
// 搜索选择
function
handleSelect
(
data
:
any
)
{
params
.
id
=
data
.
id
emit
(
'change'
,
params
)
}
function
handleChange
(
value
:
string
)
{
if
(
!
value
)
{
params
.
id
=
''
emit
(
'change'
,
params
)
}
}
// 获取学期列表
let
semesterList
=
$ref
<
SemesterType
[]
>
([])
// 整理后的学期列表
...
...
@@ -75,21 +72,23 @@ const filterList = computed(() => {
v-model=
"searchValue"
:fetch-suggestions=
"querySearch"
:prefix-icon=
"Search"
:trigger-on-focus=
"false"
@
select=
"handleSelect"
@
change=
"handleChange"
class=
"course-search__input"
>
<template
#
default=
"
{ item }">
<div
class=
"search-course-item"
>
<h4
class=
"search-course-item__name"
v-html=
"
item.name
"
></h4>
<h4
class=
"search-course-item__name"
v-html=
"
searchHighlight(item.name)
"
></h4>
<div
class=
"search-course-chapters"
v-if=
"item.chapters?.length"
>
<div
class=
"search-course-chapter-item"
v-for=
"chapter in item.chapters"
:key=
"chapter.id"
>
<p
class=
"search-course-chapter-item__name"
v-html=
"
chapter.name
"
></p>
<p
class=
"search-course-chapter-item__name"
v-html=
"
searchHighlight(chapter.name)
"
></p>
<div
class=
"search-course-sections"
v-if=
"chapter.sections?.length"
>
<div
class=
"search-course-section-item"
v-for=
"section in chapter.sections"
:key=
"section.id"
v-html=
"se
ction.name
"
v-html=
"se
archHighlight(section.name)
"
></div>
</div>
</div>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论