|
@@ -1,4 +1,11 @@
|
|
|
-import { defineComponent, onMounted, onUnmounted, reactive, ref } from 'vue';
|
|
|
+import {
|
|
|
+ defineComponent,
|
|
|
+ onMounted,
|
|
|
+ onUnmounted,
|
|
|
+ reactive,
|
|
|
+ ref,
|
|
|
+ watch
|
|
|
+} from 'vue';
|
|
|
import styles from './index.module.less';
|
|
|
import { postMessage } from '@/helpers/native-message';
|
|
|
import icon_title from './images/icon-title.png';
|
|
@@ -37,11 +44,16 @@ export default defineComponent({
|
|
|
modeType: {
|
|
|
type: String,
|
|
|
default: ''
|
|
|
+ },
|
|
|
+ show: {
|
|
|
+ type: Boolean,
|
|
|
+ default: false
|
|
|
}
|
|
|
},
|
|
|
setup(props, { expose }) {
|
|
|
const route = useRoute();
|
|
|
const state = reactive({
|
|
|
+ modeType: '' as any,
|
|
|
platform: route.query.platform, // microapp 老师端应用里面打开单独处理返回逻辑
|
|
|
win: route.query.win,
|
|
|
settingStatus: false,
|
|
@@ -150,17 +162,17 @@ export default defineComponent({
|
|
|
}
|
|
|
|
|
|
if (ev.data.api === 'resetPlay') {
|
|
|
- reesetSetting();
|
|
|
+ resetSetting();
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- const reesetSetting = () => {
|
|
|
+ const resetSetting = () => {
|
|
|
try {
|
|
|
let dataJson = props.dataJson;
|
|
|
if (route.query.dataJson) {
|
|
|
dataJson = JSON.parse(route.query.dataJson as any);
|
|
|
}
|
|
|
- console.log(dataJson, 'dataJson');
|
|
|
+ console.log(dataJson, 'dataJson', props.dataJson);
|
|
|
|
|
|
setting.element = dataJson.element;
|
|
|
setting.beat = dataJson.beat;
|
|
@@ -176,8 +188,24 @@ export default defineComponent({
|
|
|
}
|
|
|
};
|
|
|
|
|
|
+ // watch(
|
|
|
+ // () => props.show,
|
|
|
+ // val => {
|
|
|
+ // console.log(val, props.show);
|
|
|
+ // if (!val) {
|
|
|
+ // // resetSetting();
|
|
|
+ // handleStop();
|
|
|
+ // } else {
|
|
|
+ // resetSetting();
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // );
|
|
|
+
|
|
|
onMounted(() => {
|
|
|
- reesetSetting();
|
|
|
+ if (route.query.modeType) {
|
|
|
+ state.modeType = route.query.modeType;
|
|
|
+ }
|
|
|
+ resetSetting();
|
|
|
state.speedList.forEach((item: any) => {
|
|
|
if (item.value === setting.speed) item.color = '#1CACF1';
|
|
|
});
|
|
@@ -193,17 +221,18 @@ export default defineComponent({
|
|
|
});
|
|
|
|
|
|
expose({
|
|
|
- reesetSetting
|
|
|
+ resetSetting
|
|
|
});
|
|
|
return () => (
|
|
|
<div
|
|
|
class={[
|
|
|
styles.tempoPractice,
|
|
|
state.win === 'pc' ? styles.pc : '',
|
|
|
- state.platform === 'modal' ? styles.modal : ''
|
|
|
+ state.platform === 'modal' ? styles.modal : '',
|
|
|
+ state.modeType === 'courseware' ? styles.courseware : ''
|
|
|
]}>
|
|
|
<div class={styles.head}>
|
|
|
- {props.modeType !== 'courseware' && (
|
|
|
+ {state.modeType !== 'courseware' && (
|
|
|
<div
|
|
|
class={[styles.back, styles.iconBack]}
|
|
|
onClick={goback}
|
|
@@ -214,7 +243,7 @@ export default defineComponent({
|
|
|
<div class={styles.title}>
|
|
|
<img src={icon_title} />
|
|
|
</div>
|
|
|
- {props.modeType !== 'courseware' && (
|
|
|
+ {state.modeType !== 'courseware' && (
|
|
|
<div
|
|
|
class={styles.back}
|
|
|
style={{ cursor: 'pointer' }}
|
|
@@ -239,10 +268,7 @@ export default defineComponent({
|
|
|
]}>
|
|
|
{item.map((child: any, jIndex: number) => (
|
|
|
<div
|
|
|
- class={[styles.beat, child.selected ? styles.active : '']}
|
|
|
- onClick={(e: any) => {
|
|
|
- e.stopPropagation();
|
|
|
- }}>
|
|
|
+ class={[styles.beat, child.selected ? styles.active : '']}>
|
|
|
<div class={styles.direction}>
|
|
|
<div
|
|
|
class={styles.up}
|
|
@@ -283,11 +309,7 @@ export default defineComponent({
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
- <div
|
|
|
- class={styles.footer}
|
|
|
- onClick={(e: any) => {
|
|
|
- e.stopPropagation();
|
|
|
- }}>
|
|
|
+ <div class={styles.footer}>
|
|
|
{/* 播放 */}
|
|
|
<div class={styles.play} onClick={handlePlay}>
|
|
|
{setting.playState === 'pause' ? (
|
|
@@ -322,6 +344,15 @@ export default defineComponent({
|
|
|
if (setting.speed <= 40) return;
|
|
|
setting.speed -= 1;
|
|
|
handleStop();
|
|
|
+
|
|
|
+ state.speedList.forEach((item: any) => {
|
|
|
+ if (item.value === setting.speed) {
|
|
|
+ item.color = '#1CACF1';
|
|
|
+ setting.speed = setting.speed;
|
|
|
+ } else {
|
|
|
+ item.color = '#060606';
|
|
|
+ }
|
|
|
+ });
|
|
|
}}
|
|
|
/>
|
|
|
<Popover
|
|
@@ -354,6 +385,15 @@ export default defineComponent({
|
|
|
if (setting.speed >= 200) return;
|
|
|
setting.speed += 1;
|
|
|
handleStop();
|
|
|
+
|
|
|
+ state.speedList.forEach((item: any) => {
|
|
|
+ if (item.value === setting.speed) {
|
|
|
+ item.color = '#1CACF1';
|
|
|
+ setting.speed = setting.speed;
|
|
|
+ } else {
|
|
|
+ item.color = '#060606';
|
|
|
+ }
|
|
|
+ });
|
|
|
}}
|
|
|
/>
|
|
|
</div>
|