zj #69

Merged
asd merged 9 commits from zj into master 2020-10-23 01:56:47 +00:00
7 changed files with 281 additions and 21 deletions
Showing only changes of commit a97f2448e7 - Show all commits

View File

@ -611,6 +611,7 @@ export async function editsystemsetting(e?: any): Promise<boolean> {
console.log(res)
if(res.code == 0){
message.success("修改成功")
store.dispatch("setUserInfo");
return true;
}else{
message.error(res.msg);
@ -621,7 +622,10 @@ export async function editsystemsetting(e?: any): Promise<boolean> {
/**
*
*/
export async function getcurrencys(){
const res=await get("currencys")
return res.data
}
/**
*
@ -765,6 +769,13 @@ export async function getliveinfo(id: number){
return {...liveinfo,studentlist}
}
/**
*
*/
export async function getstudentlist(data?: any) {
const studentlist = (await get<StudentList[]>("studentLive",data)).data;
return studentlist
}
/**
*

View File

@ -2,14 +2,14 @@
<div class="cont">
<div class="title">
<div>上课学生</div>
<div class="more">查看详情</div>
<div class="more" @click="toxq">查看详情</div>
</div>
<div class="info">
<div class="item" v-for="(i, j) in list" :key="j">
<div style="display: flex">
<img :src="i.img" alt="" />
<div class="stuinfo">
<div>{{ i.name }}</div>
<div>{{ i.name }} {{zid}}</div>
<div class="lessonname">{{ i.interest }}</div>
</div>
</div>
@ -236,12 +236,14 @@
</style>
<script lang="ts">
import { cancellive, refusedtolive } from '@/api';
import router from '@/router';
import { defineComponent, ref, toRaw, watch } from "vue";
export default defineComponent({
props: {
info: Array,
livestatus: Number,
zid:Number
},
setup(props) {
const modalNode = () => document.getElementsByClassName('modal-container')[0]
@ -275,6 +277,11 @@ export default defineComponent({
hidePhoneModal();
}
}
function toxq(){
router.push({path:"/regime/studentlist",query:{liveid:props.zid}})
console.log(props.zid,"aaa")
}
return {
list,
@ -283,7 +290,8 @@ export default defineComponent({
updatePhoneVisible,
hidePhoneModal,
sum,
text
text,
toxq
};
},
});

View File

@ -49,12 +49,12 @@
<template v-slot:overlay>
<a-menu>
<!-- 货币 -->
<a-menu-item key="0">
<div class="selitem">
<span>时区1b</span>
<a-menu-item v-for="(i,j) in currencylist" :key="j">
<div class="selitem" @click="currencychange(i.value)">
<span>{{i.name}}</span>
</div>
</a-menu-item>
<a-menu-item key="1">
<!-- <a-menu-item key="1">
<div class="selitem">
<span>时区2b</span>
</div>
@ -63,7 +63,7 @@
<div class="selitem">
<span>时区3b</span>
</div>
</a-menu-item>
</a-menu-item> -->
</a-menu>
</template>
</a-dropdown>
@ -76,12 +76,12 @@
<template v-slot:overlay>
<a-menu>
<!-- 语言 -->
<a-menu-item key="0">
<div class="selitem">
<span>时区1c</span>
<a-menu-item v-for="(i,j) in languagelist" :key="j">
<div class="selitem" @click="setlanguage(i.value)">
<span>{{i.name}}</span>
</div>
</a-menu-item>
<a-menu-item key="1">
<!-- <a-menu-item key="1">
<div class="selitem">
<span>时区2cc</span>
</div>
@ -90,7 +90,7 @@
<div class="selitem">
<span>时区3c</span>
</div>
</a-menu-item>
</a-menu-item> -->
</a-menu>
</template>
</a-dropdown>
@ -177,7 +177,7 @@
}
</style>
<script lang="ts">
import { editsystemsetting, getzonelist } from '@/api';
import { editsystemsetting, getcurrencys, getlanguages, getzonelist } from '@/api';
import router from '@/router';
import store from '@/store';
import { computed, defineComponent, onMounted, ref } from 'vue';
@ -203,7 +203,30 @@ export default defineComponent({
}])
const selectedzone=ref([])
const currencylist=ref([])
const currencylist=ref<any>([{
alias: "CNY",
code: "104110041000",
createdAt: "2020-08-19 11:54:59",
deletedAt: null,
dictionaryid: 241,
name: "人民币¥",
position: 1,
publish: 1,
updatedAt: "2020-08-19 11:54:59",
value: "1"
}])
const languagelist=ref<any>({
alias: "",
code: "104110011000",
createdAt: "2020-08-14 11:08:28",
deletedAt: null,
dictionaryid: 210,
name: "中文",
position: 1,
publish: 1,
updatedAt: "2020-08-14 11:08:28",
value: "zh"
})
console.log(types.value)
interface Nav{
name: string;
@ -244,14 +267,20 @@ export default defineComponent({
onMounted(async () => {
zonelist.value=await getzonelist()
// console.log(zonelist.value)
// currencylist.value=await getcurrencys()
currencylist.value=await getcurrencys()
languagelist.value=await getlanguages()
})
function zonechange(e?: any){
// console.log(e,1002)
editsystemsetting({zoneid:e})
}
function currencychange(e?: any){
editsystemsetting({currency:parseInt(e)})
}
function setlanguage(e?: any){
editsystemsetting({language:e})
}
return {
nav,
@ -261,7 +290,10 @@ export default defineComponent({
zonelist,
zonechange,
selectedzone,
currencylist
currencylist,
currencychange,
languagelist,
setlanguage
}
}
})

View File

@ -1,4 +1,4 @@
<template>
<template>
<div class="cont">
<div class="title">视频数据</div>
<div class="info">

View File

@ -81,6 +81,10 @@ const routes: Array<RouteRecordRaw> = [
path: "subscriber",
component: () => import("../views/regime/Subscriber.vue")
},
{
path: "studentlist",
component: () => import("../views/regime/SignupStu.vue")
},
{
path: "live",
component: () => import("../views/regime/Live.vue")

View File

@ -0,0 +1,205 @@
<template>
<div class="subscriber">
<div class="top">
<div class="title">直播报名学生</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 { getstudentlist, getteacherliked } from '@/api';
import { defineComponent, onMounted, ref, toRaw } from "vue";
import { useRoute } from 'vue-router';
export default defineComponent({
name: "Subscriber",
components: {},
setup() {
const page = ref(1);
const teacherlikedlist =ref<any>({
});
const title=ref('')
const condition = ref<any>({
title:"",
id:Number(useRoute().query.liveid)
})
onMounted(async () => {
console.log(useRoute().query.liveid,"mmmmmmm")
const id=useRoute().query.liveid
teacherlikedlist.value=await getstudentlist({id:Number(id)})
});
async function search(e: any){
teacherlikedlist.value=await getstudentlist(e)
}
async function pagechange(){
teacherlikedlist.value=await getstudentlist(toRaw(condition.value))
}
return {
page,
teacherlikedlist,
condition,
title,
search
};
},
});
</script>

View File

@ -2,7 +2,7 @@
<div class="videoinfo">
<div class="info">
<VideoPlay :url="result.fileurl"></VideoPlay>
<VideoCont :videoid="result.videoid" :date="result.created_at" :watch="result.watch" :share="result.share" :status="result.status"></VideoCont>
<VideoCont :videoid="result.videoid" :date="result.createdAt" :watch="result.watch" :share="result.share" :status="result.status"></VideoCont>
</div>
<VideoReview class="review"></VideoReview>
</div>