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, name} = Taro.getCurrentInstance().preloadData as { course_id: number, name: 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 start = formatDateTime(new Date(time?.[id].start || 0), 'MM/dd HH:mm') const end = formatDateTime(new Date(time?.[id].end || 0), 'MM/dd HH:mm') return `${start} - ${end}` } function hourPercent(id: number, duration: number): number { const viewingTime = durations?.[id] || 0 console.log(viewingTime,duration) return Number((viewingTime / duration * 100).toFixed(2)) } return ( {name} {data.map(d => setHour(d.unique_ident)} className={styles.recordItem}> {formatDateTime(new Date(d.start_at), "MM/dd HH:ss")} - {formatDateTime(new Date(d.end_at), "MM/dd HH:ss")} 观看视频:{formatMinute(d.duration)} )} setShow(false)}> {show && { hours?.map(d => {d.title} {getTime(d.id)} ) } } ) } export default CurHistory