zj #69
@ -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
|
||||
}
|
||||
|
||||
/**
|
||||
* 直播日历
|
||||
|
@ -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
|
||||
};
|
||||
},
|
||||
});
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
})
|
||||
|
@ -1,4 +1,4 @@
|
||||
<template>
|
||||
<template>
|
||||
<div class="cont">
|
||||
<div class="title">视频数据</div>
|
||||
<div class="info">
|
||||
|
@ -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")
|
||||
|
205
src/views/regime/SignupStu.vue
Normal file
205
src/views/regime/SignupStu.vue
Normal 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>
|
@ -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>
|
||||
|
Loading…
x
Reference in New Issue
Block a user