|
@@ -7,12 +7,12 @@ import { state } from '@/state'
|
|
import { useRoute, useRouter } from 'vue-router'
|
|
import { useRoute, useRouter } from 'vue-router'
|
|
import iconBack from '../coursewarePlay/image/back.svg'
|
|
import iconBack from '../coursewarePlay/image/back.svg'
|
|
import { postMessage, promisefiyPostMessage } from '@/helpers/native-message'
|
|
import { postMessage, promisefiyPostMessage } from '@/helpers/native-message'
|
|
-import iconLoop from '../coursewarePlay/image/icon-loop.svg'
|
|
|
|
-import iconLoopActive from '../coursewarePlay/image/icon-loop-active.svg'
|
|
|
|
-import iconplay from '../coursewarePlay/image/icon-play.svg'
|
|
|
|
-import iconpause from '../coursewarePlay/image/icon-pause.svg'
|
|
|
|
-import iconGoPractice from '../coursewarePlay/image/icon-go-practice.svg'
|
|
|
|
-import iconVideobg from '../coursewarePlay/image/icon-videobg.png'
|
|
|
|
|
|
+// import iconLoop from '../coursewarePlay/image/icon-loop.svg'
|
|
|
|
+// import iconLoopActive from '../coursewarePlay/image/icon-loop-active.svg'
|
|
|
|
+// import iconplay from '../coursewarePlay/image/icon-play.svg'
|
|
|
|
+// import iconpause from '../coursewarePlay/image/icon-pause.svg'
|
|
|
|
+// import iconGoPractice from '../coursewarePlay/image/icon-go-practice.svg'
|
|
|
|
+// import iconVideobg from '../coursewarePlay/image/icon-videobg.png'
|
|
import { browser, getSecondRPM } from '@/helpers/utils'
|
|
import { browser, getSecondRPM } from '@/helpers/utils'
|
|
import qs from 'query-string'
|
|
import qs from 'query-string'
|
|
import { Vue3Lottie } from 'vue3-lottie'
|
|
import { Vue3Lottie } from 'vue3-lottie'
|
|
@@ -141,6 +141,8 @@ export default defineComponent({
|
|
const setRecord = async (trainings: any[]) => {
|
|
const setRecord = async (trainings: any[]) => {
|
|
if (Array.isArray(trainings)) {
|
|
if (Array.isArray(trainings)) {
|
|
data.trainings = trainings.map((n: any) => {
|
|
data.trainings = trainings.map((n: any) => {
|
|
|
|
+ const materialRefs = item.materialRefs ? item.materialRefs : []
|
|
|
|
+ const materialMusicId = materialRefs.length > 0 ? materialRefs[0].resourceId : null
|
|
try {
|
|
try {
|
|
n.trainingContent = JSON.parse(n.trainingContent)
|
|
n.trainingContent = JSON.parse(n.trainingContent)
|
|
} catch (error) {
|
|
} catch (error) {
|
|
@@ -148,6 +150,7 @@ export default defineComponent({
|
|
}
|
|
}
|
|
return {
|
|
return {
|
|
...n,
|
|
...n,
|
|
|
|
+ materialMusicId,
|
|
currentTime: 0,
|
|
currentTime: 0,
|
|
duration: 100,
|
|
duration: 100,
|
|
paused: true,
|
|
paused: true,
|
|
@@ -344,14 +347,29 @@ export default defineComponent({
|
|
})
|
|
})
|
|
|
|
|
|
// 去练习
|
|
// 去练习
|
|
- const gotoPractice = () => {
|
|
|
|
|
|
+ const gotoPractice = (e: any) => {
|
|
handleStopVideo()
|
|
handleStopVideo()
|
|
- const url = window.location.origin + location.pathname + `#/accompany`
|
|
|
|
|
|
+ // const url = window.location.origin + location.pathname + `#/accompany`
|
|
|
|
+ // postMessage({
|
|
|
|
+ // api: 'openWebView',
|
|
|
|
+ // content: {
|
|
|
|
+ // url: url,
|
|
|
|
+ // orientation: 1
|
|
|
|
+ // }
|
|
|
|
+ // })
|
|
|
|
+ e.stopPropagation()
|
|
|
|
+ const parmas = qs.stringify({
|
|
|
|
+ id: item.value.materialMusicId
|
|
|
|
+ })
|
|
|
|
+ const src = `${location.origin}/orchestra-music-score/?` + parmas
|
|
postMessage({
|
|
postMessage({
|
|
- api: 'openWebView',
|
|
|
|
|
|
+ api: 'openAccompanyWebView',
|
|
content: {
|
|
content: {
|
|
- url: url,
|
|
|
|
- orientation: 1
|
|
|
|
|
|
+ url: src,
|
|
|
|
+ orientation: 0,
|
|
|
|
+ isHideTitle: true,
|
|
|
|
+ statusBarTextColor: false,
|
|
|
|
+ isOpenLight: true
|
|
}
|
|
}
|
|
})
|
|
})
|
|
}
|
|
}
|
|
@@ -410,16 +428,29 @@ export default defineComponent({
|
|
</div>
|
|
</div>
|
|
)}
|
|
)}
|
|
</Transition>
|
|
</Transition>
|
|
- <Transition name="right">
|
|
|
|
- {activeData.model && (
|
|
|
|
- <div class={styles.btnGroup}>
|
|
|
|
- <div class={styles.btnItem} onClick={gotoPractice}>
|
|
|
|
- <img src={iconGoPractice} class={styles.btnImg} />
|
|
|
|
- <span>去练习</span>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- )}
|
|
|
|
- </Transition>
|
|
|
|
|
|
+ {/* <Transition name="right"> */}
|
|
|
|
+
|
|
|
|
+ {data.videoData?.materialMusicId && (
|
|
|
|
+ <div
|
|
|
|
+ class={[styles.goPractice, activeData.model ? '' : styles.hide]}
|
|
|
|
+ onClick={gotoPractice}
|
|
|
|
+ ></div>
|
|
|
|
+ )}
|
|
|
|
+
|
|
|
|
+ {/* // <div class={styles.btnGroup}>
|
|
|
|
+ // <div class={styles.btnItem} onClick={gotoPractice}>
|
|
|
|
+ // <img src={iconGoPractice} class={styles.btnImg} />
|
|
|
|
+ // <span>去练习</span>
|
|
|
|
+ // </div>
|
|
|
|
+ // </div> */}
|
|
|
|
+
|
|
|
|
+ {/* {item.value.materialMusicId && (
|
|
|
|
+ <div
|
|
|
|
+ class={[styles.goPractice, data.showBar ? '' : styles.hide]}
|
|
|
|
+ onClick={gotoAccomany}
|
|
|
|
+ ></div>
|
|
|
|
+ )} */}
|
|
|
|
+ {/* </Transition> */}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
)
|
|
)
|