直播学生列表
This commit is contained in:
		
							parent
							
								
									bf3ba7228e
								
							
						
					
					
						commit
						a97f2448e7
					
				@ -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