|
@@ -4,7 +4,8 @@ import {
|
|
|
onUnmounted,
|
|
|
reactive,
|
|
|
ref,
|
|
|
- watch
|
|
|
+ watch,
|
|
|
+ toRef
|
|
|
} from 'vue';
|
|
|
import styles from './index.module.less';
|
|
|
import { postMessage } from '@/helpers/native-message';
|
|
@@ -16,6 +17,7 @@ import iconPause from './images/icon-pause.png';
|
|
|
import beat from './images/btn-2.png';
|
|
|
import tempo from './images/btn-3.png';
|
|
|
import randDom from './images/btn-1.png';
|
|
|
+import setImg from './images/setting.png';
|
|
|
import iconPlus from './images/icon-plus.png';
|
|
|
import iconAdd from './images/icon-add.png';
|
|
|
import { getImage } from './images/music';
|
|
@@ -33,6 +35,8 @@ import { handleStartTick, hendleEndTick } from './tick';
|
|
|
import { handleStartBeat, hendleEndBeat } from './beat-tick';
|
|
|
import { browser } from '@/helpers/utils';
|
|
|
import { useRoute } from 'vue-router';
|
|
|
+import useDrag from '@/hooks/useDrag';
|
|
|
+import { state as stateData } from '@/state';
|
|
|
|
|
|
export default defineComponent({
|
|
|
name: 'tempo-practice',
|
|
@@ -76,7 +80,8 @@ export default defineComponent({
|
|
|
{ text: '190', value: 190, color: '#060606' },
|
|
|
{ text: '200', value: 200, color: '#060606' }
|
|
|
],
|
|
|
- dataJson: {} as any
|
|
|
+ dataJson: {} as any,
|
|
|
+ playPos: (route.query.imagePos || 'left') as 'left' | 'right' // 数字课堂老师端上课 镜像字段
|
|
|
});
|
|
|
// 返回
|
|
|
const goback = () => {
|
|
@@ -164,6 +169,13 @@ export default defineComponent({
|
|
|
if (ev.data.api === 'resetPlay') {
|
|
|
resetSetting();
|
|
|
}
|
|
|
+ if (ev.data.api === 'imagePos') {
|
|
|
+ if (ev.data.data === 'right') {
|
|
|
+ state.playPos = 'right';
|
|
|
+ } else {
|
|
|
+ state.playPos = 'left';
|
|
|
+ }
|
|
|
+ }
|
|
|
};
|
|
|
|
|
|
const resetSetting = () => {
|
|
@@ -187,7 +199,6 @@ export default defineComponent({
|
|
|
//
|
|
|
}
|
|
|
};
|
|
|
-
|
|
|
// watch(
|
|
|
// () => props.show,
|
|
|
// val => {
|
|
@@ -223,6 +234,17 @@ export default defineComponent({
|
|
|
expose({
|
|
|
resetSetting
|
|
|
});
|
|
|
+ let settingBoxDragData: any;
|
|
|
+ let settingBoxClass: string;
|
|
|
+ if (state.platform === 'modal') {
|
|
|
+ settingBoxClass = 'settingBoxClass_drag';
|
|
|
+ settingBoxDragData = useDrag(
|
|
|
+ [`${settingBoxClass} .iconTitBoxMove`, `${settingBoxClass} .bom_drag`],
|
|
|
+ settingBoxClass,
|
|
|
+ toRef(state, 'settingStatus'),
|
|
|
+ stateData.user.data.id
|
|
|
+ );
|
|
|
+ }
|
|
|
return () => (
|
|
|
<div
|
|
|
onClick={() => {
|
|
@@ -251,7 +273,7 @@ export default defineComponent({
|
|
|
<div class={styles.title}>
|
|
|
<img src={icon_title} />
|
|
|
</div>
|
|
|
- {state.modeType !== 'courseware' && (
|
|
|
+ {state.modeType !== 'courseware' && state.platform !== 'modal' ? (
|
|
|
<div
|
|
|
class={styles.back}
|
|
|
style={{ cursor: 'pointer' }}
|
|
@@ -261,6 +283,8 @@ export default defineComponent({
|
|
|
}}>
|
|
|
<img src={icon_setting} />
|
|
|
</div>
|
|
|
+ ) : (
|
|
|
+ <div></div>
|
|
|
)}
|
|
|
</div>
|
|
|
|
|
@@ -326,13 +350,26 @@ export default defineComponent({
|
|
|
e.stopPropagation();
|
|
|
}}>
|
|
|
{/* 播放 */}
|
|
|
- <div class={styles.play} onClick={handlePlay}>
|
|
|
- {setting.playState === 'pause' ? (
|
|
|
- <img src={iconPause} />
|
|
|
- ) : (
|
|
|
- <img src={iconPlay} />
|
|
|
- )}
|
|
|
- </div>
|
|
|
+ {state.playPos === 'left' && (
|
|
|
+ <div class={styles.play} onClick={handlePlay}>
|
|
|
+ {setting.playState === 'pause' ? (
|
|
|
+ <img src={iconPause} />
|
|
|
+ ) : (
|
|
|
+ <img src={iconPlay} />
|
|
|
+ )}
|
|
|
+ </div>
|
|
|
+ )}
|
|
|
+ {/* 老师端来的时候的设置按钮 */}
|
|
|
+ {state.platform === 'modal' && state.playPos === 'right' && (
|
|
|
+ <div
|
|
|
+ class={styles.setting}
|
|
|
+ onClick={() => {
|
|
|
+ handleStop();
|
|
|
+ state.settingStatus = true;
|
|
|
+ }}>
|
|
|
+ <img src={setImg} />
|
|
|
+ </div>
|
|
|
+ )}
|
|
|
{/* 播放类型 */}
|
|
|
<div class={styles.playType} onClick={handlePlayType}>
|
|
|
{setting.playType === 'beat' ? (
|
|
@@ -412,9 +449,35 @@ export default defineComponent({
|
|
|
}}
|
|
|
/>
|
|
|
</div>
|
|
|
+ {/* 播放 */}
|
|
|
+ {state.playPos === 'right' && (
|
|
|
+ <div class={styles.play} onClick={handlePlay}>
|
|
|
+ {setting.playState === 'pause' ? (
|
|
|
+ <img src={iconPause} />
|
|
|
+ ) : (
|
|
|
+ <img src={iconPlay} />
|
|
|
+ )}
|
|
|
+ </div>
|
|
|
+ )}
|
|
|
+ {/* 老师端来的时候的设置按钮 */}
|
|
|
+ {state.platform === 'modal' && state.playPos === 'left' && (
|
|
|
+ <div
|
|
|
+ class={styles.setting}
|
|
|
+ onClick={() => {
|
|
|
+ handleStop();
|
|
|
+ state.settingStatus = true;
|
|
|
+ }}>
|
|
|
+ <img src={setImg} />
|
|
|
+ </div>
|
|
|
+ )}
|
|
|
</div>
|
|
|
|
|
|
- <Popup v-model:show={state.settingStatus} class={styles.settingPopup}>
|
|
|
+ <Popup
|
|
|
+ style={
|
|
|
+ state.platform === 'modal' ? settingBoxDragData.styleDrag.value : {}
|
|
|
+ }
|
|
|
+ v-model:show={state.settingStatus}
|
|
|
+ class={[styles.settingPopup, settingBoxClass]}>
|
|
|
<SettingModal
|
|
|
dataJson={state.dataJson}
|
|
|
onClose={() => (state.settingStatus = false)}
|