import ColHeader from '@/components/col-header' import ColSearch from '@/components/col-search' import { Sticky, Image, List, Icon, Popup } from 'vant' import { defineComponent } from 'vue' import styles from './index.module.less' import request from '@/helpers/request' import ColResult from '@/components/col-result' import LiveItem from './live-item' import banner from '../video-class/images/banner.png' import { state } from '@/state' import OrganSearch from '@/student/practice-class/model/organ-search' export default defineComponent({ name: 'liveClass', data() { const sessionSubjectId = sessionStorage.getItem('liveClassSubjectId') const subjectIds = state.user.data?.subjectId || '' const subjectId = subjectIds ? Number(subjectIds.split(',')[0]) : null console.log(sessionSubjectId, subjectId, 'subject') return { apiSuffix: state.platformType === 'STUDENT' ? '/api-student' : '/api-teacher', list: [], dataShow: true, // 判断是否有数据 loading: false, finished: false, searchStatus: false, openStatus: false, subjectList: [], sessionSubjectId, lockLoading: false, params: { search: '', subjectId: (sessionSubjectId || subjectId || null) as any, subjectName: '全部', groupStatus: 'APPLY', page: 1, rows: 20 } } }, async mounted() { try { const res = await request.get( `${this.apiSuffix}/subject/subjectSelect?type=LIVE` ) this.subjectList = res.data || [] } catch { // } const list = this.subjectList const userSubjectId = this.params.subjectId ? [this.params.subjectId] : state.user.data?.subjectId.split(',').map(n => parseInt(n)) || [ this.params.subjectId ] let isRest = true for (let i = 0; i < list.length; i++) { const subjects = (list[i] as any).subjects || [] for (let j = 0; j < subjects.length; j++) { if (userSubjectId.includes(subjects[j].id + '')) { console.log('true') this.params.subjectId = subjects[j].id this.params.subjectName = subjects[j].name isRest = false break } } } console.log(isRest, 'isRest') if (isRest && list.length && (list[0] as any).subjects) { this.params.subjectId = (list[0] as any).subjects[0].id this.params.subjectName = (list[0] as any).subjects[0].name } sessionStorage.removeItem('liveClassSubjectId') this.getList() }, methods: { onSort() { this.params.page = 1 this.list = [] this.dataShow = true // 判断是否有数据 this.loading = false this.finished = false this.searchStatus = false this.getList() }, onSearch(value: string) { this.params.search = value this.onSort() }, async getList() { try { if (this.lockLoading) return this.lockLoading = true const params: any = { ...this.params } // 只有学生端会有version if (state.version) { params.version = state.version || '' // 处理ios审核版本 params.platform = state.platformType === 'STUDENT' ? 'ios-student' : 'ios-teacher' } // 判断是哪个端 const url = state.platformType === 'STUDENT' ? '/api-student/courseGroup/queryPageCourseGroup' : '/api-teacher/courseGroup/queryPageCourseGroup' // 处理搜索,老师端分享用 // if (state.platformType === 'TEACHER') { params.myself = false // } const res = await request.post(url, { data: { ...params } }) this.lockLoading = false this.loading = false const result = res.data || {} // 处理重复请求数据 if (this.list.length > 0 && result.pageNo === 1) { return } this.list = this.list.concat(result.rows || []) this.finished = result.pageNo >= result.totalPage this.params.page = result.pageNo + 1 this.dataShow = this.list.length > 0 } catch { this.dataShow = false this.finished = true this.lockLoading = false } }, onDetail(item: any) { this.params.subjectId && sessionStorage.setItem('liveClassSubjectId', this.params.subjectId) const params: any = { groupId: item.courseGroupId } // 判断是否是老师端,如果是,则添加分享按钮 if (state.platformType === 'TEACHER') { params.share = 1 } this.$router.push({ path: '/liveDetail', query: params }) } }, render() { return (