|
@@ -28,7 +28,7 @@ import iconEvaluatingStart from './icons/icon-evaluatingStart.png'
|
|
|
import qs from 'query-string'
|
|
|
import CheckDelayPopup from "/src/pages/detail/CheckDelayPopup";
|
|
|
import Headphone, { HeadphoneData } from "/src/pages/detail/Headphone";
|
|
|
-import { modelType } from './index'
|
|
|
+import { modelType, followRef } from './index'
|
|
|
|
|
|
/** 初始化评测音频 */
|
|
|
export const evaluatCreateMusicPlayer = () => {
|
|
@@ -93,6 +93,9 @@ const delayData = reactive({
|
|
|
step: 1,
|
|
|
earPhoneType: "" as "" | "有线耳机" | "蓝牙耳机",
|
|
|
})
|
|
|
+
|
|
|
+let startTuneTimer: any = null
|
|
|
+
|
|
|
/** 获取耳机状态 */
|
|
|
const getWiredStatus = (): Promise<boolean> => {
|
|
|
return new Promise((resolve) => {
|
|
@@ -149,11 +152,10 @@ const delayData = reactive({
|
|
|
}
|
|
|
/** 评测效验 */
|
|
|
const checkEvaluating = async () => {
|
|
|
- delayData.erji = await getWiredStatus();
|
|
|
+ // delayData.erji = await getWiredStatus();
|
|
|
delayData.time = await getDeviceDelay();
|
|
|
// 没有设备延迟数据,显示检测组件,并持续检测耳机状态
|
|
|
if (!delayData.time || delayData.isForce) {
|
|
|
- delayData.open = (runtime.delayCheckFirst && searchParams.evaluatingRecord || !SettingState.sett.tuning) ? false : true
|
|
|
delayData.count = 0;
|
|
|
checkWiredStatus();
|
|
|
if (runtime.delayCheckFirst && searchParams.evaluatingRecord) {
|
|
@@ -216,6 +218,12 @@ const delayData = reactive({
|
|
|
postMessage({
|
|
|
api: "endTune"
|
|
|
})
|
|
|
+ // 提前关闭或者返回,需要重置step状态
|
|
|
+ if (delayData.open === false) {
|
|
|
+ setTimeout(() => {
|
|
|
+ delayData.step = 1
|
|
|
+ }, 500);
|
|
|
+ }
|
|
|
} else if (state === 'finishTune') {
|
|
|
delayData.step = 6
|
|
|
// 效音完成
|
|
@@ -241,6 +249,7 @@ const delayData = reactive({
|
|
|
const handleStopCheckDelay = () => {
|
|
|
runtime.delayCheckFirst = true
|
|
|
delayData.open = false
|
|
|
+ startButtonShow.value = true
|
|
|
setTimeout(() => {
|
|
|
delayData.checkStatus = 'init'
|
|
|
delayData.step = 1
|
|
@@ -254,6 +263,7 @@ const delayData = reactive({
|
|
|
delayData.checkStatus = 'init'
|
|
|
delayData.step = 1
|
|
|
handleToggleTune('stop')
|
|
|
+ clearTimeout(startTuneTimer)
|
|
|
}
|
|
|
/** 开始检测设备延迟 */
|
|
|
const handleStartCheckDelay = async () => {
|
|
@@ -265,8 +275,10 @@ const delayData = reactive({
|
|
|
return;
|
|
|
}
|
|
|
delayData.checkStatus = 'ing';
|
|
|
- setTimeout(() => {
|
|
|
- startTune()
|
|
|
+ startTuneTimer = setTimeout(() => {
|
|
|
+ if (delayData.open === true) {
|
|
|
+ startTune()
|
|
|
+ }
|
|
|
}, 2000)
|
|
|
}
|
|
|
|
|
@@ -886,6 +898,7 @@ export default defineComponent({
|
|
|
setup(props, { expose }) {
|
|
|
onMounted(async () => {
|
|
|
console.log('进入评测模块')
|
|
|
+ delayData.open = (runtime.delayCheckFirst && searchParams.evaluatingRecord || !SettingState.sett.tuning) ? false : true
|
|
|
if (!SettingState.eva.mute) {
|
|
|
RuntimeUtils.changeAllMode();
|
|
|
} else {
|
|
@@ -946,7 +959,7 @@ export default defineComponent({
|
|
|
<Evaluating data={endResult.value} />
|
|
|
|
|
|
<Transition name="finish">
|
|
|
- {startButtonShow.value && (
|
|
|
+ {startButtonShow.value && !delayData.open && modelType.value !== 'init' && (
|
|
|
<div
|
|
|
style={{
|
|
|
backgroundImage: `url(${iconEvaluatingStart})`,
|
|
@@ -977,21 +990,23 @@ export default defineComponent({
|
|
|
)}
|
|
|
|
|
|
{/* 延迟检测窗口 */}
|
|
|
- <Popup
|
|
|
- teleport="body"
|
|
|
- class="popup-scale"
|
|
|
- transition="van-scale"
|
|
|
- overlay={false}
|
|
|
- show={delayData.open}
|
|
|
- onClose={() => handleCheckDelayEnd()}
|
|
|
- >
|
|
|
- <CheckDelayPopup
|
|
|
- delayData={delayData}
|
|
|
- onStartCheckDelay={() => handleStartCheckDelay()}
|
|
|
- onClose={() => handleStopCheckDelay()}
|
|
|
- onBack={() => handleDelayBack()}
|
|
|
- />
|
|
|
- </Popup>
|
|
|
+ <Transition>
|
|
|
+ <Popup
|
|
|
+ teleport="body"
|
|
|
+ class="popup-scale"
|
|
|
+ transition="van-scale"
|
|
|
+ overlay={false}
|
|
|
+ show={delayData.open}
|
|
|
+ onClose={() => handleCheckDelayEnd()}
|
|
|
+ >
|
|
|
+ <CheckDelayPopup
|
|
|
+ delayData={delayData}
|
|
|
+ onStartCheckDelay={() => handleStartCheckDelay()}
|
|
|
+ onClose={() => handleStopCheckDelay()}
|
|
|
+ onBack={() => handleDelayBack()}
|
|
|
+ />
|
|
|
+ </Popup>
|
|
|
+ </Transition>
|
|
|
</Teleport>
|
|
|
)
|
|
|
}
|