shaogen1995 1 年間 前
コミット
b8746898cf

ファイルの差分が大きいため隠しています
+ 3 - 0
Code/public/myData/hot.js


+ 2 - 1
Code/src/components/BaseImg/index.module.scss

@@ -33,7 +33,8 @@
       top: -60px;
       width: 650px;
       max-width: 90%;
-      left: -10%;
+      left: 50%;
+      transform: translateX(-50%);
     }
 
     .BItxt {

+ 23 - 22
Code/src/components/BaseImg/index.tsx

@@ -3,8 +3,8 @@ import styles from './index.module.scss'
 import classNames from 'classnames'
 import { baseURL, myData } from '@/utils/http'
 import { domDelOwnFu } from '@/utils/utilsSome'
-import Hot2 from '@/pages/A2visit/PanoVideo/Hot2'
 import FloorBtn from '../FloorBtn'
+import history from '@/utils/history'
 
 // 封面介绍
 const txtRes = {
@@ -80,7 +80,7 @@ function BaseImg({
 
   // 点击 小鸡 出来的热点信息
 
-  const [jiAc, setJiAc] = useState(false)
+  // const [jiAc, setJiAc] = useState(false)
 
   return (
     <div
@@ -100,8 +100,23 @@ function BaseImg({
       ) : null}
 
       {/* 右下角按钮 */}
-      {loding >= 100 && bird ? <FloorBtn /> : null}
-
+      {loding >= 100 && bird ? <FloorBtn unityEnd={() => history.push('unend/end')} /> : null}
+
+      <div
+        className='BIbaseBtn'
+        onClick={btnStartFu}
+        style={{ pointerEvents: loding >= 100 ? 'auto' : 'none' }}
+      >
+        {moreSta ? null : (
+          <div className='BIcon'>
+            <img onLoad={imgNumFu} src={`${baseURL}visit/arrow.png`} alt='' />
+          </div>
+        )}
+        <div className={classNames('BIBtxt', loding >= 100 && !moreSta ? 'BIBtxtFont' : '')}>
+          {loding >= 100 ? (moreSta ? '加载中' : '点击继续') : '加载中'}
+        </div>
+      </div>
+      {/*
       {bird ? (
         <div
           className='birdBox'
@@ -110,7 +125,6 @@ function BaseImg({
             pointerEvents: loding >= 100 ? 'auto' : 'none'
           }}
         >
-          {/* 鸟图 */}
           <img className='bird1' onLoad={imgNumFu} src={`${baseURL}bird/${bird}.png`} alt='' />
           <div className='bird2' onClick={btnStartFu}>
             点击继续
@@ -118,21 +132,8 @@ function BaseImg({
           <div className='bird3' onClick={() => setJiAc(true)}></div>
         </div>
       ) : (
-        <div
-          className='BIbaseBtn'
-          onClick={btnStartFu}
-          style={{ pointerEvents: loding >= 100 ? 'auto' : 'none' }}
-        >
-          {moreSta ? null : (
-            <div className='BIcon'>
-              <img onLoad={imgNumFu} src={`${baseURL}visit/arrow.png`} alt='' />
-            </div>
-          )}
-          <div className={classNames('BIBtxt', loding >= 100 && !moreSta ? 'BIBtxtFont' : '')}>
-            {loding >= 100 ? (moreSta ? '加载中' : '点击继续') : '加载中'}
-          </div>
-        </div>
-      )}
+     <></>
+      )} */}
 
       {/* 进度条 */}
       {loding >= 100 ? null : (
@@ -144,14 +145,14 @@ function BaseImg({
       )}
 
       {/* 点击小鸡 */}
-      {jiAc ? (
+      {/* {jiAc ? (
         <Hot2
           data={myData.xianJu.imgHot.find(v => v.name === '褐绿釉陶桃都树')!.data}
           name='褐绿釉陶桃都树'
           closeFu={() => setJiAc(false)}
           isJi={true}
         />
-      ) : null}
+      ) : null} */}
     </div>
   )
 }

+ 10 - 2
Code/src/components/FloorBtn/index.module.scss

@@ -14,7 +14,7 @@
     }
 
     .FloorBtn0 {
-      margin-right: 5px;
+      // margin-right: 5px;
       background-image: url('../../assets/img/icon-game.png');
       &:hover {
         background-image: url('../../assets/img/icon-game1.png');
@@ -22,7 +22,7 @@
     }
 
     .FloorBtn1 {
-      margin-right: 5px;
+      // margin-right: 5px;
       background-image: url('../../assets/img/icon-walk.png');
       &:hover {
         background-image: url('../../assets/img/icon-walk1.png');
@@ -41,6 +41,14 @@
         background-image: url('../../assets/img/icon-nonggen1.png');
       }
     }
+
+    .FloorBtn4 {
+      background-image: url('../../assets/img/icon-mol.png');
+      &:hover {
+        background-image: url('../../assets/img/icon-mol1.png');
+      }
+    }
+
     @media screen and (min-width: 1200px) {
       div {
         width: 35px;

+ 6 - 1
Code/src/components/FloorBtn/index.tsx

@@ -7,9 +7,10 @@ type Props = {
   unityId?: '1' | '2'
   gameFu?: () => void
   plowFu?: () => void
+  unityEnd?: () => void
 }
 
-function FloorBtn({ unityId, gameFu, plowFu }: Props) {
+function FloorBtn({ unityId, gameFu, plowFu, unityEnd }: Props) {
   return (
     <div className={styles.FloorBtn} id='FloorBtn'>
       {gameFu ? <div title='游戏' className='FloorBtn0' onClick={gameFu}></div> : null}
@@ -21,6 +22,10 @@ function FloorBtn({ unityId, gameFu, plowFu }: Props) {
         title='漫游模式'
         onClick={() => history.push(`/unity/${unityId}`)}
       ></div>
+
+      {/* 陶庄园 */}
+      {unityEnd ? <div title='陶庄园' className='FloorBtn4' onClick={unityEnd}></div> : null}
+
       {/* 更多 跳新页面 */}
       <div
         title='更多'

Code/src/pages/A2visit/PanoVideo/Hot2/index.module.scss → Code/src/components/ZHotOld/index.module.scss


Code/src/pages/A2visit/PanoVideo/Hot2/index.tsx → Code/src/components/ZHotOld/index.tsx


+ 23 - 9
Code/src/components/Zhot/index.module.scss

@@ -54,20 +54,29 @@
       width: 60%;
       height: 100%;
       padding: 3% 0 3% 4%;
+
+      .ZHLLcen {
+        width: 100%;
+        height: 100%;
+        background-size: 100% 100%;
+        background-color: rgba(242, 242, 215, 0.3);
+        padding: 12px 14px 0px;
+      }
+
       // 标题
       .h2Titele {
-        padding: 0 50px;
+        padding: 0 42px;
         position: relative;
         display: inline-block;
         color: #eacf60;
-        font-size: 22px;
+        font-size: 20px;
         margin-bottom: 8px;
         & > img {
           position: absolute;
-          top: 50%;
+          top: 53%;
           left: 0;
           transform: translateY(-50%);
-          width: 40px;
+          width: 34px;
           height: auto;
         }
         .h2TimgR {
@@ -77,15 +86,13 @@
       }
 
       .ZH1main {
-        background-size: 100% 100%;
-        background-color: rgba(242, 242, 215, 0.3);
-        // backdrop-filter: blur(40px);
         width: 100%;
         height: calc(100% - 50px);
         display: flex;
         align-items: center;
         position: relative;
-        padding: 18px 12px 60px;
+        padding-bottom: 55px;
+
         .ZH1main1 {
           max-height: 100%;
           overflow-y: auto;
@@ -98,6 +105,7 @@
             line-height: 24px;
             color: #fffddc;
             p {
+              text-indent: 2em;
               font-family: 'Microsoft Yahei', 'PingFang SC', 'Avenir', 'Segoe UI',
                 'Hiragino Sans GB', 'STHeiti', 'Microsoft Sans Serif', 'WenQuanYi Micro Hei',
                 sans-serif !important;
@@ -164,6 +172,7 @@
               line-height: 24px;
               color: #fffddc;
               p {
+                text-indent: 2em;
                 font-size: 13px;
                 font-family: 'Microsoft Yahei', 'PingFang SC', 'Avenir', 'Segoe UI',
                   'Hiragino Sans GB', 'STHeiti', 'Microsoft Sans Serif', 'WenQuanYi Micro Hei',
@@ -175,7 +184,7 @@
         }
         .ZH1main2 {
           position: absolute;
-          bottom: 8px;
+          bottom: 0px;
           left: 0;
           width: 100%;
           height: 46px;
@@ -276,6 +285,11 @@
           height: 100%;
         }
       }
+      .ZH1txt3 {
+        p {
+          text-indent: 0em !important;
+        }
+      }
     }
 
     // 屏幕>=1200

+ 178 - 151
Code/src/components/Zhot/index.tsx

@@ -19,6 +19,13 @@ function Zhot({ name, closeFu }: Props) {
   // 二级的选中
   const [acObj2, setAcObj2] = useState({} as HotSonType)
 
+  // 切换二级院落,滚动到最左边
+  useEffect(() => {
+    setTimeout(() => {
+      if (sroolRef.current) sroolRef.current.scrollLeft = 0
+    }, 100)
+  }, [acObj2])
+
   const info = useMemo(() => {
     let info = {} as HotRowType
     for (const k in hotInfo) {
@@ -31,6 +38,21 @@ function Zhot({ name, closeFu }: Props) {
     return info
   }, [name])
 
+  // 二级相关文物---没有二级全部显示
+  const involveResArr = useMemo(() => {
+    let arr: HotInvolveType[] = []
+    if (info && info.data) {
+      arr = info.data.involve
+      if (acObj2 && acObj2.name) {
+        if (acObj2.sonInvolve) {
+          arr = arr.filter(v => acObj2.sonInvolve?.includes(v.name))
+        } else arr = []
+      }
+    }
+
+    return arr
+  }, [acObj2, info])
+
   // 相关文物的滚动
   const [isFlag, setIsFlag] = useState(false)
 
@@ -111,83 +133,21 @@ function Zhot({ name, closeFu }: Props) {
 
       {/* 左边主体 */}
       <div className='ZHll'>
-        {/* 标题 */}
-        <div className='h2Titele sizeNo'>
-          <img src={`${baseURL}Zhot/img-yun1.png`} alt='' />
-          <img className='h2TimgR' src={`${baseURL}Zhot/img-yun2.png`} alt='' />
-          {acObj3.name ? acObj3.name.replaceAll('&', '') : name}
-        </div>
-
-        {info.data ? (
-          <div className='ZH1main' style={{ backgroundImage: `url(${baseURL + 'Zhot/bac.png'})` }}>
-            <div className='ZH1main1' hidden={!!acObj3.name} id='ZH1main1'>
-              {/* 一级图片 */}
-              {info.data.imgArr1 && info.data.imgArr1.length ? (
-                <div className='ZHimgBox'>
-                  {info.data.imgArr1.map(url => (
-                    <LazyImg
-                      clickFu={() => setImgLook(baseURL + url)}
-                      src={baseURL + url}
-                      key={url}
-                    />
-                  ))}
-                </div>
-              ) : null}
-              {/* 一级介绍 */}
-              <div className='ZH1txt' dangerouslySetInnerHTML={{ __html: info.data.txt }}></div>
-
-              {/* ----------二级----------- */}
-              {info.data.son && info.data.son.length ? (
-                <div className='ZH1_2'>
-                  <div className='ZH1_2ll'>
-                    {info.data.son.map(row2 => (
-                      <div
-                        key={row2.name}
-                        className={classNames(
-                          'ZH1_2llRow sizeNo',
-                          acObj2.name === row2.name ? 'ZH1_2llRowAc' : ''
-                        )}
-                        onClick={() => setAcObj2(row2)}
-                      >
-                        <img src={baseURL + 'Zhot/icon2.png'} alt='' />
-                        <img src={baseURL + 'Zhot/icon2Ac.png'} alt='' />
-                        {row2.name.replaceAll('&', '')}
-                      </div>
-                    ))}
-                  </div>
-                  <div className='ZH1_2rr'>
-                    {/* 二级图片 */}
-                    {acObj2.imgArr2 && acObj2.imgArr2.length ? (
-                      <div className='ZHimgBox'>
-                        {acObj2.imgArr2.map(url => (
-                          // 懒加载有问题,用普通img
-                          // <LazyImg
-                          //   clickFu={() => setImgLook(baseURL + url)}
-                          //   src={baseURL + url}
-                          //   key={url}
-                          // />
-                          <img
-                            className='ZH2img'
-                            key={url}
-                            src={baseURL + url}
-                            alt=''
-                            onClick={() => setImgLook(baseURL + url)}
-                          />
-                        ))}
-                      </div>
-                    ) : null}
-                    <div dangerouslySetInnerHTML={{ __html: acObj2.txt }}></div>
-                  </div>
-                </div>
-              ) : null}
-            </div>
+        <div className='ZHLLcen' style={{ backgroundImage: `url(${baseURL + 'Zhot/bac.png'})` }}>
+          {/* 标题 */}
+          <div className='h2Titele sizeNo'>
+            <img src={`${baseURL}Zhot/img-yun1.png`} alt='' />
+            <img className='h2TimgR' src={`${baseURL}Zhot/img-yun2.png`} alt='' />
+            {acObj3.name ? acObj3.name.replaceAll('&', '') : name}
+          </div>
 
-            {/* -----------三级信息------------- */}
-            {acObj3.name ? (
-              <div className='ZH1main1 ZH1main1Son'>
-                {acObj3.type === '图片' ? (
+          {info.data ? (
+            <div className='ZH1main'>
+              <div className='ZH1main1' hidden={!!acObj3.name} id='ZH1main1'>
+                {/* 一级图片 */}
+                {info.data.imgArr1 && info.data.imgArr1.length ? (
                   <div className='ZHimgBox'>
-                    {acObj3.urlArr.map(url => (
+                    {info.data.imgArr1.map(url => (
                       <LazyImg
                         clickFu={() => setImgLook(baseURL + url)}
                         src={baseURL + url}
@@ -196,92 +156,159 @@ function Zhot({ name, closeFu }: Props) {
                     ))}
                   </div>
                 ) : null}
+                {/* 一级介绍 */}
+                <div className='ZH1txt' dangerouslySetInnerHTML={{ __html: info.data.txt }}></div>
 
-                {['模型', '视频'].includes(acObj3.type) ? (
-                  <div className='H2model' style={{ height: acObj3.text ? '200px' : '280px' }}>
-                    {acObj3.type === '模型' ? (
-                      <div
-                        className='H2modelSon'
-                        style={
-                          isPc && Object.keys(rootStyle).length && modelSize.ww
-                            ? {
-                                position: 'relative',
-                                width: modelSize.ww + 'px',
-                                height: modelSize.hh + 'px',
-                                transform: `translate(${-(modelSize.ww - modelSize.wwB) / 2}px, ${
-                                  -(modelSize.hh - modelSize.hhB) / 2
-                                }px) scale(${1 / rootStyle.sizeW}, ${1 / rootStyle.sizeH})`
-                              }
-                            : { width: '100%', height: '100%' }
-                        }
-                      >
-                        <iframe
-                          title={name}
-                          src={`${baseURL}modelLoding/model.html?u=${acObj3.urlArr[0]}`}
-                          frameBorder='0'
-                        ></iframe>
-                      </div>
-                    ) : (
-                      <video
-                        src={baseURL + acObj3.urlArr[0]}
-                        controls
-                        playsInline
-                        muted
-                        webkit-playsinline='true'
-                        x5-video-player-type='h5'
-                      ></video>
-                    )}
+                {/* ----------二级----------- */}
+                {info.data.son && info.data.son.length ? (
+                  <div className='ZH1_2'>
+                    <div className='ZH1_2ll'>
+                      {info.data.son.map(row2 => (
+                        <div
+                          key={row2.name}
+                          className={classNames(
+                            'ZH1_2llRow sizeNo',
+                            acObj2.name === row2.name ? 'ZH1_2llRowAc' : ''
+                          )}
+                          onClick={() => setAcObj2(row2)}
+                        >
+                          <img src={baseURL + 'Zhot/icon2.png'} alt='' />
+                          <img src={baseURL + 'Zhot/icon2Ac.png'} alt='' />
+                          {row2.name.replaceAll('&', '')}
+                        </div>
+                      ))}
+                    </div>
+                    <div className='ZH1_2rr'>
+                      {/* 二级图片 */}
+                      {acObj2.imgArr2 && acObj2.imgArr2.length ? (
+                        <div className='ZHimgBox'>
+                          {acObj2.imgArr2.map(url => (
+                            // 懒加载有问题,用普通img
+                            // <LazyImg
+                            //   clickFu={() => setImgLook(baseURL + url)}
+                            //   src={baseURL + url}
+                            //   key={url}
+                            // />
+                            <img
+                              className='ZH2img'
+                              key={url}
+                              src={baseURL + url}
+                              alt=''
+                              onClick={() => setImgLook(baseURL + url)}
+                            />
+                          ))}
+                        </div>
+                      ) : null}
+                      <div dangerouslySetInnerHTML={{ __html: acObj2.txt }}></div>
+                    </div>
                   </div>
                 ) : null}
-
-                <div className='ZH1txt' dangerouslySetInnerHTML={{ __html: acObj3.text }}></div>
               </div>
-            ) : null}
 
-            <div className='ZH1main2'>
-              {/* 返回按钮 */}
-              <div className='back1'>
-                <BtnRight
-                  title='返回'
-                  clickSon={() => {
-                    acObj3.name ? setAcObj3({} as HotInvolveType) : closeFu()
-                  }}
-                  imgName='back'
-                />
-              </div>
+              {/* -----------三级信息------------- */}
+              {acObj3.name ? (
+                <div className='ZH1main1 ZH1main1Son'>
+                  {acObj3.type === '图片' ? (
+                    <div className='ZHimgBox'>
+                      {acObj3.urlArr.map(url => (
+                        <LazyImg
+                          clickFu={() => setImgLook(baseURL + url)}
+                          src={baseURL + url}
+                          key={url}
+                        />
+                      ))}
+                    </div>
+                  ) : null}
+
+                  {['模型', '视频'].includes(acObj3.type) ? (
+                    <div className='H2model' style={{ height: acObj3.text ? '200px' : '280px' }}>
+                      {acObj3.type === '模型' ? (
+                        <div
+                          className='H2modelSon'
+                          style={
+                            isPc && Object.keys(rootStyle).length && modelSize.ww
+                              ? {
+                                  position: 'relative',
+                                  width: modelSize.ww + 'px',
+                                  height: modelSize.hh + 'px',
+                                  transform: `translate(${-(modelSize.ww - modelSize.wwB) / 2}px, ${
+                                    -(modelSize.hh - modelSize.hhB) / 2
+                                  }px) scale(${1 / rootStyle.sizeW}, ${1 / rootStyle.sizeH})`
+                                }
+                              : { width: '100%', height: '100%' }
+                          }
+                        >
+                          <iframe
+                            title={name}
+                            src={`${baseURL}modelLoding/model.html?u=${acObj3.urlArr[0]}`}
+                            frameBorder='0'
+                          ></iframe>
+                        </div>
+                      ) : (
+                        <video
+                          src={baseURL + acObj3.urlArr[0]}
+                          controls
+                          playsInline
+                          muted
+                          webkit-playsinline='true'
+                          x5-video-player-type='h5'
+                        ></video>
+                      )}
+                    </div>
+                  ) : null}
 
-              {/* 相关文物 */}
-              {info.data.involve && info.data.involve.length ? (
-                <div className='ZH1main2rr'>
-                  <div className='ZH1main2rr1 sizeNo'>相关文物:</div>
                   <div
-                    className='ZH1main2rr2'
-                    onMouseDown={() => setIsFlag(true)}
-                    onMouseUp={() => setIsFlag(false)}
-                    onMouseLeave={() => setIsFlag(false)}
-                    onMouseMove={e => mousemoveFu(e)}
-                    onWheel={e => mousemoveFu(e, true)}
-                    style={{ cursor: isFlag ? 'move' : 'default' }}
-                    ref={sroolRef}
-                  >
-                    {info.data.involve.map(row3 => (
-                      <div
-                        onClick={() => setAcObj3(row3)}
-                        className={classNames(
-                          'ZH1main2rr2Row sizeNo',
-                          acObj3.name === row3.name ? 'ZH1main2rr2RowAc' : ''
-                        )}
-                        key={row3.name}
-                      >
-                        {row3.name.replaceAll('&', '')}
-                      </div>
-                    ))}
-                  </div>
+                    className='ZH1txt ZH1txt3'
+                    dangerouslySetInnerHTML={{ __html: acObj3.text }}
+                  ></div>
                 </div>
               ) : null}
+
+              <div className='ZH1main2'>
+                {/* 返回按钮 */}
+                <div className='back1'>
+                  <BtnRight
+                    title='返回'
+                    clickSon={() => {
+                      acObj3.name ? setAcObj3({} as HotInvolveType) : closeFu()
+                    }}
+                    imgName='back'
+                  />
+                </div>
+
+                {/* 相关文物 */}
+                {involveResArr && involveResArr.length ? (
+                  <div className='ZH1main2rr'>
+                    <div className='ZH1main2rr1 sizeNo'>相关文物:</div>
+                    <div
+                      className='ZH1main2rr2'
+                      onMouseDown={() => setIsFlag(true)}
+                      onMouseUp={() => setIsFlag(false)}
+                      onMouseLeave={() => setIsFlag(false)}
+                      onMouseMove={e => mousemoveFu(e)}
+                      onWheel={e => mousemoveFu(e, true)}
+                      style={{ cursor: isFlag ? 'move' : 'default' }}
+                      ref={sroolRef}
+                    >
+                      {involveResArr.map(row3 => (
+                        <div
+                          onClick={() => setAcObj3(row3)}
+                          className={classNames(
+                            'ZH1main2rr2Row sizeNo',
+                            acObj3.name === row3.name ? 'ZH1main2rr2RowAc' : ''
+                          )}
+                          key={row3.name}
+                        >
+                          {row3.name.replaceAll('&', '')}
+                        </div>
+                      ))}
+                    </div>
+                  </div>
+                ) : null}
+              </div>
             </div>
-          </div>
-        ) : null}
+          ) : null}
+        </div>
       </div>
       <div className='ZHrr' onClick={closeFu}></div>
     </div>

+ 1 - 0
Code/src/components/Zhot/type.d.ts

@@ -38,6 +38,7 @@ export type HotSonType = {
   name: string
   txt: string
   imgArr2?: string[]
+  sonInvolve?: string[]
 }
 
 export type HotInfoType = {

+ 1 - 1
Code/src/pages/A1_1base/index.tsx

@@ -105,7 +105,7 @@ function A11base() {
           )}
 
           {/* 右下角按钮 */}
-          {loding >= 100 ? <FloorBtn /> : null}
+          {loding >= 100 ? <FloorBtn unityEnd={() => history.push('unend/end')} /> : null}
         </div>
       ) : null}
 

+ 3 - 2
Code/src/pages/A1home/index.tsx

@@ -7,10 +7,11 @@ import VideoModel from '@/components/VideoModel'
 import useLoding from '@/components/ownUse/useLoding'
 import CatVideo from '@/components/CatVideo'
 import FloorBtn from '@/components/FloorBtn'
+import history from '@/utils/history'
 
 function A1home() {
   // 初始视频
-  const [baseVideo, setBaseVideo] = useState(true)
+  const [baseVideo, setBaseVideo] = useState(false)
 
   const [baseVshow, setBaseVshow] = useState(false)
 
@@ -169,7 +170,7 @@ function A1home() {
             ) : null}
 
             {/* 右下角按钮 */}
-            {loding >= 100 ? <FloorBtn /> : null}
+            {loding >= 100 ? <FloorBtn unityEnd={() => history.push('unend/end')} /> : null}
           </div>
 
           {/* 最后一个过长动画 */}

+ 2 - 1
Code/src/pages/A2visit/index.tsx

@@ -9,6 +9,7 @@ import FloorBtn from '@/components/FloorBtn'
 import BaseImg from '@/components/BaseImg'
 import useLoding from '@/components/ownUse/useLoding'
 import { domDelOwnFu } from '@/utils/utilsSome'
+import history from '@/utils/history'
 
 function A2visit() {
   // 过度动画
@@ -68,7 +69,7 @@ function A2visit() {
 
           {/* 右下角按钮 */}
           {/* <FloorBtn unityId='1' /> */}
-          <FloorBtn />
+          <FloorBtn unityEnd={() => history.push('unend/end')} />
         </div>
       ) : null}
 

+ 2 - 1
Code/src/pages/A2visit2/index.tsx

@@ -135,7 +135,7 @@ function A2visit2() {
                   webkit-playsinline='true'
                   x5-video-player-type='h5'
                   onEnded={() => setVideoPlay(false)}
-                  loop
+                  // loop
                 >
                   <source type='video/mp4' src={`${baseURL}visit2/${item}.mp4`} />
                   Your browser does not support the video tag.
@@ -164,6 +164,7 @@ function A2visit2() {
               }
             : undefined
         }
+        unityEnd={() => history.push('unend/end')}
       />
 
       {window.location.href.includes('?v=v2') ? null : (

+ 2 - 0
Code/src/pages/A3banPano/index.module.scss

@@ -1,4 +1,6 @@
 .A3banPano {
+  transition: all 2s;
+  opacity: 1;
   :global {
     video {
       width: 100%;

+ 18 - 3
Code/src/pages/A3banPano/index.tsx

@@ -1,4 +1,4 @@
-import React, { useEffect, useState } from 'react'
+import React, { useCallback, useEffect, useState } from 'react'
 import styles from './index.module.scss'
 import { useParams } from 'react-router-dom'
 import { HotSpot, Krpano, Scene, View } from '@dage/krpano'
@@ -11,6 +11,7 @@ import FloorBtn from '@/components/FloorBtn'
 import { KrpanoMiddleware } from '@/components/KrpanoMiddleware'
 import CatVideo from '@/components/CatVideo'
 import Zhot from '@/components/Zhot'
+import NextPage from '@/components/NextPage'
 // import { myData } from '@/utils/http'
 
 // window.draggbleHotspotEvent = (ath: number, atv: number) => {
@@ -37,8 +38,20 @@ function A3banPano() {
   // 点击观赏庭院 先播放视频
   const [videoPlay, setVideoPlay] = useState(false)
 
+  // 点击去乐舞百戏
+  const [toPage, setToPage] = useState(false)
+  const clickToYueWu = useCallback(() => {
+    setToPage(true)
+    setTimeout(() => {
+      history.push('/dance')
+    }, 1500)
+  }, [])
+
   return (
-    <div className={styles.A3banPano}>
+    <div
+      className={styles.A3banPano}
+      style={{ opacity: toPage ? '0' : '1', pointerEvents: toPage ? 'none' : 'auto' }}
+    >
       <KrpanoMiddleware>
         <Krpano className={styles.pano} currentScene={curScene}>
           <Scene
@@ -216,9 +229,11 @@ function A3banPano() {
           setVideoPlay(false)
         }}
       />
+      {/* 跳到下一章 */}
+      {videoPlay ? null : <NextPage clickSon={clickToYueWu} txt='乐舞百戏' />}
 
       {/* 右下角按钮 */}
-      {videoPlay ? null : <FloorBtn />}
+      {videoPlay ? null : <FloorBtn unityEnd={() => history.push('unend/end')} />}
 
       {acName ? <Zhot name={acName} closeFu={() => setAcName('')} /> : null}
     </div>

+ 5 - 1
Code/src/pages/A3banquet/index.tsx

@@ -67,7 +67,11 @@ function A3banquet() {
           <NextPage clickSon={() => setLastVideo(true)} txt='乐舞百戏' />
 
           {/* 右下角按钮*/}
-          <FloorBtn unityId='2' gameFu={() => setGameShow(true)} />
+          <FloorBtn
+            unityId='2'
+            gameFu={() => setGameShow(true)}
+            unityEnd={() => history.push('unend/end')}
+          />
         </div>
       ) : null}
 

+ 2 - 1
Code/src/pages/A4dance/index.tsx

@@ -10,6 +10,7 @@ import useLoding from '@/components/ownUse/useLoding'
 import BtnRight from '@/components/BtnRight'
 import VideoModel from '@/components/VideoModel'
 import Zhot from '@/components/Zhot'
+import history from '@/utils/history'
 
 function A4dance() {
   const [baseSta, setBaseSta] = useState(window.location.href.includes('r=ren') ? true : false)
@@ -110,7 +111,7 @@ function A4dance() {
           <NextPage clickSon={() => setLastVideo(true)} txt='后厨备宴' />
 
           {/* 右下角按钮 */}
-          <FloorBtn />
+          <FloorBtn unityEnd={() => history.push('unend/end')} />
 
           {/* 中间的8个动画视频*/}
           <div

+ 2 - 1
Code/src/pages/A5chef/index.tsx

@@ -10,6 +10,7 @@ import FloorBtn from '@/components/FloorBtn'
 import useLoding from '@/components/ownUse/useLoding'
 import BtnRight from '@/components/BtnRight'
 import Zhot from '@/components/Zhot'
+import history from '@/utils/history'
 
 function A5chef() {
   // 点击继续
@@ -122,7 +123,7 @@ function A5chef() {
             <NextPage clickSon={() => setLastVideo(true)} txt='田间耕作' />
 
             {/* 右下角按钮 */}
-            <FloorBtn />
+            <FloorBtn unityEnd={() => history.push('unend/end')} />
           </div>
         ) : null}
       </div>

+ 2 - 1
Code/src/pages/A6plow/index.tsx

@@ -10,6 +10,7 @@ import HotIcon from '@/components/HotIcon'
 import useLoding from '@/components/ownUse/useLoding'
 import BtnRight from '@/components/BtnRight'
 import Zhot from '@/components/Zhot'
+import history from '@/utils/history'
 
 function A6plow() {
   // 初始显示和隐藏
@@ -221,7 +222,7 @@ function A6plow() {
           {/* 跳到下一章 */}
           <NextPage clickSon={() => setLastVideo(true)} txt='结束饮宴' />
           {/* 右下角按钮 */}
-          <FloorBtn plowFu={() => setCode(true)} />
+          <FloorBtn plowFu={() => setCode(true)} unityEnd={() => history.push('unend/end')} />
         </div>
       ) : null}
 

+ 3 - 3
Code/src/pages/A6xian/index.tsx

@@ -155,7 +155,7 @@ function A6xian() {
         />
 
         {/* 右下角按钮 */}
-        <FloorBtn />
+        <FloorBtn unityEnd={() => history.push('unend/end')} />
       </div>
 
       {/* 过度动画页面 */}
@@ -187,7 +187,7 @@ function A6xian() {
             升仙之途
           </div>
 
-          <FloorBtn />
+          <FloorBtn unityEnd={() => history.push('unend/end')} />
         </div>
       ) : null}
 
@@ -242,7 +242,7 @@ function A6xian() {
           {/* 跳到下一章 */}
           <NextPage clickSon={() => setLastVideo(true)} txt='结束冥想' />
           {/* 右下角按钮 */}
-          <FloorBtn />
+          <FloorBtn unityEnd={() => history.push('unend/end')} />
 
           {/* 底部按钮 */}
           <div className='A6XimgBoxBtn'>

+ 1 - 1
Code/src/pages/A7end/index.tsx

@@ -34,7 +34,7 @@ function A7end() {
           <div onClick={() => history.push('/')}>重新开始</div>
         </div>
       </div>
-      <FloorBtn />
+      <FloorBtn unityEnd={() => history.push('unend/end')} />
     </div>
   )
 }