import {Image, Progress, View} from "@tarojs/components"; import Taro from "@tarojs/taro"; import styles from './curHistory.module.scss' import {useState} from "react"; import {userApi} from "@/api"; import {formatDateTime, formatMinute} from "@/utils/time"; import CustomPageContainer from "@/components/custom-page-container/custom-page-container"; const CurHistory = () => { const [show, setShow] = useState(false) const {course_id} = Taro.getCurrentInstance().router?.params as unknown as { course_id: string } const [data, setData] = useState([]) const [course, setCourse] = useState(null) const [hours, setHours] = useState(null) const [durations, setDuration] = useState | null>(null) const [time, setTime] = useState | null>(null) Taro.useLoad(() => { // Taro.setNavigationBarTitle({title: name}) userApi.courseRecord(course_id).then(res => { setData(Object.values(res.data)) setCourse(res.course) }) }) async function setHour(unique_ident: number) { const res = await userApi.hourCourse(course_id, unique_ident) setHours(Object.values(res.courseHour)) setDuration(res.duration) setTime(res.date) setShow(true) } function percent(duration: number): number { if (!course?.course_duration) return 0 return Number((duration / course.course_duration * 100).toFixed(2)) } function getTime(id: number): string { const day = formatDateTime(new Date(time?.[id].start || 0), 'MM-dd') const start = formatDateTime(new Date(time?.[id].start || 0), 'HH:mm:ss') const end = formatDateTime(new Date(time?.[id].end || 0), 'HH:mm:ss') return `${day} ${start} - ${end}` } function getCurTime(startNow: string, endNow: string): string { const day = formatDateTime(new Date(startNow), 'MM-dd') const start = formatDateTime(new Date(startNow), 'HH:mm:ss') const end = formatDateTime(new Date(endNow), 'HH:mm:ss') return `${day} ${start} - ${end}` } function hourPercent(id: number, duration: number): number { const viewingTime = durations?.[id] || 0 return Number((viewingTime / duration * 100).toFixed(2)) } return ( 共{course?.class_hour}节/已学{course?.finished_hour_count || 0}节 {course?.title} {data.map((d, index) => setHour(d.unique_ident)} className={styles.recordItem}> 第{index + 1}次观看 {getCurTime(d.start_at, d.end_at)} 观看视频:{formatMinute(d.duration)} )} setShow(false)}> {hours?.map(d => {d.title} {getTime(d.id)} )} ) } export default CurHistory