|
@@ -2,6 +2,7 @@ import request from '@/helpers/request'
|
|
|
import { getSecondRPM } from '@/helpers/utils'
|
|
|
import { state } from '@/state'
|
|
|
import { usePageVisibility } from '@vant/use'
|
|
|
+import dayjs from 'dayjs'
|
|
|
import { computed, defineComponent, onMounted, onUnmounted, reactive, ref, watch } from 'vue'
|
|
|
import { useRoute } from 'vue-router'
|
|
|
import styles from './index.module.less'
|
|
@@ -27,13 +28,11 @@ export default defineComponent({
|
|
|
})
|
|
|
const handleOut = () => {
|
|
|
clearInterval(timerRecord.value)
|
|
|
- handleRecord()
|
|
|
+ handleRecord(true)
|
|
|
}
|
|
|
- expose({
|
|
|
- handleOut
|
|
|
- })
|
|
|
const route = useRoute()
|
|
|
const saveModel = reactive({
|
|
|
+ loading: true,
|
|
|
/**当前时长 */
|
|
|
currentTime: 0,
|
|
|
/**记录的开始时间 */
|
|
@@ -52,6 +51,7 @@ export default defineComponent({
|
|
|
})
|
|
|
|
|
|
const getPlayTime = async () => {
|
|
|
+ saveModel.loading = true
|
|
|
try {
|
|
|
const res: any = await request.post(
|
|
|
`${state.platformApi}/courseSchedule/getCoursewarePlayTime?courseScheduleId=${route.query.courseId}`
|
|
@@ -60,15 +60,17 @@ export default defineComponent({
|
|
|
saveModel.playTime = res.data
|
|
|
}
|
|
|
} catch (error) {}
|
|
|
+ saveModel.loading = false
|
|
|
handleStartInterval()
|
|
|
}
|
|
|
|
|
|
/** 记录时长 */
|
|
|
- const handleRecord = () => {
|
|
|
+ const handleRecord = (isOut = false) => {
|
|
|
saveModel.currentTime++
|
|
|
const playTime = saveModel.currentTime - saveModel.startTime
|
|
|
// 1分钟记录1次
|
|
|
- if (playTime >= 5) {
|
|
|
+ if (playTime >= 5 || isOut) {
|
|
|
+ console.log('isOut', isOut)
|
|
|
saveModel.startTime = saveModel.currentTime
|
|
|
request.post(`${state.platformApi}/courseSchedule/coursewarePlayTime`, {
|
|
|
params: {
|
|
@@ -82,7 +84,7 @@ export default defineComponent({
|
|
|
const timerRecord = ref()
|
|
|
const handleStartInterval = () => {
|
|
|
clearInterval(timerRecord.value)
|
|
|
- timerRecord.value = setInterval(handleRecord, 1000)
|
|
|
+ timerRecord.value = setInterval(() => handleRecord(), 1000)
|
|
|
}
|
|
|
onMounted(() => {
|
|
|
getPlayTime()
|
|
@@ -93,7 +95,7 @@ export default defineComponent({
|
|
|
return () => (
|
|
|
<div
|
|
|
class={styles.playRecordTimeWrap}
|
|
|
- style={{ display: saveModel.currentTime + saveModel.playTime > total.value ? 'none' : '' }}
|
|
|
+ style={{ display: saveModel.loading || (saveModel.currentTime + saveModel.playTime > total.value) ? 'none' : '' }}
|
|
|
>
|
|
|
<div class={styles.playRecordTime}>
|
|
|
<div class={styles.timeLoad}></div>
|