|
@@ -1,9 +1,178 @@
|
|
|
-import React from 'react'
|
|
|
+import React, { useCallback, useEffect, useRef, useState } from 'react'
|
|
|
import styles from './index.module.scss'
|
|
|
+import useDataUrl from '@/components/ownUse/useDataUrl'
|
|
|
+import { myData } from '@/utils/http'
|
|
|
+import classNames from 'classnames'
|
|
|
+import { domDelOwnFu } from '@/utils/utilsSome'
|
|
|
+import { ArrowRightOutlined } from '@ant-design/icons'
|
|
|
+import history from '@/utils/history'
|
|
|
+import { useSelector } from 'react-redux'
|
|
|
+import { RootState } from '@/store'
|
|
|
+
|
|
|
function A4dance() {
|
|
|
+ const { dataUrlSame } = useDataUrl()
|
|
|
+
|
|
|
+ const isHH = useSelector((state: RootState) => state.A0Layout.isHH)
|
|
|
+
|
|
|
+ // 待完善
|
|
|
+ const [loding, setLoding] = useState(100)
|
|
|
+
|
|
|
+ const timeRR = useRef(-1)
|
|
|
+
|
|
|
+ useEffect(() => {
|
|
|
+ clearInterval(timeRR.current)
|
|
|
+ timeRR.current = window.setInterval(() => {
|
|
|
+ if (loding >= 100) {
|
|
|
+ clearInterval(timeRR.current)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ setLoding(loding + 1)
|
|
|
+ }, 30)
|
|
|
+ }, [loding])
|
|
|
+
|
|
|
+ // 点击继续
|
|
|
+ const btnStart = useCallback(() => {
|
|
|
+ if (loding >= 100) {
|
|
|
+ setLoding(110)
|
|
|
+
|
|
|
+ // 0.5s之后删除自己
|
|
|
+ setTimeout(() => {
|
|
|
+ domDelOwnFu('.A4base')
|
|
|
+ }, 500)
|
|
|
+ }
|
|
|
+ }, [loding])
|
|
|
+
|
|
|
+ // 点击 跳下一个章节
|
|
|
+
|
|
|
+ const [lastVideo, setLastVideo] = useState(false)
|
|
|
+
|
|
|
+ const videoRefLast = useRef<HTMLVideoElement>(null)
|
|
|
+
|
|
|
+ const lastVideoFu = useCallback(() => {
|
|
|
+ setLastVideo(true)
|
|
|
+
|
|
|
+ setTimeout(() => {
|
|
|
+ if (videoRefLast.current) {
|
|
|
+ videoRefLast.current.play()
|
|
|
+ }
|
|
|
+ }, 100)
|
|
|
+
|
|
|
+ // 0.5s之后删除自己
|
|
|
+ setTimeout(() => {
|
|
|
+ domDelOwnFu('.pvBox')
|
|
|
+ }, 500)
|
|
|
+ }, [])
|
|
|
+
|
|
|
+ // 底部选中
|
|
|
+ const [floorAc, setFloorAc] = useState(-1)
|
|
|
+
|
|
|
return (
|
|
|
- <div className={styles.A4dance}>
|
|
|
- <h1>A4dance</h1>
|
|
|
+ <div className={styles.A4dance} style={{ backgroundImage: `url(${dataUrlSame}dance/bj.jpg)` }}>
|
|
|
+ {/* 初始页面 */}
|
|
|
+ <div className={classNames('A4base', loding === 110 ? 'A4baseHide' : '')}>
|
|
|
+ <img src={`${dataUrlSame}dance/mulu.png`} alt='' />
|
|
|
+ <div className='A4baseBtn' onClick={btnStart}>
|
|
|
+ {/* anpg动图 */}
|
|
|
+ <div className='A4BIcon'>
|
|
|
+ <img src={`${dataUrlSame}visit/arrow.png`} alt='' />
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <img src={`${dataUrlSame}visit/btn.png`} alt='' />
|
|
|
+
|
|
|
+ <div className='A4Btxt'>{loding >= 100 ? '点击继续' : '加载中'}</div>
|
|
|
+ {loding >= 100 ? null : (
|
|
|
+ <div className='A4Bxian'>
|
|
|
+ <div>
|
|
|
+ <div style={{ width: loding + '%' }}></div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ )}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ {/* 主要内容 */}
|
|
|
+ <div
|
|
|
+ className={classNames(
|
|
|
+ 'pvBox',
|
|
|
+ lastVideo ? 'pvBoxHide' : '',
|
|
|
+ loding === 110 ? 'pvBoxShow' : 'pvBoxHide'
|
|
|
+ )}
|
|
|
+ >
|
|
|
+ {/* 热点 待完善*/}
|
|
|
+ {myData.dance.hot.map((item, index) => (
|
|
|
+ <div
|
|
|
+ key={index}
|
|
|
+ className='pvHot'
|
|
|
+ style={{
|
|
|
+ top: isHH ? item.hhLoc.top : item.ssLoc.top,
|
|
|
+ right: isHH ? item.hhLoc.right : item.ssLoc.right
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ <img src={`${dataUrlSame}dance/hotIcon.png`} alt='' />
|
|
|
+ </div>
|
|
|
+ ))}
|
|
|
+
|
|
|
+ {/* 底部 */}
|
|
|
+ <div className='pvfloor'>
|
|
|
+ {myData.dance.floor.map((item, index) => (
|
|
|
+ <div
|
|
|
+ key={index}
|
|
|
+ onClick={() => setFloorAc(index)}
|
|
|
+ className={classNames('pvflRow', floorAc === index ? 'pvflRowAc' : '')}
|
|
|
+ >
|
|
|
+ {/* 蒙版 */}
|
|
|
+ <div className='pvflR1'></div>
|
|
|
+ {/* 底图 */}
|
|
|
+ <div className='pvflR2'>
|
|
|
+ <img src={dataUrlSame + item.imgSrc} alt='' />
|
|
|
+ </div>
|
|
|
+
|
|
|
+ {/* 文字 */}
|
|
|
+ <div className='pvflR3'>{item.name}</div>
|
|
|
+ </div>
|
|
|
+ ))}
|
|
|
+ </div>
|
|
|
+
|
|
|
+ {/* 跳到下一章 */}
|
|
|
+ <div className='pvBtn'>
|
|
|
+ <img src={`${dataUrlSame}visit/btn.png`} alt='' />
|
|
|
+ <div onClick={lastVideoFu}>
|
|
|
+ 后厨备宴
|
|
|
+ <ArrowRightOutlined />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ {/* 右下角按钮 */}
|
|
|
+ <div className='pvRRbtn'>
|
|
|
+ {/* 漫游 待完善 */}
|
|
|
+ <div className='pvRRbtn1'></div>
|
|
|
+ {/* 更多 跳新页面 */}
|
|
|
+ <div className='pvRRbtn2' onClick={() => history.push('/chef')}></div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ {/* 最后一个过长动画 */}
|
|
|
+ <div className={classNames('A4last', lastVideo ? 'A4lastShow' : '')}>
|
|
|
+ <video
|
|
|
+ ref={videoRefLast}
|
|
|
+ playsInline
|
|
|
+ muted
|
|
|
+ webkit-playsinline='true'
|
|
|
+ x5-video-player-type='h5'
|
|
|
+ src={dataUrlSame + myData.dance.lastVideo}
|
|
|
+ onEnded={() => history.push('/chef')}
|
|
|
+ >
|
|
|
+ <source type='video/mp4' />
|
|
|
+ Your browser does not support the video tag.
|
|
|
+ </video>
|
|
|
+ <div
|
|
|
+ className='A3videoLastBtn'
|
|
|
+ style={{ backgroundImage: `url(${dataUrlSame}home/quan.png)` }}
|
|
|
+ onClick={() => history.push('/chef')}
|
|
|
+ >
|
|
|
+ 跳过
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
)
|
|
|
}
|