You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.7 KiB
49 lines
1.7 KiB
import {Text, View} from "@tarojs/components";
|
|
import styles from './history.module.scss'
|
|
import Taro from "@tarojs/taro";
|
|
import {useEffect, useState} from "react";
|
|
import {formatMinute} from "@/utils/time";
|
|
import Empty from "@/components/empty/empty";
|
|
import {userApi} from "@/api";
|
|
import Img from "@/components/image/image";
|
|
|
|
const History = () => {
|
|
const [data, setData] = useState<HourHistory[]>([])
|
|
const [durations, setDurations] = useState<Record<number, number>>({})
|
|
|
|
async function getData() {
|
|
const res = await userApi.record()
|
|
setData(res.course)
|
|
setDurations(res.durations)
|
|
}
|
|
|
|
function jump(course_id: number) {
|
|
Taro.navigateTo({url: `/pages/business/curHistory/curHistory?course_id=${course_id}`})
|
|
}
|
|
|
|
useEffect(() => {
|
|
getData()
|
|
}, [])
|
|
|
|
return (
|
|
<View className='mt-3'>
|
|
{data.length ? data.map((d, index) =>
|
|
<View key={index} className={styles.category} onClick={() => jump(d.userCourseRecord.course_id)}>
|
|
<View className={styles.thumb}>
|
|
<Img src={d.thumb} className={styles.image} width={300} height={188}/>
|
|
<View
|
|
className={styles.count}>共{d.userCourseRecord.hour_count}节/已学{d.userCourseRecord.finished_count}节</View>
|
|
</View>
|
|
<View className={styles.text}>
|
|
<View>{d.title}</View>
|
|
<View className={styles.describe}>
|
|
<Text className='mr-4'>观看{formatMinute(durations[d.id])}</Text>
|
|
<Text>学习进度:{(d.userCourseRecord.finished_count / d.userCourseRecord.hour_count * 100).toFixed(0)}%</Text>
|
|
</View>
|
|
</View>
|
|
</View>) : <Empty name='无观看记录'/>}
|
|
</View>
|
|
)
|
|
}
|
|
|
|
export default History
|
|
|