|
@@ -10,11 +10,11 @@ import { useRoute } from 'vue-router'
|
|
|
import { postMessage } from '@/helpers/native-message'
|
|
|
import OHeader from '@/components/o-header'
|
|
|
import MusicScore from './component/musicScore'
|
|
|
+import Swiper from 'swiper'
|
|
|
|
|
|
export default defineComponent({
|
|
|
name: 'CoursewarePlay',
|
|
|
setup() {
|
|
|
- const navBarHeight = ref(0)
|
|
|
const handleInit = () => {
|
|
|
postMessage({
|
|
|
api: 'setRequestedOrientation',
|
|
@@ -25,27 +25,21 @@ export default defineComponent({
|
|
|
postMessage({
|
|
|
api: 'setBarStatus',
|
|
|
content: {
|
|
|
- status: 1
|
|
|
+ status: 0
|
|
|
+ }
|
|
|
+ })
|
|
|
+ postMessage({
|
|
|
+ api: 'setStatusBarVisibility',
|
|
|
+ content: {
|
|
|
+ isVisibility: 0
|
|
|
}
|
|
|
})
|
|
|
- const sTitleHeight = sessionStorage.getItem('titleHeight')
|
|
|
- if (sTitleHeight) {
|
|
|
- navBarHeight.value = Number(sTitleHeight)
|
|
|
- } else {
|
|
|
- postMessage({ api: 'getNavHeight' }, (res) => {
|
|
|
- const { content } = res as any
|
|
|
- console.log("🚀 ~ content", content)
|
|
|
- const dpi = content.dpi || 2
|
|
|
- if (content.titleHeight) {
|
|
|
- // 导航栏的高度
|
|
|
- const titleHeight = content.titleHeight / dpi
|
|
|
- sessionStorage.setItem('titleHeight', String(titleHeight))
|
|
|
- navBarHeight.value = titleHeight
|
|
|
- }
|
|
|
- })
|
|
|
- }
|
|
|
+
|
|
|
+ window.addEventListener('message', (val: any) => {
|
|
|
+ console.log(val)
|
|
|
+ })
|
|
|
}
|
|
|
- handleInit()
|
|
|
+
|
|
|
const route = useRoute()
|
|
|
const data = reactive({
|
|
|
detail: null,
|
|
@@ -74,11 +68,13 @@ export default defineComponent({
|
|
|
console.log(document.querySelectorAll('.player'))
|
|
|
const player = Plyr.setup('.player', {
|
|
|
debug: false,
|
|
|
- ratio: '16:9'
|
|
|
+ ratio: '16:9',
|
|
|
+ controls: ['play-large', 'play', 'progress', 'current-time', 'mute', 'volume', 'captions']
|
|
|
})
|
|
|
console.log('🚀 ~ player', player)
|
|
|
}
|
|
|
onMounted(() => {
|
|
|
+ handleInit()
|
|
|
getDetail()
|
|
|
})
|
|
|
// 返回
|
|
@@ -95,56 +91,64 @@ export default defineComponent({
|
|
|
postMessage({
|
|
|
api: 'setBarStatus',
|
|
|
content: {
|
|
|
- status: 0
|
|
|
+ status: 1
|
|
|
+ }
|
|
|
+ })
|
|
|
+ postMessage({
|
|
|
+ api: 'setStatusBarVisibility',
|
|
|
+ content: {
|
|
|
+ isVisibility: 1
|
|
|
}
|
|
|
})
|
|
|
})
|
|
|
return () => (
|
|
|
<div class={styles.coursewarePlay}>
|
|
|
- <div class={styles.backBtn} onClick={() => goback()}>
|
|
|
- <Icon name={iconBack} />
|
|
|
- 返回
|
|
|
- </div>
|
|
|
- <div class={styles.menu}>
|
|
|
- <Tabs v-model:active={data.active} ellipsis={false}>
|
|
|
- {{
|
|
|
- default: () => {
|
|
|
- return data.knowledgePointList.map((n: any) => {
|
|
|
- return <Tab title={n.name} name={n.id}></Tab>
|
|
|
- })
|
|
|
- }
|
|
|
- // 'nav-right': () => <div style={{width: '40%'}} class={styles.menuLine}></div>
|
|
|
- }}
|
|
|
- </Tabs>
|
|
|
+ <div class={styles.headerContainer}>
|
|
|
+ <div class={styles.backBtn} onClick={() => goback()}>
|
|
|
+ <Icon name={iconBack} />
|
|
|
+ 返回
|
|
|
+ </div>
|
|
|
+ <div class={styles.menu}>
|
|
|
+ <Tabs v-model:active={data.active} ellipsis={false}>
|
|
|
+ {{
|
|
|
+ default: () => {
|
|
|
+ return data.knowledgePointList.map((n: any) => {
|
|
|
+ return <Tab title={n.name} name={n.id}></Tab>
|
|
|
+ })
|
|
|
+ }
|
|
|
+ // 'nav-right': () => <div style={{width: '40%'}} class={styles.menuLine}></div>
|
|
|
+ }}
|
|
|
+ </Tabs>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<Tabs class={styles.tabsContent} animated lazyRender={false} v-model:active={data.active}>
|
|
|
{data.knowledgePointList.map((item: any) => {
|
|
|
return (
|
|
|
<Tab name={item.id}>
|
|
|
- <Swipe vertical lazyRender={false}>
|
|
|
- {Array.isArray(item?.materialList) &&
|
|
|
- item.materialList.map((m: any) => {
|
|
|
- return (
|
|
|
- <SwipeItem>
|
|
|
- {m.type === 'VIDEO' ? (
|
|
|
- <div class={styles.videoItem}>
|
|
|
- <video class="player" controls>
|
|
|
- <source src={m.content} type="video/mp4" />
|
|
|
- </video>
|
|
|
- </div>
|
|
|
- ) : m.type === 'IMG' ? (
|
|
|
- <div class={styles.imgItem}>
|
|
|
- <img src={m.content} />
|
|
|
- </div>
|
|
|
- ) : (
|
|
|
- <div class={styles.songItem}>
|
|
|
- <MusicScore music={m} />
|
|
|
- </div>
|
|
|
- )}
|
|
|
- </SwipeItem>
|
|
|
- )
|
|
|
- })}
|
|
|
- </Swipe>
|
|
|
+ <Swipe style={{ height: '100vh' }} vertical lazyRender={false}>
|
|
|
+ {Array.isArray(item?.materialList) &&
|
|
|
+ item.materialList.map((m: any) => {
|
|
|
+ return (
|
|
|
+ <SwipeItem>
|
|
|
+ {m.type === 'VIDEO' ? (
|
|
|
+ <div class={styles.videoItem}>
|
|
|
+ <video class="player" controls>
|
|
|
+ <source src={m.content} type="video/mp4" />
|
|
|
+ </video>
|
|
|
+ </div>
|
|
|
+ ) : m.type === 'IMG' ? (
|
|
|
+ <div class={styles.imgItem}>
|
|
|
+ <img src={m.content} />
|
|
|
+ </div>
|
|
|
+ ) : (
|
|
|
+ <div class={styles.songItem}>
|
|
|
+ <MusicScore music={m} />
|
|
|
+ </div>
|
|
|
+ )}
|
|
|
+ </SwipeItem>
|
|
|
+ )
|
|
|
+ })}
|
|
|
+ </Swipe>
|
|
|
</Tab>
|
|
|
)
|
|
|
})}
|