import OHeader from '@/components/o-header' import OSticky from '@/components/o-sticky' import OEmpty from '@/components/o-empty' import dayjs from 'dayjs' import isBetween from 'dayjs/plugin/isBetween' dayjs.extend(isBetween) import { Cell, Icon, List, showToast, Image, DropdownMenu, DropdownItem, Button, Calendar, CellGroup } from 'vant' import OFullRefresh from '@/components/o-full-refresh' import { defineComponent, reactive, ref, onMounted, nextTick } from 'vue' import { state as globalState } from '@/state' import { useRouter } from 'vue-router' import styles from './index.module.less' import request from '@/helpers/request' import iconTeacher from '@common/images/icon_teacher.png' import { courseEmnu } from '@/constant' export default defineComponent({ name: 'exercise-record', setup() { const platformApi = ref(globalState.platformApi) const router = useRouter() const state = reactive({ showSearchStatus: true, showPopoverTime: false, actions: [] as any, subjects: [] as any }) const forms = reactive({ startTime: dayjs().day(1).format('YYYY-MM-DD'), endTime: dayjs().day(7).format('YYYY-MM-DD'), orchestraId: '', orchestraName: '', courseType: '', courseTypeName: '', coursewareErr: null, coursewareErrName: '', keyword: '', page: 1, rows: 20 }) const refreshing = ref(false) const loading = ref(false) const finished = ref(false) const showContact = ref(true) const list = ref([]) const getList = async () => { try { if (refreshing.value) { forms.page = 1 list.value = [] refreshing.value = false } const { endTime, startTime, ...re } = forms const res = await request.post(`${platformApi.value}/courseSchedule/coursewareErrPage`, { data: { ...re, endTime: endTime + ' 23:59:59', startTime: startTime + ' 00:00:00' } }) if (list.value.length > 0 && res.data.pages === 1) { return } list.value = list.value.concat(res.data.rows || []) finished.value = res.data.current >= res.data.pages showContact.value = list.value.length > 0 forms.page = res.data.current + 1 // console.log(showContact.value, ' showContact.value ') loading.value = false } catch (e: any) { // console.log(e, 'e') const message = e.message showToast(message) showContact.value = false finished.value = true } } onMounted(() => { getList() getOrchestraList() // getSubjects() }) const onBack = () => { router.go(-1) } const checkSort = (val: any) => { console.log(val, 'val') forms.coursewareErr = val.value forms.coursewareErrName = val.name } const checkOrchestra = (val: any) => { forms.orchestraId = val.value forms.orchestraName = val.name } const checkSubject = (val: any) => { forms.courseType = val.value forms.courseTypeName = val.name } const getOrchestraList = async () => { try { const res = await request.post(`${platformApi.value}/orchestra/page`, { data: { page: 1, rows: 9999, status: 'DONE' } }) state.actions = res.data.rows.map((item: any) => { return { name: item.name, value: item.id as string } }) } catch (e: any) { const message = e.message showToast(message) } } // const getSubjects = async () => { // try { // const res = await request.post(`${platformApi.value}/subjectBasicConfig/page`, { // data: { page: 1, rows: 9999 } // }) // state.subjects = res.data.rows.map((item) => { // return { // name: item.courseTypeName, // value: item.courseType as string // } // }) // } catch (e: any) { // const message = e.message // showToast(message) // } // } const onRefresh = () => { finished.value = false // 重新加载数据 // 将 loading 设置为 true,表示处于加载状态 loading.value = true getList() } // 名称 const formatLength = (name: string) => { if (name.length > 11) { const fristName = name.substring(0, 6) const lastName = name.substring(name.length - 5, name.length) return fristName + '...' + lastName } else { return name } } const formatTime2Mins = (second: number) => { if (second) { const first = Math.floor(second / 60) const last = second % 60 return (first >= 10 ? first : '0' + first) + ':' + (last >= 10 ? last : '0' + last) } else { return '00:00' } } const dropdownMenuRef = ref() const dropdownItemRef = ref() // 重置 const onSearchReset = () => { forms.startTime = dayjs().day(1).format('YYYY-MM-DD') forms.endTime = dayjs().day(7).format('YYYY-MM-DD') forms.orchestraId = '' forms.orchestraName = '' forms.courseType = '' forms.courseTypeName = '' forms.coursewareErr = null forms.coursewareErrName = '' dropdownItemRef.value?.toggle() refreshing.value = true getList() } // 搜索 const onSearchConfirm = () => { dropdownItemRef.value?.toggle() refreshing.value = true getList() } return () => (
{item.teacherName}
{['INSTRUMENTAL_ENSEMBLE', 'EUPHONIUM_SINGLE'].includes(item.type) ? courseEmnu[item.type] : courseEmnu[item.type] + '单技课'}
= item.adviseStudyTimeSecond ? '#333' : '#f44541' }} > {formatTime2Mins(item.coursewarePlayTime)} /{formatTime2Mins(item.adviseStudyTimeSecond)}
使用时长/标准时长