201 lines
5.1 KiB
Vue
201 lines
5.1 KiB
Vue
<template>
|
||
<div class="subscriber">
|
||
<div class="top">
|
||
<div class="title">我的订阅者(56)</div>
|
||
<div class="sel">
|
||
<img src="@/static/images/sousuo.png" alt="" class="icon" />
|
||
<input type="text" placeholder="请输入想要搜索的学生姓名" v-model="condition.title" @keyup.enter="search(condition)"/>
|
||
</div>
|
||
</div>
|
||
<div class="mid">
|
||
<!-- {{teacherlikedlist}} -->
|
||
<div class="studentlist">
|
||
<div class="stuitem" v-for="(i,j) in teacherlikedlist.data" :key="j">
|
||
<img :src="i.img" alt="" class="photo" />
|
||
<div>
|
||
<div class="info">
|
||
<div class="infoitem">
|
||
<span class="label">姓名:</span>
|
||
<span class="one-line-hide">{{i.name}}</span>
|
||
</div>
|
||
|
||
<div class="infoitem">
|
||
<span class="label">所在国家:</span>
|
||
<span class="one-line-hide">{{i.live}}</span>
|
||
</div>
|
||
|
||
<div class="infoitem">
|
||
<span class="label">年龄:</span>
|
||
<span class="one-line-hide">{{i.age}}</span>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="info">
|
||
<div class="infoitem">
|
||
<span class="label">学生母语:</span>
|
||
<span class="one-line-hide">{{i.mtongue }}</span>
|
||
</div>
|
||
|
||
<div class="infoitem">
|
||
<span class="label">兴趣点:</span>
|
||
<span class="one-line-hide">{{i.interestStr}}</span>
|
||
</div>
|
||
|
||
<div class="infoitem">
|
||
<span class="label">语言等级:</span>
|
||
<span class="one-line-hide">asd</span>
|
||
</div>
|
||
|
||
<div>参加平台直播课程总时长:<span class="time">{{i.longtime}}min</span></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
<div class="pages">
|
||
<a-pagination v-model:current="page" :total="teacherlikedlist.total" :showLessItems="true" @change="pagechange"/>
|
||
</div>
|
||
</div>
|
||
</template>
|
||
<style lang="scss" scoped>
|
||
.subscriber {
|
||
width: 100%;
|
||
// height: 706px;
|
||
background-color: #fff;
|
||
border-radius: 17px;
|
||
// padding: 40px;
|
||
position: relative;
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
padding-bottom: 200px;
|
||
.top {
|
||
display: flex;
|
||
width: 1241px;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
margin-top: 21px;
|
||
border-bottom: 1px solid #eeeeee;
|
||
padding-bottom: 6px;
|
||
.title {
|
||
font-size: 13px;
|
||
color: #121212;
|
||
font-weight: bold;
|
||
}
|
||
.sel {
|
||
// width: 171px;
|
||
height: 26px;
|
||
border: 1px solid #999;
|
||
display: flex;
|
||
align-items: center;
|
||
// padding: 8px;
|
||
border-radius: 4px;
|
||
padding-right:30px;
|
||
> img {
|
||
width: 11px;
|
||
height: 11px;
|
||
margin-left:5px
|
||
}
|
||
> input {
|
||
width: 170px;
|
||
font-size: 9px;
|
||
line-height: 1;
|
||
margin-left: 6px;
|
||
border: none;
|
||
outline: none;
|
||
}
|
||
}
|
||
}
|
||
.mid {
|
||
.studentlist {
|
||
width: 1241px;
|
||
margin: 0 auto;
|
||
.stuitem {
|
||
height: 131px;
|
||
border-bottom: 1px solid #eeeeee;
|
||
display: flex;
|
||
align-items: center;
|
||
.photo {
|
||
width: 74px;
|
||
height: 74px;
|
||
background: #125cb4;
|
||
border-radius: 50%;
|
||
}
|
||
.info {
|
||
margin-left: 35px;
|
||
display: flex;
|
||
font-size: 12px;
|
||
color: #121212;
|
||
line-height: 45px;
|
||
.infoitem {
|
||
width: 194px;
|
||
display: flex;
|
||
.label{
|
||
flex-shrink: 0;
|
||
}
|
||
}
|
||
}
|
||
|
||
.time {
|
||
color: #08AE98;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
.pages {
|
||
position: absolute;
|
||
bottom: 114px;
|
||
display: flex;
|
||
justify-content: center;
|
||
::v-deep(.ant-pagination-next) > .ant-pagination-item-link,
|
||
::v-deep(.ant-pagination-prev) > .ant-pagination-item-link,
|
||
::v-deep(.ant-pagination-item),
|
||
::v-deep(.ant-pagination-jump-next-custom-icon),
|
||
::v-deep(.ant-pagination-jump-prev-custom-icon) {
|
||
border: 1px solid #08ae98;
|
||
}
|
||
::v-deep(.ant-pagination-item-active) a {
|
||
color: #fff;
|
||
}
|
||
::v-deep(.ant-pagination-item-active) {
|
||
background-color: #08ae98;
|
||
}
|
||
}
|
||
}
|
||
</style>
|
||
<script lang="ts">
|
||
import { getteacherliked } from '@/api';
|
||
import { defineComponent, onMounted, ref, toRaw } from "vue";
|
||
export default defineComponent({
|
||
name: "Subscriber",
|
||
components: {},
|
||
setup() {
|
||
const page = ref(1);
|
||
const teacherlikedlist =ref<any>({
|
||
|
||
});
|
||
const title=ref('')
|
||
const condition = ref<any>({
|
||
title:""
|
||
})
|
||
onMounted(async () => {
|
||
teacherlikedlist.value=await getteacherliked()
|
||
});
|
||
async function search(e:any){
|
||
teacherlikedlist.value=await getteacherliked(e)
|
||
}
|
||
async function pagechange(){
|
||
teacherlikedlist.value=await getteacherliked(toRaw(condition.value))
|
||
}
|
||
|
||
return {
|
||
page,
|
||
teacherlikedlist,
|
||
condition,
|
||
title,
|
||
search
|
||
};
|
||
},
|
||
});
|
||
</script> |