123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- import React, { useEffect, useRef, useState } from 'react'
- import styles from './index.module.scss'
- import { baseURL, myData } from '@/utils/http'
- import history from '@/utils/history'
- import classNames from 'classnames'
- import BaseImg from '@/components/BaseImg'
- import S1manor from './S1manor'
- import S2mien from './S2mien'
- import S3goods from './S3goods'
- const videoObj = {
- 探索庄园: {
- 汉代风华: 'more/1.mp4',
- 文物欣赏: 'more/2.mp4'
- },
- 汉代风华: {
- 探索庄园: 'more/3.mp4',
- 文物欣赏: 'more/4.mp4'
- },
- 文物欣赏: {
- 探索庄园: 'more/5.mp4',
- 汉代风华: 'more/6.mp4'
- }
- }
- type TxtType = '探索庄园' | '汉代风华' | '文物欣赏'
- const floorArr: TxtType[] = ['探索庄园', '汉代风华', '文物欣赏']
- function B1more() {
- const [floorTxt, setFloorTxt] = useState<TxtType>('探索庄园')
- const floorRef = useRef<TxtType>('探索庄园')
- // 需要播放的视频路径
- const [videoSrc, setVideoSrc] = useState('')
- useEffect(() => {
- if (videoSrc) {
- setTimeout(() => {
- const domAll: any = document.querySelectorAll('.A6videoBox video')
- if (domAll && domAll.length) {
- domAll.forEach((v: HTMLVideoElement) => {
- if (baseURL + videoSrc === v.src) v.play()
- else {
- v.pause()
- v.currentTime = 0
- }
- })
- }
- }, 100)
- }
- }, [videoSrc])
- useEffect(() => {
- const tempObj = Reflect.get(videoObj, floorRef.current)
- const temp = Reflect.get(tempObj, floorTxt)
- floorRef.current = floorTxt
- setVideoSrc(temp)
- }, [floorTxt])
- // 初始加载中动画
- const [isLoding, setIsLoding] = useState(true)
- return (
- <div className={styles.B1more}>
- {/* 三个主要页面 */}
- {/* <S1manor hidden={!!videoSrc || floorTxt !== '探索庄园'} isLoding={isLoding} />
- <S2mien hidden={!!videoSrc || floorTxt !== '汉代风华'} />
- <S3goods hidden={!!videoSrc || floorTxt !== '文物欣赏'} /> */}
- {/* 待完善 */}
- {/* <S1manor hidden={false} isLoding={isLoding} /> */}
- <S2mien hidden={false} />
- {/* 初始静态图 */}
- <BaseImg isShow={!isLoding} iconSrc={``} parentFu={() => setIsLoding(false)} moreSta={true} />
- {/* 6个视频 待完善 调试的时候不显示 */}
- {/* {myData.more.videos.map((src, index) => (
- <div
- className={classNames('A6videoBox', videoSrc === src ? 'A6videoBoxShow' : '')}
- key={index}
- >
- <video
- playsInline
- muted
- webkit-playsinline='true'
- x5-video-player-type='h5'
- onEnded={() => setVideoSrc('')}
- src={baseURL + src}
- >
- <source type='video/mp4' src={baseURL + src} />
- Your browser does not support the video tag.
- </video>
- </div>
- ))} */}
- {/* 底部三个按钮 */}
- <div className='A6floorBox' style={{ opacity: isLoding ? 0 : 1 }}>
- {floorArr.map(v => (
- <div
- onClick={() => setFloorTxt(v)}
- className={classNames(v === floorTxt ? 'A6FrowAc' : '')}
- key={v}
- >
- {v}
- </div>
- ))}
- </div>
- {/* 右下角的图标 */}
- <div
- hidden={floorTxt !== '探索庄园'}
- className='A6rBtn'
- style={{ opacity: isLoding ? 0 : 1 }}
- >
- <div className='A6rBtn1' title='陶庄园' onClick={() => history.push('/unend')}></div>
- <div className='A6rBtn2' title='仙居世界' onClick={() => history.push('/hots')}></div>
- </div>
- </div>
- )
- }
- const MemoB1more = React.memo(B1more)
- export default MemoB1more
|