zj #69
@ -611,6 +611,7 @@ export async function editsystemsetting(e?: any): Promise<boolean> {
|
|||||||
console.log(res)
|
console.log(res)
|
||||||
if(res.code == 0){
|
if(res.code == 0){
|
||||||
message.success("修改成功")
|
message.success("修改成功")
|
||||||
|
store.dispatch("setUserInfo");
|
||||||
return true;
|
return true;
|
||||||
}else{
|
}else{
|
||||||
message.error(res.msg);
|
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}
|
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="cont">
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<div>上课学生</div>
|
<div>上课学生</div>
|
||||||
<div class="more">查看详情</div>
|
<div class="more" @click="toxq">查看详情</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="info">
|
<div class="info">
|
||||||
<div class="item" v-for="(i, j) in list" :key="j">
|
<div class="item" v-for="(i, j) in list" :key="j">
|
||||||
<div style="display: flex">
|
<div style="display: flex">
|
||||||
<img :src="i.img" alt="" />
|
<img :src="i.img" alt="" />
|
||||||
<div class="stuinfo">
|
<div class="stuinfo">
|
||||||
<div>{{ i.name }}</div>
|
<div>{{ i.name }} {{zid}}</div>
|
||||||
<div class="lessonname">{{ i.interest }}</div>
|
<div class="lessonname">{{ i.interest }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -236,12 +236,14 @@
|
|||||||
</style>
|
</style>
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { cancellive, refusedtolive } from '@/api';
|
import { cancellive, refusedtolive } from '@/api';
|
||||||
|
import router from '@/router';
|
||||||
import { defineComponent, ref, toRaw, watch } from "vue";
|
import { defineComponent, ref, toRaw, watch } from "vue";
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
props: {
|
props: {
|
||||||
info: Array,
|
info: Array,
|
||||||
livestatus: Number,
|
livestatus: Number,
|
||||||
|
zid:Number
|
||||||
},
|
},
|
||||||
setup(props) {
|
setup(props) {
|
||||||
const modalNode = () => document.getElementsByClassName('modal-container')[0]
|
const modalNode = () => document.getElementsByClassName('modal-container')[0]
|
||||||
@ -275,6 +277,11 @@ export default defineComponent({
|
|||||||
hidePhoneModal();
|
hidePhoneModal();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
function toxq(){
|
||||||
|
router.push({path:"/regime/studentlist",query:{liveid:props.zid}})
|
||||||
|
console.log(props.zid,"aaa")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
list,
|
list,
|
||||||
@ -283,7 +290,8 @@ export default defineComponent({
|
|||||||
updatePhoneVisible,
|
updatePhoneVisible,
|
||||||
hidePhoneModal,
|
hidePhoneModal,
|
||||||
sum,
|
sum,
|
||||||
text
|
text,
|
||||||
|
toxq
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
@ -49,12 +49,12 @@
|
|||||||
<template v-slot:overlay>
|
<template v-slot:overlay>
|
||||||
<a-menu>
|
<a-menu>
|
||||||
<!-- 货币 -->
|
<!-- 货币 -->
|
||||||
<a-menu-item key="0">
|
<a-menu-item v-for="(i,j) in currencylist" :key="j">
|
||||||
<div class="selitem">
|
<div class="selitem" @click="currencychange(i.value)">
|
||||||
<span>时区1b</span>
|
<span>{{i.name}}</span>
|
||||||
</div>
|
</div>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="1">
|
<!-- <a-menu-item key="1">
|
||||||
<div class="selitem">
|
<div class="selitem">
|
||||||
<span>时区2b</span>
|
<span>时区2b</span>
|
||||||
</div>
|
</div>
|
||||||
@ -63,7 +63,7 @@
|
|||||||
<div class="selitem">
|
<div class="selitem">
|
||||||
<span>时区3b</span>
|
<span>时区3b</span>
|
||||||
</div>
|
</div>
|
||||||
</a-menu-item>
|
</a-menu-item> -->
|
||||||
</a-menu>
|
</a-menu>
|
||||||
</template>
|
</template>
|
||||||
</a-dropdown>
|
</a-dropdown>
|
||||||
@ -76,12 +76,12 @@
|
|||||||
<template v-slot:overlay>
|
<template v-slot:overlay>
|
||||||
<a-menu>
|
<a-menu>
|
||||||
<!-- 语言 -->
|
<!-- 语言 -->
|
||||||
<a-menu-item key="0">
|
<a-menu-item v-for="(i,j) in languagelist" :key="j">
|
||||||
<div class="selitem">
|
<div class="selitem" @click="setlanguage(i.value)">
|
||||||
<span>时区1c</span>
|
<span>{{i.name}}</span>
|
||||||
</div>
|
</div>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="1">
|
<!-- <a-menu-item key="1">
|
||||||
<div class="selitem">
|
<div class="selitem">
|
||||||
<span>时区2cc</span>
|
<span>时区2cc</span>
|
||||||
</div>
|
</div>
|
||||||
@ -90,7 +90,7 @@
|
|||||||
<div class="selitem">
|
<div class="selitem">
|
||||||
<span>时区3c</span>
|
<span>时区3c</span>
|
||||||
</div>
|
</div>
|
||||||
</a-menu-item>
|
</a-menu-item> -->
|
||||||
</a-menu>
|
</a-menu>
|
||||||
</template>
|
</template>
|
||||||
</a-dropdown>
|
</a-dropdown>
|
||||||
@ -177,7 +177,7 @@
|
|||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { editsystemsetting, getzonelist } from '@/api';
|
import { editsystemsetting, getcurrencys, getlanguages, getzonelist } from '@/api';
|
||||||
import router from '@/router';
|
import router from '@/router';
|
||||||
import store from '@/store';
|
import store from '@/store';
|
||||||
import { computed, defineComponent, onMounted, ref } from 'vue';
|
import { computed, defineComponent, onMounted, ref } from 'vue';
|
||||||
@ -203,7 +203,30 @@ export default defineComponent({
|
|||||||
|
|
||||||
}])
|
}])
|
||||||
const selectedzone=ref([])
|
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)
|
console.log(types.value)
|
||||||
interface Nav{
|
interface Nav{
|
||||||
name: string;
|
name: string;
|
||||||
@ -244,14 +267,20 @@ export default defineComponent({
|
|||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
zonelist.value=await getzonelist()
|
zonelist.value=await getzonelist()
|
||||||
// console.log(zonelist.value)
|
// console.log(zonelist.value)
|
||||||
// currencylist.value=await getcurrencys()
|
currencylist.value=await getcurrencys()
|
||||||
|
languagelist.value=await getlanguages()
|
||||||
})
|
})
|
||||||
|
|
||||||
function zonechange(e?: any){
|
function zonechange(e?: any){
|
||||||
// console.log(e,1002)
|
// console.log(e,1002)
|
||||||
editsystemsetting({zoneid:e})
|
editsystemsetting({zoneid:e})
|
||||||
}
|
}
|
||||||
|
function currencychange(e?: any){
|
||||||
|
editsystemsetting({currency:parseInt(e)})
|
||||||
|
}
|
||||||
|
function setlanguage(e?: any){
|
||||||
|
editsystemsetting({language:e})
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
nav,
|
nav,
|
||||||
@ -261,7 +290,10 @@ export default defineComponent({
|
|||||||
zonelist,
|
zonelist,
|
||||||
zonechange,
|
zonechange,
|
||||||
selectedzone,
|
selectedzone,
|
||||||
currencylist
|
currencylist,
|
||||||
|
currencychange,
|
||||||
|
languagelist,
|
||||||
|
setlanguage
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="cont">
|
<div class="cont">
|
||||||
<div class="title">视频数据</div>
|
<div class="title">视频数据</div>
|
||||||
<div class="info">
|
<div class="info">
|
||||||
|
@ -81,6 +81,10 @@ const routes: Array<RouteRecordRaw> = [
|
|||||||
path: "subscriber",
|
path: "subscriber",
|
||||||
component: () => import("../views/regime/Subscriber.vue")
|
component: () => import("../views/regime/Subscriber.vue")
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: "studentlist",
|
||||||
|
component: () => import("../views/regime/SignupStu.vue")
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: "live",
|
path: "live",
|
||||||
component: () => import("../views/regime/Live.vue")
|
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="videoinfo">
|
||||||
<div class="info">
|
<div class="info">
|
||||||
<VideoPlay :url="result.fileurl"></VideoPlay>
|
<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>
|
</div>
|
||||||
<VideoReview class="review"></VideoReview>
|
<VideoReview class="review"></VideoReview>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user