ujok
192
src/components/LiveCount.vue
Normal file
@ -0,0 +1,192 @@
|
||||
<template>
|
||||
<div class="cont">
|
||||
<div class="title">
|
||||
<div>上课学生</div>
|
||||
<div class="more">查看详情</div>
|
||||
</div>
|
||||
<div class="info">
|
||||
<div class="item">
|
||||
<div style="display:flex">
|
||||
<img src="" alt="" />
|
||||
<div class="stuinfo">
|
||||
<div>andy</div>
|
||||
<div class="lessonname">英语 A1</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="takehour">
|
||||
参加时长
|
||||
<div>30min</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="item">
|
||||
<div style="display:flex">
|
||||
<img src="" alt="" />
|
||||
<div class="stuinfo">
|
||||
<div>andy</div>
|
||||
<div class="lessonname">英语 A1</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="takehour">
|
||||
参加时长
|
||||
<div>30min</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="item">
|
||||
<div style="display:flex">
|
||||
<img src="" alt="" />
|
||||
<div class="stuinfo">
|
||||
<div>andy</div>
|
||||
<div class="lessonname">英语 A1</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="takehour">
|
||||
参加时长
|
||||
<div>30min</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div style="display:flex">
|
||||
<img src="" alt="" />
|
||||
<div class="stuinfo">
|
||||
<div>andy</div>
|
||||
<div class="lessonname">英语 A1</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="takehour">
|
||||
参加时长
|
||||
<div>30min</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div style="display:flex">
|
||||
<img src="" alt="" />
|
||||
<div class="stuinfo">
|
||||
<div>andy</div>
|
||||
<div class="lessonname">英语 A1</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="takehour">
|
||||
参加时长
|
||||
<div>30min</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div style="display:flex">
|
||||
<img src="" alt="" />
|
||||
<div class="stuinfo">
|
||||
<div>andy</div>
|
||||
<div class="lessonname">英语 A1</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="takehour">
|
||||
参加时长
|
||||
<div>30min</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div style="display:flex">
|
||||
<img src="" alt="" />
|
||||
<div class="stuinfo">
|
||||
<div>andy</div>
|
||||
<div class="lessonname">英语 A1</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="takehour">
|
||||
参加时长
|
||||
<div>30min</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<style lang="scss" scoped>
|
||||
.cont {
|
||||
width: 316px;
|
||||
height: 563px;
|
||||
background-color: #fff;
|
||||
border-radius: 17px;
|
||||
padding: 0 28px;
|
||||
position: relative;
|
||||
overflow: auto;
|
||||
.title {
|
||||
padding: 23px 0 11px 0;
|
||||
font-size: 13px;
|
||||
color: #111;
|
||||
line-height: 1;
|
||||
border-bottom: 1px solid #eee;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
.more {
|
||||
color: #999999;
|
||||
font-size: 11px;
|
||||
}
|
||||
}
|
||||
.info {
|
||||
.item {
|
||||
display: flex;
|
||||
align-content: center;
|
||||
justify-content: space-between;
|
||||
margin-top: 23px;
|
||||
font-size: 10px;
|
||||
.stuinfo {
|
||||
margin: auto 0;
|
||||
margin-left: 11px;
|
||||
color: #111111;
|
||||
.lessonname {
|
||||
color: #666666;
|
||||
}
|
||||
}
|
||||
.takehour {
|
||||
color: #08ae98;
|
||||
font-size: 11px;
|
||||
margin: auto 0;
|
||||
text-align: center;
|
||||
}
|
||||
> div>img {
|
||||
width: 57px;
|
||||
height: 57px;
|
||||
border-radius: 50%;
|
||||
background-color: #0f0;
|
||||
}
|
||||
}
|
||||
}
|
||||
.button {
|
||||
position: absolute;
|
||||
width: 260px;
|
||||
bottom: 28px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
> div {
|
||||
width: 114px;
|
||||
height: 23px;
|
||||
border-radius: 3px;
|
||||
font-size: 10px;
|
||||
color: #fff;
|
||||
line-height: 23px;
|
||||
text-align: center;
|
||||
}
|
||||
.modify {
|
||||
background-color: #08ae98;
|
||||
}
|
||||
.del {
|
||||
background-color: #d12c2e;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<script lang="ts">
|
||||
import { defineComponent } from "vue";
|
||||
|
||||
export default defineComponent({});
|
||||
</script>
|
27
src/components/LivePlay.vue
Normal file
@ -0,0 +1,27 @@
|
||||
<template>
|
||||
<div class="video">
|
||||
<video src=""></video>
|
||||
</div>
|
||||
</template>
|
||||
<style lang="scss" scoped>
|
||||
.video{
|
||||
width: 797px;
|
||||
height: 449px;
|
||||
border-radius: 17px;
|
||||
background-color: #0f0;
|
||||
overflow: hidden;
|
||||
>video{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<script lang="ts">
|
||||
import { defineComponent } from 'vue';
|
||||
|
||||
export default defineComponent({
|
||||
setup(){
|
||||
console.log(1)
|
||||
}
|
||||
})
|
||||
</script>
|
192
src/components/LiveingCount.vue
Normal file
@ -0,0 +1,192 @@
|
||||
<template>
|
||||
<div class="cont">
|
||||
<div class="title">
|
||||
<div>上课学生</div>
|
||||
<div class="more">查看详情</div>
|
||||
</div>
|
||||
<div class="info">
|
||||
<div class="item">
|
||||
<div style="display:flex">
|
||||
<img src="" alt="" />
|
||||
<div class="stuinfo">
|
||||
<div>andy</div>
|
||||
<div class="lessonname">英语 A1</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="takehour">
|
||||
参加时长
|
||||
<div>30min</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="item">
|
||||
<div style="display:flex">
|
||||
<img src="" alt="" />
|
||||
<div class="stuinfo">
|
||||
<div>andy</div>
|
||||
<div class="lessonname">英语 A1</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="takehour">
|
||||
参加时长
|
||||
<div>30min</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="item">
|
||||
<div style="display:flex">
|
||||
<img src="" alt="" />
|
||||
<div class="stuinfo">
|
||||
<div>andy</div>
|
||||
<div class="lessonname">英语 A1</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="takehour">
|
||||
参加时长
|
||||
<div>30min</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div style="display:flex">
|
||||
<img src="" alt="" />
|
||||
<div class="stuinfo">
|
||||
<div>andy</div>
|
||||
<div class="lessonname">英语 A1</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="takehour">
|
||||
参加时长
|
||||
<div>30min</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div style="display:flex">
|
||||
<img src="" alt="" />
|
||||
<div class="stuinfo">
|
||||
<div>andy</div>
|
||||
<div class="lessonname">英语 A1</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="takehour">
|
||||
参加时长
|
||||
<div>30min</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div style="display:flex">
|
||||
<img src="" alt="" />
|
||||
<div class="stuinfo">
|
||||
<div>andy</div>
|
||||
<div class="lessonname">英语 A1</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="takehour">
|
||||
参加时长
|
||||
<div>30min</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div style="display:flex">
|
||||
<img src="" alt="" />
|
||||
<div class="stuinfo">
|
||||
<div>andy</div>
|
||||
<div class="lessonname">英语 A1</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="takehour">
|
||||
参加时长
|
||||
<div>30min</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<style lang="scss" scoped>
|
||||
.cont {
|
||||
width: 316px;
|
||||
height: 630px;
|
||||
background-color: #fff;
|
||||
border-radius: 17px;
|
||||
padding: 0 28px;
|
||||
position: relative;
|
||||
overflow: auto;
|
||||
.title {
|
||||
padding: 23px 0 11px 0;
|
||||
font-size: 13px;
|
||||
color: #111;
|
||||
line-height: 1;
|
||||
border-bottom: 1px solid #eee;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
.more {
|
||||
color: #999999;
|
||||
font-size: 11px;
|
||||
}
|
||||
}
|
||||
.info {
|
||||
.item {
|
||||
display: flex;
|
||||
align-content: center;
|
||||
justify-content: space-between;
|
||||
margin-top: 23px;
|
||||
font-size: 10px;
|
||||
.stuinfo {
|
||||
margin: auto 0;
|
||||
margin-left: 11px;
|
||||
color: #111111;
|
||||
.lessonname {
|
||||
color: #666666;
|
||||
}
|
||||
}
|
||||
.takehour {
|
||||
color: #08ae98;
|
||||
font-size: 11px;
|
||||
margin: auto 0;
|
||||
text-align: center;
|
||||
}
|
||||
> div>img {
|
||||
width: 57px;
|
||||
height: 57px;
|
||||
border-radius: 50%;
|
||||
background-color: #0f0;
|
||||
}
|
||||
}
|
||||
}
|
||||
.button {
|
||||
position: absolute;
|
||||
width: 260px;
|
||||
bottom: 28px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
> div {
|
||||
width: 114px;
|
||||
height: 23px;
|
||||
border-radius: 3px;
|
||||
font-size: 10px;
|
||||
color: #fff;
|
||||
line-height: 23px;
|
||||
text-align: center;
|
||||
}
|
||||
.modify {
|
||||
background-color: #08ae98;
|
||||
}
|
||||
.del {
|
||||
background-color: #d12c2e;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<script lang="ts">
|
||||
import { defineComponent } from "vue";
|
||||
|
||||
export default defineComponent({});
|
||||
</script>
|
@ -5,11 +5,11 @@
|
||||
<div class="name">qweqw</div>
|
||||
<div class="lv">
|
||||
<div class="img">
|
||||
<img src="" alt="">
|
||||
<img src="" alt="">
|
||||
<img src="" alt="">
|
||||
<img src="" alt="">
|
||||
<img src="" alt="">
|
||||
<img src="@/static/images/starred.png" alt="">
|
||||
<img src="@/static/images/starred.png" alt="">
|
||||
<img src="@/static/images/starred.png" alt="">
|
||||
<img src="@/static/images/star.png" alt="">
|
||||
<img src="@/static/images/star.png" alt="">
|
||||
</div>
|
||||
<div class="num">8.0</div>
|
||||
</div>
|
||||
@ -52,7 +52,7 @@
|
||||
>img{
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
background-color: #0f0;
|
||||
// background-color: #0f0;
|
||||
margin-left: 3px;
|
||||
}
|
||||
}
|
||||
|
@ -84,6 +84,14 @@ const routes: Array<RouteRecordRaw> = [
|
||||
{
|
||||
path: "live",
|
||||
component: () => import("../views/regime/Live.vue")
|
||||
},
|
||||
{
|
||||
path: "livedetail",
|
||||
component: () => import("../views/regime/Livedetail.vue")
|
||||
},
|
||||
{
|
||||
path: "liveing",
|
||||
component: () => import("../views/regime/Liveing.vue")
|
||||
}
|
||||
]
|
||||
},
|
||||
|
BIN
src/static/images/liveend.png
Normal file
After Width: | Height: | Size: 4.7 KiB |
BIN
src/static/images/livelesson.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
src/static/images/liveshare.png
Normal file
After Width: | Height: | Size: 4.7 KiB |
BIN
src/static/images/livetimetake.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
BIN
src/static/images/livewatch.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
src/static/images/star.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
BIN
src/static/images/starred.png
Normal file
After Width: | Height: | Size: 3.7 KiB |
97
src/views/regime/Livedetail.vue
Normal file
@ -0,0 +1,97 @@
|
||||
<template>
|
||||
<div class="livedetail">
|
||||
<div class="info">
|
||||
<div class="liveplay">
|
||||
<VideoPlay></VideoPlay>
|
||||
<div class="liveinfo">
|
||||
<div class="left">
|
||||
<div>
|
||||
<img src="@/static/images/livelesson.png" alt="" class="icon">
|
||||
<span>西班牙语</span>
|
||||
</div>
|
||||
<div>
|
||||
<img src="@/static/images/livewatch.png" alt="" class="icon">
|
||||
<span>2020-09-11 18:30</span>
|
||||
</div>
|
||||
<div>
|
||||
<img src="@/static/images/livetimetake.png" alt="" class="icon">
|
||||
<span>30min</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
编辑信息
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<LiveCount></LiveCount>
|
||||
</div>
|
||||
<VideoReview class="review"></VideoReview>
|
||||
</div>
|
||||
</template>
|
||||
<style lang="scss" scoped>
|
||||
.livedetail {
|
||||
width: 1320px;
|
||||
height: 563px;
|
||||
.info {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
.liveplay {
|
||||
background: white;
|
||||
border-radius: 18px;
|
||||
.liveinfo{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
height: 58px;
|
||||
align-items: center;
|
||||
.left{
|
||||
display: flex;
|
||||
color: #121212;
|
||||
font-size: 13px;
|
||||
margin-left: 29px;
|
||||
>div{
|
||||
margin-right: 57px;
|
||||
}
|
||||
.icon{
|
||||
width: 25px;
|
||||
height:24px;
|
||||
margin-right: 6px;
|
||||
|
||||
}
|
||||
}
|
||||
.right{
|
||||
width: 74px;
|
||||
height: 29px;
|
||||
border:1px solid #08AE98;
|
||||
border-radius: 3px;
|
||||
margin-right: 29px;
|
||||
color: #08AE98;
|
||||
font-size: 13px;
|
||||
line-height: 29px;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.review {
|
||||
margin-top: 28px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<script lang="ts">
|
||||
import { defineComponent } from "vue";
|
||||
import VideoPlay from "@/components/VideoPlay.vue";
|
||||
import LiveCount from "@/components/LiveCount.vue";
|
||||
import VideoReview from "@/components/VideoReview.vue";
|
||||
export default defineComponent({
|
||||
components: {
|
||||
VideoPlay,
|
||||
LiveCount,
|
||||
VideoReview,
|
||||
},
|
||||
setup() {
|
||||
console.log(1);
|
||||
},
|
||||
});
|
||||
</script>
|
206
src/views/regime/Liveing.vue
Normal file
@ -0,0 +1,206 @@
|
||||
<template>
|
||||
<div class="liveing">
|
||||
<a-breadcrumb separator=">">
|
||||
<a-breadcrumb-item>Home</a-breadcrumb-item>
|
||||
<a-breadcrumb-item href=""> Application Center </a-breadcrumb-item>
|
||||
<a-breadcrumb-item href=""> Application List </a-breadcrumb-item>
|
||||
<a-breadcrumb-item>An Application</a-breadcrumb-item>
|
||||
</a-breadcrumb>
|
||||
<div class="top">
|
||||
<div class="left">直播页面</div>
|
||||
<div class="right">
|
||||
<img src="@/static/images/liveshare.png" alt="" />
|
||||
<img src="@/static/images/liveend.png" alt="" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="info">
|
||||
<LiveingCount></LiveingCount>
|
||||
<div class="liveplay">
|
||||
<LivePlay></LivePlay>
|
||||
<div class="comment">
|
||||
<div class="commentitem">
|
||||
<span>13:32:30</span>
|
||||
<span class="name"> Andy : </span>
|
||||
<span> 老师,这个部分可以讲的慢一些吗? </span>
|
||||
</div>
|
||||
<div class="commentitem">
|
||||
<span>13:32:30</span>
|
||||
<span class="name"> Andy : </span>
|
||||
<span> 老师,这个部分可以讲的慢一些吗? </span>
|
||||
</div>
|
||||
<div class="commentitem">
|
||||
<span>13:32:30</span>
|
||||
<span class="name"> Andy : </span>
|
||||
<span> 老师,这个部分可以讲的慢一些吗? </span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="others">
|
||||
<div class="othersitem">
|
||||
<div class="watcher"></div>
|
||||
<div class="name">asdsada</div>
|
||||
<img src="" alt="" />
|
||||
</div>
|
||||
<div class="othersitem">
|
||||
<div class="watcher"></div>
|
||||
<div class="name">asdsada</div>
|
||||
<img src="" alt="" />
|
||||
</div>
|
||||
<div class="othersitem">
|
||||
<div class="watcher"></div>
|
||||
<div class="name">asdsada</div>
|
||||
<img src="" alt="" />
|
||||
</div>
|
||||
<div class="othersitem">
|
||||
<div class="watcher"></div>
|
||||
<div class="name">asdsada</div>
|
||||
<img src="" alt="" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<style lang="scss" scoped>
|
||||
.liveing ::v-deep(.ant-breadcrumb) > span:last-child {
|
||||
color: #08ae98;
|
||||
}
|
||||
.liveing {
|
||||
width: 1320px;
|
||||
height: 563px;
|
||||
.top {
|
||||
width: 1321px;
|
||||
height: 57px;
|
||||
background: white;
|
||||
border-radius: 18px;
|
||||
margin-top: 23px;
|
||||
margin-bottom: 29px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
color: #121212;
|
||||
font-size: 13px;
|
||||
align-items: center;
|
||||
.left {
|
||||
margin-left: 40px;
|
||||
font-weight: bold;
|
||||
}
|
||||
.right {
|
||||
margin-right: 27px;
|
||||
> img {
|
||||
margin-right: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.info {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
.liveplay {
|
||||
border-radius: 18px;
|
||||
margin: 0 35px;
|
||||
.comment {
|
||||
width: 797px;
|
||||
height: 153px;
|
||||
background: white;
|
||||
border-radius: 18px;
|
||||
margin-top: 29px;
|
||||
padding: 30px;
|
||||
font-size: 12px;
|
||||
|
||||
color: #121212;
|
||||
|
||||
.commentitem {
|
||||
margin-bottom: 17px;
|
||||
.name {
|
||||
margin-left: 28px;
|
||||
color: #08ae98;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
}
|
||||
.liveinfo {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
height: 58px;
|
||||
align-items: center;
|
||||
.left {
|
||||
display: flex;
|
||||
color: #121212;
|
||||
font-size: 13px;
|
||||
margin-left: 29px;
|
||||
> div {
|
||||
margin-right: 57px;
|
||||
}
|
||||
.icon {
|
||||
width: 25px;
|
||||
height: 24px;
|
||||
margin-right: 6px;
|
||||
}
|
||||
}
|
||||
.right {
|
||||
width: 74px;
|
||||
height: 29px;
|
||||
border: 1px solid #08ae98;
|
||||
border-radius: 3px;
|
||||
margin-right: 29px;
|
||||
color: #08ae98;
|
||||
font-size: 13px;
|
||||
line-height: 29px;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.others {
|
||||
width: 252px;
|
||||
height: 630px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.othersitem{
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 132px;
|
||||
margin-bottom: 35px;
|
||||
.watcher {
|
||||
width: 228px;
|
||||
height: 29px;
|
||||
background: #000000;
|
||||
color: white;
|
||||
position: absolute;
|
||||
opacity: 0.1;
|
||||
border-radius: 18px 18px 0px 0px;
|
||||
top: 0;
|
||||
}
|
||||
> img {
|
||||
width: 228px;
|
||||
height: 132px;
|
||||
border-radius: 18px;
|
||||
background: #0f0;
|
||||
}
|
||||
.name{
|
||||
position: absolute;
|
||||
top: 9px;
|
||||
left: 28px;
|
||||
font-size: 12px;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<script lang="ts">
|
||||
import { defineComponent } from "vue";
|
||||
import LivePlay from "@/components/LivePlay.vue";
|
||||
import LiveingCount from "@/components/LiveingCount.vue";
|
||||
|
||||
export default defineComponent({
|
||||
components: {
|
||||
LivePlay,
|
||||
LiveingCount,
|
||||
},
|
||||
setup() {
|
||||
console.log(1);
|
||||
},
|
||||
});
|
||||
</script>
|