import { defineComponent, onMounted, watch, reactive, ref, nextTick, computed } from "vue"; import styles from "./index.module.less"; import backImg from "./image/icon-back.png"; import titmeImg from "./image/modeTitle.png"; import nameImg from "./image/zt.png"; import lxMode from "./image/lxMode.json"; import glMode from "./image/glMode.json"; import pcMode from "./image/pcMode.json"; import modeTitle from "./image/modeTitle.json"; import modeVip from "./image/mode_vip.png"; import modesVip from "./image/mode_svip.png"; import { headTopData, checkMusicBuy } from "./index"; import { getQuery } from "/src/utils/queryString"; import state from "/src/state"; import { studentQueryUserInfo } from "../api"; import { usePageVisibility } from "@vant/use"; import { Vue3Lottie } from "vue3-lottie"; import { popImgs, hanldeConfirmPop, hanldeClosePop, evaluatingData } from "/src/view/evaluating" import { Popup } from "vant"; import AbnormalPop from "/src/view/abnormal-pop"; import { smoothAnimationState } from "../view-detail/smoothAnimation"; import { browser } from "/src/utils"; import { stat } from "fs"; export default defineComponent({ name: "modeView", setup() { const modeImgDom1 = ref(); const modeImgDom2 = ref(); const modeImgDom3 = ref(); const modeImgDom4 = ref(); watch( () => headTopData.modeType, (value, oldValue) => { // headTopData.modeType 值 刚开始是 "" 所以 第一次切换时候不触发播放动画 if (!oldValue) return; nextTick(() => { if (value === "show") { modeImgDom1.value?.pause(); modeImgDom2.value?.pause(); modeImgDom3.value?.pause(); modeImgDom4.value?.stop(); } else if (value === "init") { modeImgDom1.value?.play(); modeImgDom2.value?.play(); modeImgDom3.value?.play(); modeImgDom4.value?.goToAndPlay(0); } }); } ); watch( () => evaluatingData.socketErrorStatus, () => { if (evaluatingData.socketErrorStatus === 2) { setTimeout(() => { evaluatingData.socketErrorPop = false; }, 1000); } } ); const browserInfo = browser(); const isPad = navigator?.userAgent?.includes("UAWEIVRD-W09") || browserInfo?.iPad || browserInfo.isTablet; // vip图标 const showVip = computed(() => { return state.vipType === "NOT_VIP" && state.paymentType !== "FREE" && !state.musicBuyInfo.buyed }); // svip图标 const showsVip = computed(() => { return !state.vipType?.includes("SVIP") && state.paymentType !== "FREE" && !state.musicBuyInfo.buyed }); return () => (