12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- import { defineComponent, reactive, watch } from "vue";
- import state from "/src/state";
- import { api_musicPracticeRecordSave } from "../../api";
- import { browser, getBehaviorId, getCampId } from "/src/utils";
- import { getQuery } from "/src/utils/queryString";
- import { storeData } from "/src/store";
- const recordData = reactive({
- starTime: 0,
- });
- const handleRecord = () => {
- // 不是练习模式不记录,web后台不记录
- if (state.modeType !== "practise" || state.systemType === 'web') return;
- let total = Date.now() - recordData.starTime;
- recordData.starTime = Date.now();
- if (total < 0) total = 0;
- const totalTime = total / 1000;
- const query: any = getQuery();
- const body: any = {
- clientType: storeData.user.clientType,
- musicSheetId: state.examSongId,
- sysMusicScoreId: state.examSongId,
- feature: "PRACTICE",
- practiceSource: "PRACTICE",
- playTime: totalTime,
- deviceType: browser().android ? "ANDROID" : "IOS",
- behaviorId: getBehaviorId(),
- };
- // 如果是作业模式,需要添加作业id
- if (query.workRecord || query.evaluatingRecord) {
- body.lessonDetailId = query.workRecord || query.evaluatingRecord
- }
- api_musicPracticeRecordSave(body);
- };
- export const handleNoEndExit = () => {
- if (state.playState === "play") {
- handleRecord();
- }
- };
- /**
- * 记录练习时长, 仅记录练习模式的时长
- */
- export default defineComponent({
- name: "recordingTime",
- setup() {
- watch(
- () => state.playState,
- () => {
- if (state.playState === "play") {
- recordData.starTime = Date.now();
- } else {
- handleRecord();
- }
- }
- );
- return () => <div></div>;
- },
- });
|