|
@@ -1,4 +1,4 @@
|
|
-import { defineComponent, reactive, ref, watch } from "vue";
|
|
|
|
|
|
+import { defineComponent, onMounted, reactive, ref, watch } from "vue";
|
|
import { Popover, Icon } from "vant";
|
|
import { Popover, Icon } from "vant";
|
|
import icons from "../icons/index.json";
|
|
import icons from "../icons/index.json";
|
|
import iconChild from "./icons/child.png";
|
|
import iconChild from "./icons/child.png";
|
|
@@ -15,6 +15,7 @@ export default defineComponent({
|
|
name: "sound-effect",
|
|
name: "sound-effect",
|
|
emits: ["close"],
|
|
emits: ["close"],
|
|
setup(props, { emit }) {
|
|
setup(props, { emit }) {
|
|
|
|
+ const soundEffectSuccess = ref(false)
|
|
const scoreData = getScoreData(state.subjectId);
|
|
const scoreData = getScoreData(state.subjectId);
|
|
const soundEffectData = reactive({
|
|
const soundEffectData = reactive({
|
|
step: 0,
|
|
step: 0,
|
|
@@ -24,33 +25,39 @@ export default defineComponent({
|
|
watch(
|
|
watch(
|
|
() => evaluatingData.soundEffectFrequency,
|
|
() => evaluatingData.soundEffectFrequency,
|
|
() => {
|
|
() => {
|
|
- // console.log('吹奏',evaluatingData.soundEffectFrequency , scoreData.frequency)
|
|
|
|
|
|
+ if (soundEffectSuccess.value) return;
|
|
|
|
+ // console.log('吹奏',evaluatingData.soundEffectFrequency , scoreData.frequency)
|
|
const trend =
|
|
const trend =
|
|
Math.abs(evaluatingData.soundEffectFrequency - scoreData.frequency) <= 10 ? 1 : evaluatingData.soundEffectFrequency > scoreData.frequency ? 2 : 0;
|
|
Math.abs(evaluatingData.soundEffectFrequency - scoreData.frequency) <= 10 ? 1 : evaluatingData.soundEffectFrequency > scoreData.frequency ? 2 : 0;
|
|
soundEffectData.step = trend;
|
|
soundEffectData.step = trend;
|
|
if (trend !== 1) {
|
|
if (trend !== 1) {
|
|
soundEffectData.time = Date.now();
|
|
soundEffectData.time = Date.now();
|
|
}
|
|
}
|
|
- // 持续时间达到3秒钟,效音成功
|
|
|
|
|
|
+ // 持续时间达到3秒钟,效音成功
|
|
if (Date.now() - soundEffectData.time > 3000) {
|
|
if (Date.now() - soundEffectData.time > 3000) {
|
|
- // console.log("效音完成");
|
|
|
|
- emit('close')
|
|
|
|
|
|
+ console.log("效音完成");
|
|
|
|
+ soundEffectSuccess.value = true
|
|
|
|
+ emit("close");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
);
|
|
);
|
|
|
|
|
|
/** 跳过本次 */
|
|
/** 跳过本次 */
|
|
- const handleSelect = (e: {text: string}) => {
|
|
|
|
- if (e.text === '关闭校音'){
|
|
|
|
- emit('close', true)
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- emit('close')
|
|
|
|
|
|
+ const handleSelect = (e: { text: string }) => {
|
|
|
|
+ if (e.text === "关闭校音") {
|
|
|
|
+ emit("close", true);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ emit("close");
|
|
};
|
|
};
|
|
|
|
+
|
|
|
|
+ onMounted(() => {
|
|
|
|
+ soundEffectSuccess.value = false
|
|
|
|
+ })
|
|
return () => (
|
|
return () => (
|
|
<div class={styles["sound-effect"]}>
|
|
<div class={styles["sound-effect"]}>
|
|
<div class={styles.top}>
|
|
<div class={styles.top}>
|
|
- <div class={styles.back} onClick={() => emit('close')}>
|
|
|
|
|
|
+ <div class={styles.back} onClick={() => emit("close")}>
|
|
<img src={icons["arrow-left-background"]} />
|
|
<img src={icons["arrow-left-background"]} />
|
|
</div>
|
|
</div>
|
|
<Popover trigger="click" class={styles.skibtns} actions={[{ text: "跳过本次" }, { text: "关闭校音" }]} onSelect={handleSelect}>
|
|
<Popover trigger="click" class={styles.skibtns} actions={[{ text: "跳过本次" }, { text: "关闭校音" }]} onSelect={handleSelect}>
|
|
@@ -58,7 +65,7 @@ export default defineComponent({
|
|
reference: () => (
|
|
reference: () => (
|
|
<div class={styles.rightSkipBtn}>
|
|
<div class={styles.rightSkipBtn}>
|
|
<span>跳过本次</span>
|
|
<span>跳过本次</span>
|
|
- <Icon name="play" color="var(--van-primary-color)" class={styles.tran}/>
|
|
|
|
|
|
+ <Icon name="play" color="var(--van-primary-color)" class={styles.tran} />
|
|
</div>
|
|
</div>
|
|
),
|
|
),
|
|
}}
|
|
}}
|