1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- 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 = () => {
- // 不是练习模式不记录
- if (state.modeType !== "practise") return;
- let total = Date.now() - recordData.starTime;
- recordData.starTime = Date.now();
- if (total < 0) total = 0;
- const totalTime = total / 1000;
- const body = {
- clientType: storeData.user.clientType,
- musicSheetId: state.examSongId,
- sysMusicScoreId: state.examSongId,
- feature: "PRACTICE",
- practiceSource: "PRACTICE",
- playTime: totalTime,
- deviceType: browser().android ? "ANDROID" : "IOS",
- behaviorId: getBehaviorId(),
- };
- 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>;
- },
- });
|