lanxin 2 tháng trước cách đây
mục cha
commit
b36e3d612f

+ 1 - 1
public/css/edit.css

@@ -3966,7 +3966,7 @@ a.hasHover:hover, a:active {
 
 .frame {
   width: calc(100% - 20px);
-  height: 97px;
+  height: 100%;
   margin: 9px 10px;
   float: left
 }

+ 14 - 29
public/css/main.css

@@ -19,11 +19,8 @@
 @font-face {
   font-family: 'FontAwesome';
   src: url(font/fontawesome-webfont.eot);
-  src: url(font/fontawesome-webfont.eot?#iefix&v=4.5.0) format('embedded-opentype'),
-    url(font/fontawesome-webfont.woff2) format('woff2'),
-    url(font/awesome-webfont.woff) format('woff'),
-    url(font/fontawesome-webfont.ttf) format('truetype'),
-    url(font/fontawesome-webfont.svg#fontawesomeregular) format('svg');
+  src: url(font/fontawesome-webfont.eot?#iefix&v=4.5.0) format('embedded-opentype'), url(font/fontawesome-webfont.woff2) format('woff2'), url(font/awesome-webfont.woff) format('woff'),
+    url(font/fontawesome-webfont.ttf) format('truetype'), url(font/fontawesome-webfont.svg#fontawesomeregular) format('svg');
   font-weight: normal;
   font-style: normal;
 }
@@ -977,32 +974,24 @@ fieldset[disabled] .btn-link:hover {
 @font-face {
   font-family: OpenSans;
   src: url(font/open-sans/OpenSansRegular.eot);
-  src: url(font/open-sans/OpenSansRegular.eot) format('embedded-opentype'),
-    url(font/open-sans/OpenSansRegular.woff2) format('woff2'),
-    url(font/open-sans/OpenSansRegular.woff) format('woff'),
-    url(font/open-sans/OpenSansRegular.ttf) format('truetype'),
-    url(font/open-sans/OpenSansRegular.svg#OpenSansRegular) format('svg');
+  src: url(font/open-sans/OpenSansRegular.eot) format('embedded-opentype'), url(font/open-sans/OpenSansRegular.woff2) format('woff2'), url(font/open-sans/OpenSansRegular.woff) format('woff'),
+    url(font/open-sans/OpenSansRegular.ttf) format('truetype'), url(font/open-sans/OpenSansRegular.svg#OpenSansRegular) format('svg');
   font-weight: 400;
 }
 
 @font-face {
   font-family: OpenSans;
   src: url(font/open-sans-light/OpenSansLight.eot);
-  src: url(font/open-sans-light/OpenSansLight.eot) format('embedded-opentype'),
-    url(font/open-sans-light/OpenSansLight.woff2) format('woff2'),
-    url(font/open-sans-light/OpenSansLight.woff) format('woff'),
-    url(font/open-sans-light/OpenSansLight.ttf) format('truetype'),
-    url(font/open-sans-light/OpenSansLight.svg#OpenSansLight) format('svg');
+  src: url(font/open-sans-light/OpenSansLight.eot) format('embedded-opentype'), url(font/open-sans-light/OpenSansLight.woff2) format('woff2'),
+    url(font/open-sans-light/OpenSansLight.woff) format('woff'), url(font/open-sans-light/OpenSansLight.ttf) format('truetype'), url(font/open-sans-light/OpenSansLight.svg#OpenSansLight) format('svg');
   font-weight: 100;
 }
 
 @font-face {
   font-family: OpenSans;
   src: url(font/open-sans-semibold/OpenSansSemibold.eot);
-  src: url(font/open-sans-semibold/OpenSansSemibold.eot) format('embedded-opentype'),
-    url(font/open-sans-semibold/OpenSansSemibold.woff2) format('woff2'),
-    url(font/open-sans-semibold/OpenSansSemibold.woff) format('woff'),
-    url(font/open-sans-semibold/OpenSansSemibold.ttf) format('truetype'),
+  src: url(font/open-sans-semibold/OpenSansSemibold.eot) format('embedded-opentype'), url(font/open-sans-semibold/OpenSansSemibold.woff2) format('woff2'),
+    url(font/open-sans-semibold/OpenSansSemibold.woff) format('woff'), url(font/open-sans-semibold/OpenSansSemibold.ttf) format('truetype'),
     url(font/open-sans-semibold/OpenSansSemibold.svg#OpenSansSemibold) format('svg');
   font-weight: 700;
 }
@@ -1010,8 +999,7 @@ fieldset[disabled] .btn-link:hover {
 @font-face {
   font-family: mp-font;
   src: url(font/mp-font.eot?sn95o4);
-  src: url(font/mp-font.eot?#iefixsn95o4) format('embedded-opentype'),
-    url(font/mp-font.ttf?sn95o4) format('truetype'), url(font/mp-font.woff?sn95o4) format('woff'),
+  src: url(font/mp-font.eot?#iefixsn95o4) format('embedded-opentype'), url(font/mp-font.ttf?sn95o4) format('truetype'), url(font/mp-font.woff?sn95o4) format('woff'),
     url(font/mp-font.svg?sn95o4#mp-font) format('svg');
   font-weight: 400;
   font-style: normal;
@@ -2951,16 +2939,14 @@ html {
   border-radius: 2px;
 }
 
-@media only screen and (-webkit-min-device-pixel-ratio: 2),
-only screen and (-o-min-device-pixel-ratio: 2) {
+@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2) {
   .gui-floorplan-label-mobile {
     font-size: 65%;
     border-radius: 1px;
   }
 }
 
-@media only screen and (-webkit-min-device-pixel-ratio: 3),
-only screen and (-o-min-device-pixel-ratio: 3) {
+@media only screen and (-webkit-min-device-pixel-ratio: 3), only screen and (-o-min-device-pixel-ratio: 3) {
   .gui-floorplan-label-mobile {
     font-size: 65%;
     border-radius: 1px;
@@ -4486,7 +4472,7 @@ a.tag-link {
 
 .frame {
   width: calc(100% - 20px);
-  height: 97px;
+  height: 100%;
   margin: 9px 10px;
   float: left;
 }
@@ -6503,8 +6489,7 @@ a.hasHover.tag-link:hover {
   }
 }
 
-@media only screen and (min-height: 650px) and (min-width: 650px) and (max-aspect-ratio: 650/800),
-(min-aspect-ratio: 800/650) and (min-height: 650px) and (min-width: 650px) {
+@media only screen and (min-height: 650px) and (min-width: 650px) and (max-aspect-ratio: 650/800), (min-aspect-ratio: 800/650) and (min-height: 650px) and (min-width: 650px) {
   #help-dialog.mobile .interactions .top-info,
   #help-dialog.mobile.fr-FR.dollhouse .interactions .top-info {
     font-size: 21px;
@@ -8012,4 +7997,4 @@ a.hasHover.tag-link:hover {
     opacity: 1;
     margin-top: 0;
   }
-}
+}

+ 1 - 1
public/css/main.css.bak

@@ -3867,7 +3867,7 @@ a.hasHover:hover,a:active {
 
 .frame {
     width: calc(100% - 20px);
-    height: 97px;
+    height: 100%;
     margin: 9px 10px;
     float: left
 }

BIN
public/images/auto-suspend.png


BIN
public/images/auto.png


BIN
public/images/dollhouse.png


BIN
public/images/dollhouse_active.png


BIN
public/images/floor.png


BIN
public/images/floor_active.png


BIN
public/images/hotlist.png


BIN
public/images/hotlist_active.png


BIN
public/images/pause.png


BIN
public/images/play.png


+ 2 - 2
public/index.html

@@ -8,7 +8,7 @@
     <meta name="description" content="Web site created using create-react-app" />
     <link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
 
-    <title>武汉博物馆-琬琰英华</title>
+    <title>北人亦创国际会展中心</title>
 
     <!-- 大场景相关 -->
     <link rel="stylesheet" href="./css/oldVer/main0.css" />
@@ -95,7 +95,7 @@
       }
     }
   </script>
-
+  <script src="./data.js"></script>
   <script src="./js/lib/jquery-2.1.1.min.js" class="build keep"></script>
   <script src="./js/lib/player-0.0.12.min.js" class="build keep"></script>
   <script src="./js/lib/Tween.js"></script>

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 3159 - 13606
public/js/main_2020_show.js


+ 31 - 156
public/js/manage.js

@@ -1,8 +1,5 @@
-var g_ProjectName = window.location.pathname.substring(
-  window.location.pathname.indexOf('/') + 1,
-  window.location.pathname.lastIndexOf('/')
-)
-var g_Prefix = 'https://super.4dage.com/'
+var g_ProjectName = window.location.pathname.substring(window.location.pathname.indexOf('/') + 1, window.location.pathname.lastIndexOf('/'))
+var g_Prefix = 'https://sit-locbigsecen.4dage.com/'
 // var g_Prefix=window.location.href.substring(0,window.location.href.indexOf("/index.html")+1);
 var s = window.location.href.split('/')
 s.pop()
@@ -76,24 +73,14 @@ window.browser = {
     )
   },
   isFullscreen: function () {
-    return (
-      document.fullscreenElement ||
-      document.mozFullscreenElement ||
-      document.mozFullScreenElement ||
-      document.webkitFullscreenElement ||
-      document.msFullscreenElement
-    )
+    return document.fullscreenElement || document.mozFullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement
   },
   valueFromHash: function (e, t) {
     var i = new RegExp('[#&?]' + e + '=([^#&?]*)'),
       n = i.exec(window.location.href)
     if (!n) return t
     var r = n[1]
-    return 'boolean' == typeof t
-      ? 'true' === r || '1' === r
-      : 'number' == typeof t
-      ? parseFloat(r)
-      : window.decodeURIComponent(r)
+    return 'boolean' == typeof t ? 'true' === r || '1' === r : 'number' == typeof t ? parseFloat(r) : window.decodeURIComponent(r)
   },
   urlHasValue: function (key, isGetValue) {
     let querys = window.location.search.substr(1).split('&')
@@ -207,11 +194,7 @@ var toPrecision = function (e, t) {
 var dealMap = (map, o = {}) => {
   //使不resize  when   image is not power of two  ,但缩小时会有锯齿
   if (!o.ignoreResize) {
-    if (
-      !map.image ||
-      !THREE.Math.isPowerOfTwo(map.image.width) ||
-      !THREE.Math.isPowerOfTwo(map.image.height)
-    ) {
+    if (!map.image || !THREE.Math.isPowerOfTwo(map.image.width) || !THREE.Math.isPowerOfTwo(map.image.height)) {
       map.wrapS = map.wrapT = THREE.ClampToEdgeWrapping
       map.minFilter = THREE.LinearFilter
       //map.generateMipmaps = true;
@@ -354,10 +337,7 @@ var convertTool = {
     /* if(config.isEdit && publicObjectSet.editor.mainDesign.editing){
 			var o = ray.intersectObjects(publicObjectSet.editor.mainDesign.wallMeshes);
 		}else{ */
-    let colliders = player.model.allFloorsVisible
-      ? player.model.colliders
-      : (floorIndex != void 0 ? player.model.floors.index[floorIndex] : player.model.currentFloor)
-          .collider.children
+    let colliders = player.model.allFloorsVisible ? player.model.colliders : (floorIndex != void 0 ? player.model.floors.index[floorIndex] : player.model.currentFloor).collider.children
     //let colliders = (floorIndex == void 0 ) ? player.model.colliders : player.model.floors.index[floorIndex].collider.children
     var o = ray.intersectObjects(colliders)
     //}
@@ -387,19 +367,12 @@ var convertTool = {
 
       var y = info.y
 
-      if (
-        player.mode ==
-        'floorplan' /*  ||  Math.abs(O.x-pos.x)<0.0001 && Math.abs(O.z-pos.z)<0.0001) */
-      ) {
+      if (player.mode == 'floorplan' /*  ||  Math.abs(O.x-pos.x)<0.0001 && Math.abs(O.z-pos.z)<0.0001) */) {
         //intersectPlane和地面平行,无交点
         var x = pos.x,
           z = pos.z
       } else {
-        if (
-          y < player.camera.position.y &&
-          O.y <= A.y /* || y>player.camera.position.y && O.y >= A.y  */
-        )
-          return null //鼠标射线向上。因为相机一定位于地面以上(地面不会抬高到相机上吧?),所以无交点。
+        if (y < player.camera.position.y && O.y <= A.y /* || y>player.camera.position.y && O.y >= A.y  */) return null //鼠标射线向上。因为相机一定位于地面以上(地面不会抬高到相机上吧?),所以无交点。
         if (O.y == A.y) {
           console.log('一样??')
           return
@@ -550,9 +523,7 @@ var convertTool = {
       op.resolution = { x: renderSize.width, y: renderSize.height }
     }
     if (!op.camera) {
-      let camera = player.cameraControls.activeControl
-        ? player.cameraControls.activeControl.camera
-        : player.camera
+      let camera = player.cameraControls.activeControl ? player.cameraControls.activeControl.camera : player.camera
       let camera2 = camera.clone()
       camera2.matrixWorld.copy(player.camera.matrixWorld) //因为其他原因该camera的matrixWorld被还原了,而player.camera的是正确的
       op.camera = camera2
@@ -567,9 +538,7 @@ var convertTool = {
       } else {
         currentDis = op.position.distanceTo(op.camera.position)
       }
-      w =
-        op.maxSize -
-        (op.maxSize - op.minSize) * THREE.Math.smoothstep(currentDis, op.nearBound, op.farBound)
+      w = op.maxSize - (op.maxSize - op.minSize) * THREE.Math.smoothstep(currentDis, op.nearBound, op.farBound)
       //maxSize : mesh要表现的最大像素宽度;   nearBound: 最近距离,若比nearBound近,则使用maxSize
     }
     i.copy(op.position).project(op.camera), //tag中心在屏幕上的二维坐标
@@ -710,12 +679,7 @@ window.expandCommon = function (common) {
 
         for (let i = 0; i < posLength; i++) {
           var B = posB[i]
-          var ray = new THREE.Raycaster(
-            A.clone(),
-            B.clone().sub(A).normalize(),
-            0,
-            A.distanceTo(B) - (options.tolerance || 0)
-          )
+          var ray = new THREE.Raycaster(A.clone(), B.clone().sub(A).normalize(), 0, A.distanceTo(B) - (options.tolerance || 0))
           var o = ray.intersectObjects(options.model || player.model.colliders, true)
 
           if (!o || !o.length) {
@@ -783,8 +747,7 @@ window.expandMath = function (math) {
 //管理js文件 获取modeldata.js 判断是否有特殊的字段,如果有就先加载SpecialScene.js 里面有对特殊场景处理的代码 否则就直接加载main
 
 var Manage = function () {
-  ;(this.weixinURL = 'https://res.wx.qq.com/open/js/jweixin-1.2.0.js'),
-    (this.time = '?' + new Date().getTime())
+  ;(this.weixinURL = 'https://res.wx.qq.com/open/js/jweixin-1.2.0.js'), (this.time = '?' + new Date().getTime())
   this.loadAudio()
   this.loadWeixin()
 }
@@ -820,8 +783,7 @@ Manage.prototype.LoadJs = function (_files, succes) {
   function loadFile(url, success) {
     if (!FileIsExt(classcodes, url)) {
       var _ThisType = GetFileType(url)
-      var ThisType =
-        _ThisType.indexOf('?') == -1 ? _ThisType : _ThisType.substring(0, _ThisType.indexOf('?'))
+      var ThisType = _ThisType.indexOf('?') == -1 ? _ThisType : _ThisType.substring(0, _ThisType.indexOf('?'))
       var fileObj = null
       if (ThisType == '.js') {
         fileObj = document.createElement('script')
@@ -1404,12 +1366,7 @@ function initByTHREE(THREE) {
       this.enabled = true
       //draw coverTex
       this.quad.material.uniforms.progress.value = 1
-      sceneRenderer.renderer.render(
-        sceneRenderer.scene,
-        sceneRenderer.camera,
-        this.coverRenderTarget,
-        true
-      )
+      sceneRenderer.renderer.render(sceneRenderer.scene, sceneRenderer.camera, this.coverRenderTarget, true)
       console.log('start111')
     },
     stop: function () {
@@ -1542,12 +1499,7 @@ function initByTHREE(THREE) {
     update(currentFloor) {
       if (!this.position) return
 
-      if (
-        !this.visible &&
-        this.unvisibleReasons.some(e => e.level == 1) &&
-        !this.unvisibleReasons.some(e => e.level > 1)
-      )
-        return
+      if (!this.visible && this.unvisibleReasons.some(e => e.level == 1) && !this.unvisibleReasons.some(e => e.level > 1)) return
       /*
                 规定一下level共四层
                 level3 是notTrueSide层,权重最高。
@@ -1570,20 +1522,13 @@ function initByTHREE(THREE) {
       //判断label是否被模型遮挡,遮挡则消失(如果是漫游模式最好提前计算visiblePanos)
       if (player.mode != 'panorama') {
         currentFloor = currentFloor || player.model.currentFloor
-        if (
-          !player.model.allFloorsVisible &&
-          this.floorIndex != void 0 &&
-          this.floorIndex != currentFloor.floorIndex
-        ) {
+        if (!player.model.allFloorsVisible && this.floorIndex != void 0 && this.floorIndex != currentFloor.floorIndex) {
           this.setVisible(false, 'shelter', 0, null, true)
           //this.elem.css('display','none');	return;
           if (!this.visible) return
         }
 
-        if (
-          this.shelterByModel &&
-          convertTool.ifShelter(this.position, p.vector, player.camera, this.floorIndex)
-        ) {
+        if (this.shelterByModel && convertTool.ifShelter(this.position, p.vector, player.camera, this.floorIndex)) {
           //this.elem.css('display','none');	return;
           this.setVisible(false, 'shelter', 0, null, true)
           if (!this.visible) return
@@ -1852,8 +1797,7 @@ function initByTHREE(THREE) {
 
       //this.needsUpdate = false
 
-      let camera =
-        player.mode == 'floorplan' ? player.cameraControls.activeControl.camera : player.camera //floorplan 时要用到OrthographicCamera
+      let camera = player.mode == 'floorplan' ? player.cameraControls.activeControl.camera : player.camera //floorplan 时要用到OrthographicCamera
 
       if (!this.fixOrient) {
         let parentQua = this.root.parent.getWorldQuaternion(new THREE.Quaternion())
@@ -1863,10 +1807,7 @@ function initByTHREE(THREE) {
       if (this.sizeInfo) {
         var s = convertTool.getScaleForConstantSize(
           Object.assign({}, this.sizeInfo, {
-            farBound:
-              player.mode == 'floorplan'
-                ? this.sizeInfo.farBoundPlan || this.sizeInfo.farBound
-                : this.sizeInfo.farBound,
+            farBound: player.mode == 'floorplan' ? this.sizeInfo.farBoundPlan || this.sizeInfo.farBound : this.sizeInfo.farBound,
             position: this.root.getWorldPosition(new THREE.Vector3())
           })
         )
@@ -1929,16 +1870,11 @@ function initByTHREE(THREE) {
         textMaxWidth = Math.max(textMaxWidth, textWidth)
       }
 
-      let margin =
-        this.margin || new THREE.Vector2(this.fontsize, Math.max(this.fontsize * 0.4, 10))
+      let margin = this.margin || new THREE.Vector2(this.fontsize, Math.max(this.fontsize * 0.4, 10))
       const lineSpace = (this.fontsize + margin.y) * 0.5
 
       let spriteWidth = 2 * margin.x + textMaxWidth + 2 * this.rectBorderThick
-      let spriteHeight =
-        2 * margin.y +
-        this.fontsize * this.text.length +
-        2 * this.rectBorderThick +
-        lineSpace * (this.text.length - 1)
+      let spriteHeight = 2 * margin.y + this.fontsize * this.text.length + 2 * this.rectBorderThick + lineSpace * (this.text.length - 1)
       context.canvas.width = spriteWidth
       context.canvas.height = spriteHeight
       context.font = this.fontWeight + ' ' + this.fontsize + 'px ' + this.fontface
@@ -1946,58 +1882,21 @@ function initByTHREE(THREE) {
       //canvas原点在左上角
       context.textBaseline = 'alphabetic' //  "middle"  //设置文字基线。当起点y设置为0时,只有该线以下的部分被绘制出来。middle时文字显示一半(但是对该字体所有字的一半,有的字是不一定显示一半的,尤其汉字),alphabetic时是英文字母的那条基线。
       // border color
-      context.strokeStyle =
-        'rgba(' +
-        this.borderColor.r +
-        ',' +
-        this.borderColor.g +
-        ',' +
-        this.borderColor.b +
-        ',' +
-        this.borderColor.a +
-        ')'
+      context.strokeStyle = 'rgba(' + this.borderColor.r + ',' + this.borderColor.g + ',' + this.borderColor.b + ',' + this.borderColor.a + ')'
 
       context.lineWidth = this.rectBorderThick
       // background color
-      context.fillStyle =
-        'rgba(' +
-        this.backgroundColor.r +
-        ',' +
-        this.backgroundColor.g +
-        ',' +
-        this.backgroundColor.b +
-        ',' +
-        this.backgroundColor.a +
-        ')'
-      this.roundRect(
-        context,
-        this.rectBorderThick / 2,
-        this.rectBorderThick / 2,
-        spriteWidth - this.rectBorderThick,
-        spriteHeight - this.rectBorderThick,
-        this.borderRadius
-      )
+      context.fillStyle = 'rgba(' + this.backgroundColor.r + ',' + this.backgroundColor.g + ',' + this.backgroundColor.b + ',' + this.backgroundColor.a + ')'
+      this.roundRect(context, this.rectBorderThick / 2, this.rectBorderThick / 2, spriteWidth - this.rectBorderThick, spriteHeight - this.rectBorderThick, this.borderRadius)
 
-      context.fillStyle =
-        'rgba(' +
-        this.textColor.r +
-        ',' +
-        this.textColor.g +
-        ',' +
-        this.textColor.b +
-        ',' +
-        this.textColor.a +
-        ')'
+      context.fillStyle = 'rgba(' + this.textColor.r + ',' + this.textColor.g + ',' + this.textColor.b + ',' + this.textColor.a + ')'
 
       let y = margin.y
       for (let i = 0; i < this.text.length; i++) {
         //let actualHeight = metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent // 当前文本字符串在这个字体下用的实际高度
 
         //文字y向距离从textBaseline向上算
-        let actualBoundingBoxAscent =
-          infos[i].actualBoundingBoxAscent == void 0
-            ? this.fontsize * 0.8
-            : infos[i].actualBoundingBoxAscent //有的流览器没有。只能大概给一个
+        let actualBoundingBoxAscent = infos[i].actualBoundingBoxAscent == void 0 ? this.fontsize * 0.8 : infos[i].actualBoundingBoxAscent //有的流览器没有。只能大概给一个
         y += actualBoundingBoxAscent + expand
         //console.log(actualBoundingBoxAscent)
 
@@ -2006,16 +1905,7 @@ function initByTHREE(THREE) {
         let x = this.rectBorderThick + margin.x + textLeftSpace
         // text color
         if (this.textBorderThick) {
-          context.strokeStyle =
-            'rgba(' +
-            this.textBorderColor.r +
-            ',' +
-            this.textBorderColor.g +
-            ',' +
-            this.textBorderColor.b +
-            ',' +
-            this.textBorderColor.a +
-            ')'
+          context.strokeStyle = 'rgba(' + this.textBorderColor.r + ',' + this.textBorderColor.g + ',' + this.textBorderColor.b + ',' + this.textBorderColor.a + ')'
           context.lineWidth = this.textBorderThick
           context.strokeText(this.text[i], x, y)
         }
@@ -2227,9 +2117,7 @@ function initByTHREE(THREE) {
       let i = arrowCount
 
       while (i > 0) {
-        let pos = from.floorPosition
-          .clone()
-          .add(dir.clone().multiplyScalar(margin / 2 + i * sliceLen))
+        let pos = from.floorPosition.clone().add(dir.clone().multiplyScalar(margin / 2 + i * sliceLen))
         pos.y += settings.markerHeight
         let arrow = createArrow(mat)
         arrow.name = 'arrow:' + from.id + '-' + to.id + '|' + i
@@ -2250,14 +2138,7 @@ function initByTHREE(THREE) {
         mats.default.opacity = opa
         mats.fadeIn.opacity = opa * mats.fadeIn.opacity2
       }
-      transitions.start(
-        transition,
-        arrowInfo.animateDur,
-        updateArrowOpacity,
-        0,
-        easing.easeInOutCubic,
-        'updateArrowOpacity'
-      )
+      transitions.start(transition, arrowInfo.animateDur, updateArrowOpacity, 0, easing.easeInOutCubic, 'updateArrowOpacity')
     }
 
     var fadeInArrow = function () {
@@ -2554,8 +2435,7 @@ var SoundManager = {
       if (object.audio) {
         object.audio.pause()
         object.callback && object.callback(false)
-        object.audio.src &&
-          Log(name + ' 中断音频 ' + '(' + common.getFileNameFromUrl(object.audio.src) + ')')
+        object.audio.src && Log(name + ' 中断音频 ' + '(' + common.getFileNameFromUrl(object.audio.src) + ')')
       }
 
       if (isInterrupt) {
@@ -2612,12 +2492,7 @@ var SoundManager = {
     //处理设备自动播放限制
 
     let play = function () {
-      if (
-        this.currentAudio &&
-        this.currentAudio.audio &&
-        this.currentAudio.src &&
-        this.currentAudio.audio.paused
-      ) {
+      if (this.currentAudio && this.currentAudio.audio && this.currentAudio.src && this.currentAudio.audio.paused) {
         this.currentAudio.audio.play() //一般触屏了都会播放成功,就不识别paused了
 
         this.currentAudio.callback && this.currentAudio.callback(true)

+ 1 - 15
public/showa/js/loadCAD.js

@@ -46,10 +46,6 @@ window.grendCAD = (function grendCAD() {
         height: 200px;
         background: rgba(0, 0, 0, .3);
         border-radius: 5px; 
-        background-image: url('./images/map_1.png');
-        path {
-          opacity: 0;
-        }
         g.sign>path {
           opacity: 1;
         }
@@ -80,11 +76,7 @@ window.grendCAD = (function grendCAD() {
             height: 100px;
             background: rgba(0, 0, 0, .3);
             border-radius: 5px;
-            background-image: url('./images/map_1.png');
             background-size: cover;
-            path {
-              opacity: 0;
-            }
             g.sign>path {
               opacity: 1;
             }
@@ -132,13 +124,7 @@ window.grendCAD = (function grendCAD() {
     initFloor = floor
 
     loadScript(function () {
-      let [$layer, $img] = loadDOM($parent)
-
-      $layer.addEventListener('click', () => {
-        console.log(12)
-        $img.src = './images/map_2.png'
-        $img.style.display = $img.style.display === 'block' ? 'none' : 'block'
-      })
+      let [$layer] = loadDOM($parent)
 
       $layer.style.visibility = 'hidden'
       window.cad = structureCAD({

+ 53 - 50
public/showa/js/myShow.js

@@ -1,69 +1,72 @@
-var g_ProjectName=window.location.pathname.substring(window.location.pathname.indexOf("/")+1,window.location.pathname.lastIndexOf("/"));
-var g_Prefix="https://super.4dage.com/";
-// var g_Prefix=window.location.href.substring(0,window.location.href.indexOf("/index.html")+1);
-var s = window.location.href.split('/');
-s.pop();
+var g_ProjectName = window.location.pathname.substring(window.location.pathname.indexOf('/') + 1, window.location.pathname.lastIndexOf('/'))
+var g_Prefix = 'https://super.4dage.com/'
+// var g_Prefix = window.location.href.substring(0, window.location.href.indexOf('/index.html') + 1)
+var s = window.location.href.split('/')
+// window.isLocal = true
+s.pop()
 //var g_Prefix = s.join('/');
-var g_index=null;
-var g_modeldata=null;
+var g_index = null
+var g_modeldata = null
 
-var g_weixinTitle=null;
+var g_weixinTitle = null
 
-var g_Hots=null;
-var g_HotMeshes=[];
+var g_Hots = null
+var g_HotMeshes = []
 var g_HotMeshSize = {
   g_HotMeshWidth: 0.3,
-  g_HotMeshHeight:0.3
-};
+  g_HotMeshHeight: 0.3
+}
 
 //add表示添加,delete表示删除
-var g_HotStatus=null;
-var g_newHot = [];//存储新加热点
-var g_HotImage= {
-	"point":"https://super.4dage.com/images/4dagePoint2.png",
-	"point2":"https://super.4dage.com/images/4dagePoint.png"
-};	
-var g_saveHot=false;
+var g_HotStatus = null
+var g_newHot = [] //存储新加热点
+var g_HotImage = {
+  point: 'https://super.4dage.com/images/4dagePoint2.png',
+  point2: 'https://super.4dage.com/images/4dagePoint.png'
+}
+var g_saveHot = false
 
-var g_TextColor=0x7777ff;
-var g_Text=null;
-var g_TextPlaneMesh=[];
-var g_TextIconMesh=[];
-var g_TextIcon="./images/text.png";
-var g_SelectTextIndex=null;
-var g_TextShow=null;
-var g_audioPlay=false;
-var g_background=null; 
-var g_roof=null;
+var g_TextColor = 0x7777ff
+var g_Text = null
+var g_TextPlaneMesh = []
+var g_TextIconMesh = []
+var g_TextIcon = './images/text.png'
+var g_SelectTextIndex = null
+var g_TextShow = null
+var g_audioPlay = false
+var g_background = null
+var g_roof = null
 
-var g_data2 = null;//加载的data2.js的内容
-var g_bgAudio=null;//背景音乐
-var g_tourAudio=null;//导览音乐
-var g_play = 1;//表示播放图标状态
-var g_playAudio = null;//当前在播放或当继续播放时应该播放的,是g_bgAudio或g_tourAudio 
-var g_currentHot = null;//当前打开的热点 
+var g_data2 = null //加载的data2.js的内容
+var g_bgAudio = null //背景音乐
+var g_tourAudio = null //导览音乐
+var g_play = 1 //表示播放图标状态
+var g_playAudio = null //当前在播放或当继续播放时应该播放的,是g_bgAudio或g_tourAudio
+var g_currentHot = null //当前打开的热点
 //var g_Texture=null;
 //var g_ChunknameTexture={};   //chunkname和贴图名称对应
-var g_NormalTexture=false;
-var g_SpecularTexture=false;
-var g_DirectionalLight=null;  
-  
-var g_snapShotWidth = 200; //截图下载图片的大小
-var g_snapShotHeight = 140;
+var g_NormalTexture = false
+var g_SpecularTexture = false
+var g_DirectionalLight = null
+
+var g_snapShotWidth = 200 //截图下载图片的大小
+var g_snapShotHeight = 140
 
 //微信分享
 var g_weixinObj = {
-  "title": document.querySelector("head title").innerHTML,
-  "lineLink" : window.location.href,
-  "imgUrl" : "https://www.4dmodel.com/SuperPanoramic/images/weixintitle.jpg",
-  "desc" : "四维时代提供技术支持",
+  title: document.querySelector('head title').innerHTML,
+  lineLink: window.location.href,
+  imgUrl: 'https://www.4dmodel.com/SuperPanoramic/images/weixintitle.jpg',
+  desc: '四维时代提供技术支持'
 }
 
 var settings = {
-    overlay:{
-		width:1, height:0.5, depth:0.02
-	}  
+  overlay: {
+    width: 1,
+    height: 0.5,
+    depth: 0.02
+  }
 }
-if(window.number == '725'||window.number == '724'){
-    settings.mobileNavHigh = true
+if (window.number == '725' || window.number == '724') {
+  settings.mobileNavHigh = true
 }

BIN
src/assets/img/top.png


BIN
src/assets/img/topBar.png


+ 3 - 4
src/assets/styles/base.css

@@ -9,8 +9,7 @@ html {
   user-select: none;
 }
 body {
-  font: 1em/1.4 'Microsoft Yahei', 'PingFang SC', 'Avenir', 'Segoe UI', 'Hiragino Sans GB',
-    'STHeiti', 'Microsoft Sans Serif', 'WenQuanYi Micro Hei', sans-serif;
+  font: 1em/1.4 'Microsoft Yahei', 'PingFang SC', 'Avenir', 'Segoe UI', 'Hiragino Sans GB', 'STHeiti', 'Microsoft Sans Serif', 'WenQuanYi Micro Hei', sans-serif;
   height: 100%;
 }
 @font-face {
@@ -145,7 +144,7 @@ body,
   animation: likeMoveAc 2s linear forwards;
 }
 .room-label p {
-  color: #FDFBB2;
+  color: #fdfbb2;
 }
 @keyframes likeMoveAc {
   0% {
@@ -169,4 +168,4 @@ body,
   html .cad {
     top: 20px;
   }
-}
+}

+ 1 - 1
src/components/RouterOrder.tsx

@@ -11,7 +11,7 @@ const routerArr = [
     name: '首页',
     path: '/',
     exact: true,
-    Com: React.lazy(() => import('@/pages/A0base'))
+    Com: React.lazy(() => import('@/pages/A1home'))
   },
   {
     id: 2,

+ 1 - 6
src/pages/A0base/index.tsx

@@ -2,17 +2,12 @@ import React, { useState } from 'react'
 import isMobile from '../../utils/isMobile'
 import A5Mobile from '../A5Mobile'
 import A4base from '../A4base'
-import styles from './index.module.scss'
 function A0base() {
   const [show, setShow] = useState(true)
   return (
     <>
       {/* 初始封面 */}
-      {isMobile() ? (
-        <A5Mobile show={show} setShow={setShow} />
-      ) : (
-        <A4base show={show} setShow={setShow} />
-      )}
+      {isMobile() ? <A5Mobile show={show} setShow={setShow} /> : <A4base show={show} setShow={setShow} />}
     </>
   )
 }

+ 77 - 0
src/pages/A1home/components/A11topBar/data.ts

@@ -0,0 +1,77 @@
+const sceneLinkTemp = [
+  {
+    id: 1,
+    title: 'A馆',
+    items: [
+      {
+        title: 'AC馆',
+        link: 'SG-r5DtdswkZ49'
+      },
+      {
+        title: 'A馆一楼',
+        link: 'SG-3gCcPDkuBox'
+      },
+      {
+        title: 'A馆二楼',
+        link: 'SG-ryBEFpjTbxB'
+      }
+    ]
+  },
+  {
+    id: 2,
+    title: 'B馆',
+    items: [
+      {
+        title: 'BD馆',
+        link: 'SG-nFe1LNF3kpy'
+      },
+      {
+        title: 'B1馆',
+        link: 'SG-OOJPFzY5ZFz'
+      },
+      {
+        title: 'B2馆',
+        link: 'SG-9ZztEoyICcV'
+      },
+      {
+        title: 'B馆中央大厅',
+        link: 'SG-tVtpwYiqvaf'
+      }
+    ]
+  },
+  {
+    id: 3,
+    title: 'C馆',
+    items: [
+      {
+        title: 'C馆',
+        link: 'SG-goZny7WUC1o'
+      }
+    ]
+  },
+  {
+    id: 4,
+    title: 'D馆',
+    items: [
+      {
+        title: 'D馆',
+        link: 'SG-nFe1LNF3kpy'
+      },
+      {
+        title: 'D馆会议中心',
+        link: 'SG-vL4jGsIw63c'
+      }
+    ]
+  }
+]
+
+type SceneLinkType = {
+  id: number
+  title: string
+  items: {
+    title: string
+    link: string
+  }[]
+}[]
+
+export const sceneLink: SceneLinkType = sceneLinkTemp

+ 145 - 0
src/pages/A1home/components/A11topBar/index.module.scss

@@ -0,0 +1,145 @@
+.A11topBar {
+  :global {
+    .A1mian {
+      transition: all 0.3s;
+      position: absolute;
+      top: 0;
+      left: 0;
+      width: 100%;
+      .topBar {
+        position: absolute;
+        z-index: 10;
+        top: 0;
+        width: 100%;
+        height: 70px;
+        background: url(../../../../assets/img/topBar.png) no-repeat;
+        background-size: 100% 100%;
+        display: flex;
+        justify-content: center;
+        .txt {
+          height: 30px;
+          line-height: 35px;
+          font-size: 16px;
+          color: #fff;
+        }
+      }
+      .top {
+        z-index: 10;
+        top: 70px;
+        width: 100%;
+        height: 230px;
+        background: url(../../../../assets/img/top.png) no-repeat;
+        background-size: 100% 100%;
+        position: relative;
+        top: 50px;
+
+        .exhibition {
+          position: absolute;
+          top: 0;
+          left: 51%;
+          transform: translateX(-50%);
+          width: 27%;
+          margin-top: 20px;
+          height: 20px;
+          display: flex;
+          justify-content: center;
+          align-items: center;
+          gap: 10px;
+
+          .exhibitionTitle {
+            cursor: pointer;
+            text-align: center;
+            width: 100px;
+            height: 20px;
+            line-height: 18px;
+            border: 1px solid #7594eba9;
+            opacity: 0.8;
+            font-size: 14px;
+            font-weight: 500;
+            color: #fff;
+            text-overflow: ellipsis;
+            white-space: nowrap;
+            overflow: hidden;
+          }
+          .exhibitionTitleAc {
+            background-color: #0eccd2;
+          }
+        }
+        .sceneList {
+          position: absolute;
+          top: 55px;
+          left: 50%;
+          transform: translateX(-50%);
+          width: 100%;
+          height: 120px;
+          display: flex;
+          justify-content: center;
+          align-items: center;
+          gap: 10px;
+          .scene {
+            width: 140px;
+            height: 120px;
+            cursor: pointer;
+            img {
+              border-radius: 4px;
+              border: 3px solid transparent;
+              object-fit: cover;
+              width: 100%;
+              height: calc(100% - 30px);
+            }
+            & > p {
+              width: 100%;
+              height: 30px;
+              line-height: 30px;
+              color: #fff;
+              text-align: center;
+            }
+          }
+          .sceneAc {
+            img {
+              border-color: #0eccd2;
+            }
+            p {
+              color: #0eccd2;
+            }
+          }
+          .jiantou {
+            position: absolute;
+            bottom: -22%;
+            left: 50.5%;
+            transform: translateX(-50%);
+            width: 50px;
+            height: 30px;
+            z-index: 10;
+            cursor: pointer;
+          }
+        }
+      }
+    }
+
+    .A1mianHide {
+      top: -280px;
+    }
+
+    .showJiantou {
+      width: 30px;
+      text-align: center;
+      cursor: pointer;
+      position: absolute;
+      z-index: 10;
+      top: -1%;
+      left: 50.5%;
+      transform: translateX(-50%);
+      font-size: 24px;
+      color: #0eccd2;
+    }
+
+    iframe {
+      position: absolute;
+      top: 0;
+      left: 0;
+      width: 100%;
+      height: 100%;
+    }
+  }
+}

+ 82 - 0
src/pages/A1home/components/A11topBar/index.tsx

@@ -0,0 +1,82 @@
+import React, { useState, useEffect } from 'react'
+
+import { useHistory, useLocation } from 'react-router-dom'
+import styles from './index.module.scss'
+import { sceneLink } from './data'
+import classNames from 'classnames'
+import { CaretDownOutlined } from '@ant-design/icons'
+
+function A11topBar({ children }: { children: React.ReactNode }) {
+  const [current, setCurrent] = useState(1)
+  const [code, setCode] = useState(sceneLink[0].items[0].link)
+  const [show, setShow] = useState(false)
+  const history = useHistory()
+  const location = useLocation()
+
+  useEffect(() => {
+    const m = location.search.slice(location.search.indexOf('=') + 1)
+    sceneLink.forEach(i => {
+      i.items.forEach(i2 => {
+        if (i2.link === m) {
+          setCurrent(i.id)
+        }
+      })
+    })
+    setCode(m)
+  }, [location])
+
+  return (
+    <div className={styles.A11topBar}>
+      <div className={classNames('A1mian', show ? '' : 'A1mianHide')}>
+        <div className='topBar'>
+          <div className='txt'>北人亦创国际会展中心</div>
+        </div>
+
+        <div className='top'>
+          <div className='exhibition'>
+            {sceneLink.map(item => {
+              return (
+                <div className={classNames('exhibitionTitle', current === item.id ? 'exhibitionTitleAc' : '')} key={item.id} onClick={() => setCurrent(item.id)}>
+                  {item.title}
+                </div>
+              )
+            })}
+          </div>
+          <div className='sceneList'>
+            {sceneLink
+              .find(item => item.id === current)
+              ?.items.map((item, index) => {
+                return (
+                  <div
+                    className={classNames('scene', code === item.link ? 'sceneAc' : '')}
+                    key={item.link}
+                    onClick={() => {
+                      setCode(item.link)
+                      setShow(false)
+                      setTimeout(() => {
+                        history.push(`/home?m=${item.link}`)
+                        window.location.reload()
+                      }, 300)
+                    }}
+                  >
+                    <img className='sceneImg' src={`https://houseoss.4dkankan.com/project/DEMO/BeiRen/imgBase/${item.link}.jpg`} alt='' draggable='false' />
+                    <p>{item.title}</p>
+                  </div>
+                )
+              })}
+            <div className='jiantou' onClick={() => setShow(false)}></div>
+          </div>
+        </div>
+      </div>
+
+      <div className='showJiantou' hidden={show} onClick={() => setShow(true)}>
+        <CaretDownOutlined rev={undefined} />
+      </div>
+      {children}
+    </div>
+  )
+}
+
+const MemoA11topBar = React.memo(A11topBar)
+
+export default MemoA11topBar

+ 4 - 1
src/pages/A1home/index.tsx

@@ -1,6 +1,7 @@
 import React, { useEffect, useState } from 'react'
 import styles from './index.module.scss'
 import A2main from '../A2main'
+import A11topBar from './components/A11topBar'
 const scriptArr = ['./js/manage.js', './js/Hot.js?m=1', './js/main_2020_show.js', './CAD/bundle.js', './showa/js/loadCAD.js']
 
 function A1home() {
@@ -76,7 +77,9 @@ function A1home() {
         </div>
 
         {/* 主要内容 */}
-        <A2main />
+        <A11topBar>
+          <A2main />
+        </A11topBar>
 
         <div className='webvr-popup' style={{ display: 'none' }}>
           <div className='messaging'>

+ 4 - 3
src/pages/A2main/components/A24drawerList/index.tsx

@@ -1,6 +1,7 @@
 import React from 'react'
 import styles from './index.module.scss'
-function A24drawerList() {
+
+function A11drawerList({ clickList }: { clickList: any }) {
   return (
     <>
       <div id='drawer-container' className={styles.A24drawerList}>
@@ -31,6 +32,6 @@ function A24drawerList() {
   )
 }
 
-const MemoA24drawerList = React.memo(A24drawerList)
+const MemoA11drawerList = React.memo(A11drawerList)
 
-export default MemoA24drawerList
+export default MemoA11drawerList

+ 71 - 1
src/pages/A2main/index.module.scss

@@ -162,7 +162,7 @@
           transform: translate(-50%, 220%);
           width: 100%;
           background-color: rgba(0, 0, 0, 0.5);
-          font-weight: 700;
+          font-size: 12px;
           color: #fff;
         }
       }
@@ -197,6 +197,76 @@
       }
     }
 
+    .topBar {
+      position: fixed;
+      top: 0;
+      width: 100%;
+      height: 70px;
+      background: url(../../assets/img/topBar.png) no-repeat;
+      background-size: 100% 100%;
+      display: flex;
+      justify-content: center;
+      .txt {
+        height: 30px;
+        line-height: 35px;
+        font-size: 16px;
+        color: #fff;
+      }
+    }
+    .top {
+      position: fixed;
+      top: 70px;
+      width: 100%;
+      height: 200px;
+      background: url(../../assets/img/top.png) no-repeat;
+      background-size: 100% 100%;
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+      gap: 10px;
+      .exhibition {
+        width: 500px;
+        margin-top: 20px;
+        height: 20px;
+        display: flex;
+        justify-content: flex-start;
+        align-items: center;
+        gap: 10px;
+        .exhibitionTitle {
+          cursor: pointer;
+          text-align: center;
+          width: 100px;
+          height: 20px;
+          line-height: 18px;
+          border: 1px solid #7594eba9;
+          opacity: 0.8;
+          font-size: 14px;
+          font-weight: 500;
+          color: #fff;
+          text-overflow: ellipsis;
+          white-space: nowrap;
+          overflow: hidden;
+        }
+      }
+      .sceneList {
+        width: 1000px;
+        height: 90px;
+        display: flex;
+        justify-content: flex-start;
+        align-items: center;
+        gap: 10px;
+        .scene {
+          width: 140px;
+          height: 90px;
+          cursor: pointer;
+          img {
+            width: 100%;
+            height: 100%;
+          }
+        }
+      }
+    }
+
     // 移动端
 
     @media screen and (max-width: 1000px) {

+ 23 - 78
src/pages/A2main/index.tsx

@@ -1,4 +1,4 @@
-import React, { useCallback, useEffect, useState } from 'react'
+import React, { useCallback, useState } from 'react'
 import styles from './index.module.scss'
 import A21vrOff from './components/A21vrOff'
 import A22hotListWrap from './components/A22hotListWrap'
@@ -8,74 +8,27 @@ import { useSelector } from 'react-redux'
 import { RootState } from '@/store'
 import classNames from 'classnames'
 import A3hotList from '../A3hotList'
-import { message } from 'antd'
-import http from '@/utils/http'
-const imgArrTemp = ['like.png', 'likeAc.png']
-const imgArr = imgArrTemp.map(item => require(`@/assets/img/${item}`))
+// const imgArrTemp = ['like.png', 'likeAc.png']
 
 function A2main() {
-  const SCENE_CODE = 'SG-zeRFYMaTE9F'
   // 漫游的状态
   const { state3d } = useSelector((state: RootState) => state.three)
 
-  // 点赞
-  const [like, setLike] = useState(false)
-  const [likeNum, setLikeNum] = useState(1)
-  const [viewNum, setViewNum] = useState(1)
-
-  useEffect(() => {
-    http.get(`https://count.4dage.com/api/count/detail/${SCENE_CODE}`).then(res => {
-      setLikeNum(res.data.starSum!)
-    })
-    http.get(`https://count.4dage.com/api/count/saveVisit/${SCENE_CODE}`).then(res => {
-      setViewNum(res.data.visitSum!)
-    })
-  }, [])
-
-  // 点击点赞
-  const likeFu = useCallback(() => {
-    if (like) return
-    setLike(true)
-    setTimeout(() => {
-      http.get(`https://count.4dage.com/api/count/saveStar/${SCENE_CODE}`).then(res => {
-        setLikeNum(likeNum + 1)
-        setLike(false)
-      })
-    }, 2000)
-  }, [like, likeNum])
-
   // 点击热点列表
   const [hotListShow, setHotListShow] = useState(false)
+  // 导览列表的点击事件
+  const handleListClick = useCallback(() => {
+    // 导览列表的ref
 
-  // 点击分享
-  const copyWithTextarea = (text: string) => {
-    const textArea = document.createElement('textarea')
-    textArea.value = text
-    textArea.style.position = 'fixed'
-    textArea.style.left = '-9999px'
-    textArea.style.top = '-9999px'
-    document.body.appendChild(textArea)
-    textArea.select()
-    const copyTXT = document.execCommand('copy')
-    document.body.removeChild(textArea)
-    return copyTXT
-  }
-  const handleShareClick = () => {
-    if (navigator.clipboard && typeof navigator.clipboard.writeText === 'function') {
-      navigator.clipboard.writeText(window.location.href)
-      message.success('链接已复制到剪贴板')
-    } else {
-      copyWithTextarea(window.location.href)
-      message.success('链接已复制到剪贴板')
-    }
-  }
+    const pullTabDom: HTMLDivElement = document.querySelector('#pullTab')!
 
-  const hiddenMap = (isShow: boolean) => {
-    const cad: any = document.querySelector('.cad')
-    if (cad) {
-      cad.style.visibility = isShow ? 'hidden' : 'visible'
-    }
-  }
+    console.log('xxxxxxxxx', pullTabDom.dir)
+
+    //@ts-ignore
+    window.hideTopTab(pullTabDom)
+
+    // if (pullTabDom) pullTabDom.click()
+  }, [])
 
   return (
     <div className={styles.A2main} id='gui' style={{ display: 'none' }}>
@@ -143,19 +96,17 @@ function A2main() {
                   // 停止自动导览
                   window.player.director.stopTour()
                   setHotListShow(true)
-                  hiddenMap(true)
                 }}
               >
-                <img src='images/hotlist.png' alt='' />
+                <img src={`images/hotlist${hotListShow ? '_active' : ''}.png`} alt='' />
                 {/* 鼠标移入 */}
                 <div className='hoveImg'>热点列表</div>
               </div>
 
-              <div data-original-title='全景漫游' id='gui-modes-inside' rel='tooltip'>
+              {/* <div data-original-title='全景漫游' id='gui-modes-inside' rel='tooltip'>
                 <img className='icon icon-inside' src={`images/inside${state3d === 'panorama' ? '_active' : ''}.png`} alt='' />
-                {/* 鼠标移入 */}
                 <div className='hoveImg'>全景漫游</div>
-              </div>
+              </div> */}
               <div data-original-title='迷你模型' id='gui-modes-dollhouse' rel='tooltip'>
                 <img className='icon icon-inside' src={`images/dollhouse${state3d === 'dollhouse' ? '_active' : ''}.png`} alt='' />
                 {/* 鼠标移入 */}
@@ -196,19 +147,16 @@ function A2main() {
               </div>
               <div className='container'></div>
             </div>
-            <div id='volume' className='ui-icon wide'>
-              {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}
+            {/* <div id='volume' className='ui-icon wide'>
               <a>
                 <img src='images/Volume btn_on.png' alt='' />
               </a>
-              {/* 鼠标移入 */}
               <div className='hoveImg'>音乐开关</div>
-            </div>
+            </div> */}
 
             {/* 点赞 */}
-            <div className='likeBox' onClick={likeFu}>
+            {/* <div className='likeBox' onClick={likeFu}>
               <img src={like ? imgArr[1] : imgArr[0]} alt='' />
-              {/* 鼠标移入 */}
               <div className='hoveImg'>点赞{likeNum}</div>
               <div className={classNames('likeMove', like ? 'likeMoveAc' : '')}>+1</div>
             </div>
@@ -221,7 +169,7 @@ function A2main() {
             <div className='A2_view_box'>
               <img src={require('@/assets/img/view.png')} alt='' />
               <div className='hoveImg'>浏览量{viewNum}</div>
-            </div>
+            </div> */}
 
             <div id='vr' className='ui-icon wide hidden' style={{ display: 'none' }}>
               {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}
@@ -235,12 +183,11 @@ function A2main() {
                 <i rel='tooltip' title='{[{ SOCIAL_SHARING }]}' className='icon icon-share'></i>
               </a>
             </div>
-            <div id='gui-fullscreen' className='ui-icon wide' data-placement='top' rel='tooltip'>
+            <div id='gui-fullscreen' className='ui-icon wide' data-placement='top' rel='tooltip' style={{ display: 'none' }}>
               {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}
               <a>
                 <img src='images/full.png' alt='' />
               </a>
-              {/* 鼠标移入 */}
               <div className='hoveImg'>全屏</div>
             </div>
             <div id='gui-fullscreen-exit' className='ui-icon wide' data-placement='top' rel='tooltip' style={{ display: 'none' }}>
@@ -248,7 +195,6 @@ function A2main() {
               <a>
                 <img src='images/fullx.png' alt='' />
               </a>
-              {/* 鼠标移入 */}
               <div className='hoveImg'>关闭全屏</div>
             </div>
 
@@ -260,8 +206,8 @@ function A2main() {
         </div>
       </div>
 
-      {/* 底部导览列表 */}
-      <A24drawerList />
+      {/* 导览列表 */}
+      <A24drawerList clickList={handleListClick} />
 
       {/* 热点列表 */}
       <A3hotList
@@ -269,7 +215,6 @@ function A2main() {
         setShow={setHotListShow}
         closeFu={() => {
           setHotListShow(false)
-          hiddenMap(false)
         }}
       />
     </div>

+ 1 - 0
src/types/declaration.d.ts

@@ -6,3 +6,4 @@ declare module '*.gif'
 declare module '*.svg'
 declare module 'js-export-excel'
 declare module 'braft-utils'
+declare const sceneLinkTemp