Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
center-psp-show-h5
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
center-psp-show-h5
Commits
1094e866
提交
1094e866
authored
1月 10, 2023
作者:
matian
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
导师新增职位任职机构
上级
fae7a0c3
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
80 行增加
和
39 行删除
+80
-39
CourseCard.vue
src/modules/home/components/CourseCard.vue
+4
-3
Index.vue
src/modules/home/views/Index.vue
+0
-1
TeacherList.vue
src/modules/teacher/components/TeacherList.vue
+65
-0
Index.vue
src/modules/teacher/views/Index.vue
+11
-35
没有找到文件。
src/modules/home/components/CourseCard.vue
浏览文件 @
1094e866
<
script
setup
lang=
"ts"
>
<
script
setup
lang=
"ts"
>
import
{
useRouter
}
from
'vue-router'
//
import { useRouter } from 'vue-router'
import
{
Notify
}
from
'vant'
import
{
Notify
}
from
'vant'
// import { Swiper, SwiperSlide } from 'swiper/vue'
// import { Swiper, SwiperSlide } from 'swiper/vue'
// import 'swiper/css'
// import 'swiper/css'
...
@@ -9,7 +9,7 @@ import { Notify } from 'vant'
...
@@ -9,7 +9,7 @@ import { Notify } from 'vant'
// defineProps
<
{
docs
:
IDocItem
[];
videos
:
IVideoItem
[]
}
>
()
// defineProps
<
{
docs
:
IDocItem
[];
videos
:
IVideoItem
[]
}
>
()
const
router
=
useRouter
()
//
const router = useRouter()
const
docs
=
[
const
docs
=
[
{
{
...
@@ -30,7 +30,8 @@ const docs = [
...
@@ -30,7 +30,8 @@ const docs = [
}
}
]
]
function
handleViewDoc
(
data
:
any
)
{
function
handleViewDoc
(
data
:
any
)
{
window
.
open
(
data
.
url
)
// window.open(data.url)
location
.
href
=
data
.
url
}
}
function
showTips
()
{
function
showTips
()
{
Notify
({
type
:
'primary'
,
message
:
'尚未开放'
})
Notify
({
type
:
'primary'
,
message
:
'尚未开放'
})
...
...
src/modules/home/views/Index.vue
浏览文件 @
1094e866
...
@@ -32,7 +32,6 @@ const data = ref<HomeInfo>({
...
@@ -32,7 +32,6 @@ const data = ref<HomeInfo>({
const
fetchHomeData
=
()
=>
{
const
fetchHomeData
=
()
=>
{
api
.
getHomeData
().
then
(
res
=>
{
api
.
getHomeData
().
then
(
res
=>
{
data
.
value
=
res
.
data
data
.
value
=
res
.
data
console
.
log
(
res
.
data
)
})
})
}
}
onMounted
(()
=>
{
onMounted
(()
=>
{
...
...
src/modules/teacher/components/TeacherList.vue
0 → 100644
浏览文件 @
1094e866
<
script
setup
lang=
"ts"
>
import
type
{
ITeacherList
}
from
'@/types'
defineProps
<
{
teacherList
:
ITeacherList
[]
}
>
()
</
script
>
<
template
>
<div
class=
"teacher_list"
v-if=
"teacherList.length > 0"
>
<div
class=
"list_item"
v-for=
"(item, index) in teacherList"
:key=
"index"
>
<div>
<img
:src=
"item.avatar"
alt=
""
/>
<div
class=
"item_bottom"
>
<div
class=
"name"
>
{{
item
.
name
}}
</div>
<div
class=
"desc"
v-html=
"item.title"
></div>
<div
class=
"desc"
v-html=
"item.office"
></div>
</div>
</div>
</div>
</div>
<van-empty
v-else
description=
"暂无"
/>
</
template
>
<
style
lang=
"scss"
scoped
>
.teacher_list
{
margin-top
:
0
.7rem
;
display
:
flex
;
justify-content
:
space-between
;
flex-wrap
:
wrap
;
.list_item
{
width
:
3
.35rem
;
margin-bottom
:
0
.2rem
;
img
{
width
:
100%
;
height
:
3rem
;
object-fit
:
cover
;
border-top-left-radius
:
0
.2rem
;
border-top-right-radius
:
0
.2rem
;
}
.item_bottom
{
background
:
url(https://webapp-pub.ezijing.com/project/prp-h5/teacher_bg.png)
no-repeat
;
background-size
:
cover
;
width
:
100%
;
height
:
2
.24rem
;
border-bottom-left-radius
:
0
.2rem
;
border-bottom-right-radius
:
0
.2rem
;
padding
:
0
.13rem
0
0
0
.16rem
;
box-sizing
:
border-box
;
.name
{
font-size
:
0
.3rem
;
font-weight
:
500
;
color
:
#333333
;
}
.desc
{
font-size
:
0
.24rem
;
font-weight
:
400
;
line-height
:
0
.32rem
;
color
:
#666666
;
margin-top
:
0
.07rem
;
}
}
}
}
</
style
>
src/modules/teacher/views/Index.vue
浏览文件 @
1094e866
<
script
setup
lang=
"ts"
>
<
script
setup
lang=
"ts"
>
import
{
useInfiniteScroll
}
from
'@vueuse/core'
import
{
getTeacherList
}
from
'@/api/base'
import
{
getTeacherList
}
from
'@/api/base'
import
type
{
ITeacherList
}
from
'@/types'
import
type
{
ITeacherList
}
from
'@/types'
import
TeacherList
from
'../components/TeacherList.vue'
interface
ITeacherAllList
{
interface
ITeacherAllList
{
loading
:
boolean
loading
:
boolean
...
@@ -17,66 +17,42 @@ const teacherList = reactive<ITeacherAllList>({
...
@@ -17,66 +17,42 @@ const teacherList = reactive<ITeacherAllList>({
list
:
[]
list
:
[]
})
})
cons
t
tabIndex
=
$ref
(
0
)
le
t
tabIndex
=
$ref
(
0
)
const
handleGetTeacherList
=
()
=>
{
const
handleGetTeacherList
=
()
=>
{
const
params
:
any
=
{
page_size
:
10
,
page
:
teacherList
.
page
}
const
params
:
any
=
{
page_size
:
20
,
page
:
teacherList
.
page
,
type
:
(
tabIndex
+
1
).
toString
()
}
teacherList
.
loading
=
true
teacherList
.
loading
=
true
getTeacherList
(
params
)
getTeacherList
(
params
)
.
then
(
res
=>
{
.
then
(
res
=>
{
const
{
total
,
list
}
=
res
.
data
const
{
total
,
list
}
=
res
.
data
teacherList
.
total
=
total
teacherList
.
total
=
total
teacherList
.
list
=
teacherList
.
list
.
concat
(
list
)
teacherList
.
list
=
list
if
(
teacherList
.
list
.
length
<=
total
)
{
teacherList
.
page
++
}
})
})
.
finally
(()
=>
{
.
finally
(()
=>
{
teacherList
.
loading
=
false
teacherList
.
loading
=
false
})
})
}
}
// 滚动加载
const
el
=
ref
<
HTMLElement
>
()
useInfiniteScroll
(
document
,
()
=>
{
// load more
!
teacherList
.
loading
&&
handleGetTeacherList
()
},
{
distance
:
10
}
)
onMounted
(()
=>
{
onMounted
(()
=>
{
handleGetTeacherList
()
handleGetTeacherList
()
})
})
const
handleTabClick
=
(
val
:
number
)
=>
{
tabIndex
=
val
handleGetTeacherList
()
}
</
script
>
</
script
>
<
template
>
<
template
>
<img
src=
"https://webapp-pub.ezijing.com/project/prp-h5/teacher_banner.png"
style=
"width: 100%"
/>
<img
src=
"https://webapp-pub.ezijing.com/project/prp-h5/teacher_banner.png"
style=
"width: 100%"
/>
<div
class=
"teacher_tab"
>
<div
class=
"teacher_tab"
>
<div
class=
"tab_name"
:class=
"tabIndex === 0 ? 'active_tab' : 'inactive_tab'"
@
click=
"
tabIndex = 0
"
>
<div
class=
"tab_name"
:class=
"tabIndex === 0 ? 'active_tab' : 'inactive_tab'"
@
click=
"
handleTabClick(0)
"
>
清华硕导教授团
清华硕导教授团
</div>
</div>
<div
class=
"tab_line"
></div>
<div
class=
"tab_line"
></div>
<div
class=
"tab_name"
:class=
"tabIndex === 1 ? 'active_tab' : 'inactive_tab'"
@
click=
"
tabIndex = 1
"
>
<div
class=
"tab_name"
:class=
"tabIndex === 1 ? 'active_tab' : 'inactive_tab'"
@
click=
"
handleTabClick(1)
"
>
紫荆实战导师团
紫荆实战导师团
</div>
</div>
</div>
</div>
<div
<TeacherList
:teacherList=
"teacherList.list"
/>
class=
"teacher_list"
ref=
"el"
v-if=
"teacherList.list.filter(item => item.type === (tabIndex + 1).toString()).length > 0"
>
<div
class=
"list_item"
v-for=
"(item, index) in teacherList.list"
:key=
"index"
>
<div
v-if=
"(tabIndex + 1).toString() === item.type"
>
<img
:src=
"item.avatar"
alt=
""
/>
<div
class=
"item_bottom"
>
<div
class=
"name"
>
{{
item
.
name
}}
</div>
<div
class=
"desc"
v-html=
"item.desc_type_name"
></div>
</div>
</div>
</div>
</div>
<van-empty
v-else
description=
"暂无"
/>
</
template
>
</
template
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论