tremble 2 лет назад
Родитель
Сommit
c91e633653
2 измененных файлов с 40 добавлено и 29 удалено
  1. 32 28
      public/package/js/label.js
  2. 8 1
      src/views/Home_pc.vue

+ 32 - 28
public/package/js/label.js

@@ -32,26 +32,30 @@ class Label2D extends THREE.EventDispatcher {
 
         this.elem.css({ position: 'absolute', 'z-index': 999 })
         this.clickFun = o.clickFun;
-        this.clickFun && this.elem.on('click', this.clickFun.bind(this,{...o,elem:this.elem}))
+        this.clickFun && this.elem.on('click', this.clickFun.bind(this, {
+            ...o,
+            elem: this.elem,
+            emissiveTexture: this.emissiveTexture
+        }))
 
         {
             let update = (e) => {
                 this.update(e)
             }
-            let updateShelter = ()=>{
-                if (this.shelterByModel){
+            let updateShelter = () => {
+                if (this.shelterByModel) {
                     if (convertTool.ifShelter(this.position, this.pos2d, viewer.camera, viewer.model.children, 0.05)) {
                         this.sheltered = true
-                        this.elem.css('display', 'none'); 
-                    }else{
+                        this.elem.css('display', 'none');
+                    } else {
                         this.sheltered = false
                         this.update()
                     }
                 }
             }
-            viewer.addEventListener("view.changed", update) 
-            viewer.addEventListener("delayUpdate", updateShelter) 
-            
+            viewer.addEventListener("view.changed", update)
+            viewer.addEventListener("delayUpdate", updateShelter)
+
             this.addEventListener('dispose', (e) => {
                 viewer.removeEventListener("view.changed", update)
                 viewer.removeEventListener("delayUpdate", updateShelter)
@@ -62,38 +66,38 @@ class Label2D extends THREE.EventDispatcher {
         this.update()
     }
 
- 
-    update(e={}) {
+
+    update(e = {}) {
         if (!this.position || !this.visible || this.sheltered) return
- 
+
 
         var p = convertTool.getPos2d(this.position, viewer.camera, $("#player")[0]);
         this.pos2d = p.vector;
 
 
-        if (this.pos2d.x>0) {
+        if (this.pos2d.x > 0) {
             this.elem.addClass('right')
-          } else{
+        } else {
             this.elem.removeClass('right')
-          }
-        
+        }
+
         if (!p || !p.trueSide) {
             this.elem.css('display', 'none'); return;
         }
 
         //判断label是否被模型遮挡,遮挡则消失(如果是漫游模式最好提前计算visiblePanos)
-    
-     
-       /*  if (e.changeSlightly) {//防卡: 画面要停止转动时才执行
-            if (this.shelterByModel && convertTool.ifShelter(this.position, p.vector, viewer.camera, viewer.model.children, 0.05)) {
-                this.sheltered = true
-                this.elem.css('display', 'none'); return;
-            } else {
-                this.sheltered = false
-            }
-        } else {
-            //console.log('!changeSlightly')
-        } */
+
+
+        /*  if (e.changeSlightly) {//防卡: 画面要停止转动时才执行
+             if (this.shelterByModel && convertTool.ifShelter(this.position, p.vector, viewer.camera, viewer.model.children, 0.05)) {
+                 this.sheltered = true
+                 this.elem.css('display', 'none'); return;
+             } else {
+                 this.sheltered = false
+             }
+         } else {
+             //console.log('!changeSlightly')
+         } */
 
 
         this.elem.css({
@@ -102,7 +106,7 @@ class Label2D extends THREE.EventDispatcher {
         })
 
         this.elem.css('display', 'block');
-        
+
     }
 
     setVisible(visi, reason, level = 0, type) {

+ 8 - 1
src/views/Home_pc.vue

@@ -49,9 +49,16 @@ let labelClick = (e) => {
       transitionTime,
       () => {
         e.elem[0].style.display == 'block' && e.elem.addClass('detailShow')
+        e.elem.siblings().removeClass('detailShow')
+        e.elem.siblings().css({
+          "opacity": 0,
+          "pointer-events": "none"
+        })
+        console.log(e.elem.siblings());
         let wlmesh = window.viewer.model.getObjectByName("WL48_ping")
-        wlmesh.material.emissiveMap = this.centerLabel.emissiveTexture;
+        wlmesh.material.emissiveMap = e.emissiveTexture;
         wlmesh.material.dispose();
+        window.showWenli = true
 
         // window.viewer.labels.forEach(item => {