gemercheung %!s(int64=2) %!d(string=hai) anos
pai
achega
4e45ee8c84

+ 53 - 79
packages/qjkankan-editor/public/static/template/customTooltip.xml

@@ -34,6 +34,7 @@
         set(hotspot[get(hsp_name)].onup,js(__krfn.angle.updateHotSpotData(get(xml.scene),get(name),get(ath),get(atv))));
 
         txtsplit(%10,'|',fontSize,pos,isHover,borderColor,fillColor,textColor,isShowLine,isTextWrap,lineDirection,textDirection,textNumPerLine,duration,frameNumber);
+        set(hotspot[get(hsp_name)].pos,pos);
         txtadd(hotspot[get(hsp_name)].onloaded,"add_tooltip_label();add_tooltip_dot();");
 
        if(%2 LE 2,
@@ -51,30 +52,7 @@
             copy(hotspot[get(hsp_name)].html,line);
             <!-- txtadd(hotspot[get(hsp_name)].onloaded,"add_tooltip_label();add_tooltip_dot();"); -->
             set_label_dir(get(hsp_name),get(lineDirection),0);
-            <!-- if(
-                lineDirection == 'right-top',
-                set(hotspot[get(hsp_name)].rotate,35);
-            );
-            if(
-                lineDirection == 'right-center',
-                set(hotspot[get(hsp_name)].rotate,90);
-            );
-            if(
-                lineDirection == 'right-bottom',
-                set(hotspot[get(hsp_name)].rotate,-35);
-            );
-            if(
-                lineDirection == 'left-top',
-                set(hotspot[get(hsp_name)].rotate,-35);
-            );
-            if(
-                lineDirection == 'left-center',
-                set(hotspot[get(hsp_name)].rotate,90);
-            );
-            if(
-                lineDirection == 'left-bottom',
-                set(hotspot[get(hsp_name)].rotate,35);
-            ); -->
+           
         );
 
         addhotspot(get(hsp_name));
@@ -113,52 +91,11 @@
         set_label_pos(get(tooltipname),get(pos));
        );
 
-                                        <!-- 个性化标签(3) -->
+        <!-- 个性化标签(3) -->
         if(get(hotspottype) == 3,    
-            <!-- trace('lineDirection2::',lineDirection);  -->
-            set_label_dir(get(tooltipname),get(lineDirection),1);
-          
-                            <!-- if(
-                lineDirection == 'right-top',
-                set(layer[get(tooltipname)].y,-60);
-                set(layer[get(tooltipname)].rotate,-35);
-             );
-            if(
-                lineDirection == 'right-center',
-                set(layer[get(tooltipname)].x,0);
-                set(layer[get(tooltipname)].y,-80);
-                set(layer[get(tooltipname)].rotate,-90);
-            );
-            if(
-                lineDirection == 'right-bottom',
-                set(layer[get(tooltipname)].y,60);
-                set(layer[get(tooltipname)].rotate,35);
-            );
-             if(
-                lineDirection == 'center-top',
-                set(layer[get(tooltipname)].y,-55);        
-             );
-             if(
-                lineDirection == 'center-bottom',
-                set(layer[get(tooltipname)].y,55);
-             );
-            if(
-                lineDirection == 'left-top',
-                set(layer[get(tooltipname)].y,-60);
-                set(layer[get(tooltipname)].rotate,35);
-             );
-            if(
-                lineDirection == 'left-center',
-                set(layer[get(tooltipname)].x,0);
-                set(layer[get(tooltipname)].y,80);
-                set(layer[get(tooltipname)].rotate,-90);
-             );
-            if(
-                lineDirection == 'left-bottom',
-                set(layer[get(tooltipname)].x,0);
-                set(layer[get(tooltipname)].y,60);
-                set(layer[get(tooltipname)].rotate,-35);
-             ); -->
+            set(layer[get(tooltipname)].direction,get(lineDirection));
+            delayedcall(0.2,txtadd(tooltipname, 'tooltip_', get(name)); set_label_dir(get(tooltipname),get(layer[get(tooltipname)].direction),1); );
+      
 
         );
         copy(layer[get(tooltipname)].html, labelCode);
@@ -201,18 +138,33 @@
      txtadd(dirItem,'',%1);
      txtadd(lineDirection,'',%2);
      txtadd(dir,'',%3);
-     trace('set_label_dir::1::',get(dirItem),'::2::',get(lineDirection),'::3::',get(dir));
+     trace('get-lineDirection::',%2);
+     <!-- trace('set_label_dir::1::',get(dirItem),'::2::',get(lineDirection),'::3::',get(dir)); -->
+     if(
+        get(dir)==1,
+        <!-- trace('set_label_dir::1::',get(dirItem),'::2::',get(lineDirection),'::3::',get(dir)); -->
+        copy(labelWidth,layer[get(dirItem)].width);
+        <!-- trace('dirItem::',get(layer[get(dirItem)].width)); -->
+     );
 
         if(
              get(lineDirection) == 'right-top',
             if(get(dir)==0,set(hotspot[get(dirItem)].rotate,35));
-            if(get(dir)==1,set(layer[get(dirItem)].rotate,-35);set(layer[get(dirItem)].x,0);set(layer[get(dirItem)].y,-60));
+            if(get(dir)==1,set(layer[get(dirItem)].rotate,-35);set(layer[get(dirItem)].x,0);set(layer[get(dirItem)].y,-60););
             if(get(dir)==2,set(layer[get(dirItem)].x,0);set(layer[get(dirItem)].y,40););
         );
         if(
              get(lineDirection) == 'right-center',
              if(get(dir)==0,set(hotspot[get(dirItem)].rotate,90));
-             if(get(dir)==1,set(layer[get(dirItem)].rotate,-90);set(layer[get(dirItem)].x,0);set(layer[get(dirItem)].y,-80));
+             <!-- if(get(dir)==1,set(layer[get(dirItem)].rotate,-90);set(layer[get(dirItem)].x,0);set(layer[get(dirItem)].y,-80)); -->
+             if(get(dir)==1,
+                set(layer[get(dirItem)].rotate,-90);
+                set(layer[get(dirItem)].x,0);
+                sub(labelWidth,25);
+                mul(labelWidth,-1);
+                set(layer[get(dirItem)].y,get(labelWidth));
+                );
+           
              if(get(dir)==2,set(layer[get(dirItem)].x,0);set(layer[get(dirItem)].y,40););
         );
         if(
@@ -224,7 +176,7 @@
         if(
              get(lineDirection) == 'center-top',
             if(get(dir)==0,set(hotspot[get(dirItem)].rotate,0));
-            if(get(dir)==1,set(layer[get(dirItem)].rotate,0);set(layer[get(dirItem)].x,0);set(layer[get(dirItem)].y,-55));
+            if(get(dir)==1,set(layer[get(dirItem)].rotate,0);set(layer[get(dirItem)].x,0);set(layer[get(dirItem)].y,-60));
             if(get(dir)==2,set(layer[get(dirItem)].x,0);set(layer[get(dirItem)].y,40););
         );
         if(get(lineDirection) == 'center-bottom',
@@ -240,7 +192,13 @@
         if(
              get(lineDirection) == 'left-center',
              if(get(dir)==0,set(hotspot[get(dirItem)].rotate,90));
-             if(get(dir)==1,set(layer[get(dirItem)].rotate,-90);set(layer[get(dirItem)].x,0);set(layer[get(dirItem)].y,80));
+             
+             if(get(dir)==1,
+                set(layer[get(dirItem)].rotate,-90);
+                set(layer[get(dirItem)].x,0);
+                sub(labelWidth,25);
+                set(layer[get(dirItem)].y,get(labelWidth));
+                );
              if(get(dir)==2,set(layer[get(dirItem)].x,0);set(layer[get(dirItem)].y,-40););
         );
         if(
@@ -256,11 +214,15 @@
     <action name='set_label_pos'>
         <!-- label方位 -->
        set(posName,%1);
-       set(pos,%2);    
+       set(pos,%2);
+       copy(tt, layer[get(posName)].width);
+       trace('post_get_width::',get(tt));
+       <!-- trace('post_get_height::',get(posName)); -->
+
         if(
             pos == 'top',
             add(dHeight,get(layer[get(posName)].height), 12);
-            trace('dHeight::',dHeight);
+            if(get(dHeight) LT 30,set(dHeight,30));
             mul(dHeight, -1);
             set(layer[get(posName)].x,0);
             set(layer[get(posName)].y,get(dHeight));
@@ -268,6 +230,7 @@
          if(
             pos == 'bottom',
             add(dHeight,get(layer[get(posName)].height), 12);
+           if(get(dHeight) LT 30,set(dHeight,30));
             mul(dHeight, 1);
             set(layer[get(posName)].x,0);
             set(layer[get(posName)].y,get(dHeight));
@@ -291,6 +254,8 @@
         txtadd(tooltipname, 'tooltip_', get(name)); 
         txtadd(jsCode,"document.getElementById('krpanoSWFObject').get('layer[",get(tooltipname),"]').pixelwidth");
         jsget(dWidth,get(jsCode));
+        trace('dWidth::',dWidth);
+        if(get(dWidth) LT 50,set(dWidth,50));
         mul(dWidth, -1);
         set(layer[get(tooltipname)].y,0);
         set(layer[get(tooltipname)].x,get(dWidth)); 
@@ -305,7 +270,7 @@
         txtadd(tooltipname, 'tooltip_', get(name)); 
         txtadd(jsCode,"document.getElementById('krpanoSWFObject').get('layer[",get(tooltipname),"]').pixelwidth");
         jsget(dWidth,get(jsCode));
-
+        if(get(dWidth) LT 50,set(dWidth,50));
         mul(dWidth, 1);
         set(layer[get(tooltipname)].y,0);
         set(layer[get(tooltipname)].x,get(dWidth)); 
@@ -336,6 +301,7 @@
       txtadd(labelCode, '<div style="display: flex; align-items: center; justify-content: center; position: relative; border: 1px solid ',get(borderColor) ,'; padding: 6px 10px; white-space: pre; border-radius: 5px; background: ',get(fillColor),'">','        <div style="text-align: left; font-size:',get(fontSize),'px; color: ',get(textColor),'; line-height: 1.4;">',%3,'</div>
     </div>');     
       copy(layer[get(hsLabel)].html, labelCode);
+      copy(layer[get(hsLabel)].pos, pos);
       trace('editJQHotspot',%1,'::type::',%3);
       
         if(%3 == '', set(layer[get(hsLabel)].height,12););
@@ -369,11 +335,19 @@
         set(hotspot[get(hsp_name)].height,%8);
         set(hotspot[get(hsp_name)].width,%8);
 
-        set_label_pos(get(hsLabel),get(pos));
+       delayedcall(0.2,
+       txtadd(tooltipname, 'tooltip_', get(hsp_name)); 
+       trace('pos::',get(layer[get(tooltipname)].pos));
+       set_label_pos(get(hsp_name),get(layer[get(tooltipname)].pos));
+       );
+      
+
+        <!-- set_label_pos(get(hsLabel),get(pos)); -->
+        
         set(hotspot[get(hsp_name)].url,get(iconUrl));
         set(hotspot[get(hsp_name)].rotate,0);
         set(layer[get(hsLabel)].rotate,0);
-          set(layer[get(hsDot)].visible,false);
+        set(layer[get(hsDot)].visible,false);
   
         <!-- copy(hotspot[get(hsp_name)].html,''); -->
        );

+ 20 - 0
packages/qjkankan-kankan-view/.env.testprod

@@ -0,0 +1,20 @@
+NODE_ENV=production
+# 场景资源地址
+VUE_APP_RESOURCE_URL=https://4dkk.4dage.com/
+# 静态资源地址
+VUE_APP_CDN_URL=https://4dkk.4dage.com/v4/www/
+# sdk文件地址
+VUE_APP_SDK_DIR=https://4dkk.4dage.com/v4/www/sdk/
+# VUE_APP_SDK_DIR=https://4dkk.4dage.com/v4-test/www/sdk/
+
+
+
+# 静态资源目录
+VUE_APP_STATIC_DIR=viewer
+
+
+# 云存储环境
+VUE_APP_REGION_URL=
+
+# 接口请求地址
+VUE_APP_APIS_URL=https://test.4dkankan.com/

+ 21 - 0
packages/qjkankan-kankan-view/.env.testserve

@@ -0,0 +1,21 @@
+
+# 场景资源地址
+VUE_APP_RESOURCE_URL=https://4dkk.4dage.com/
+# 静态资源地址
+VUE_APP_CDN_URL=https://4dkk.4dage.com/v4/www/
+# sdk文件地址
+VUE_APP_SDK_DIR=https://4dkk.4dage.com/v4/www/sdk/
+# VUE_APP_SDK_DIR=https://4dkk.4dage.com/v4-test/www/sdk/
+
+
+
+# 静态资源目录
+VUE_APP_STATIC_DIR=viewer
+
+
+# 云存储环境
+VUE_APP_REGION_URL=
+
+# 接口请求地址
+VUE_APP_APIS_URL=https://test.4dkankan.com/
+

+ 2 - 1
packages/qjkankan-kankan-view/package.json

@@ -3,8 +3,9 @@
   "version": "1.2.0",
   "private": true,
   "scripts": {
-    "serve": "vue-cli-service serve",
+    "serve": "vue-cli-service serve --mode testserve",
     "serve-prod": "vue-cli-service serve --mode prod",
+    "build-test-prod": "vue-cli-service build --mode testprod",
     "build": "vue-cli-service build --mode prod",
     "build-eurtestprod": "vue-cli-service build --mode eurtestprod",
     "build-eurprod": "vue-cli-service build --mode eurprod",

+ 2 - 2
packages/qjkankan-kankan-view/public/smg.html

@@ -28,8 +28,8 @@
 
         <script src="<%= BASE_URL %><%= VUE_APP_STATIC_DIR %>/static/lib/jweixin-1.6.0.js"></script>
         
-        <script src="<%= VUE_APP_SDK_DIR %>kankan-sdk-deps.js?v=4.6.2"></script>
-        <script src="<%= VUE_APP_SDK_DIR %>kankan-sdk.js?v=4.6.2"></script>
+        <script src="<%= VUE_APP_SDK_DIR %>kankan-sdk-deps.js?v=4.7.6"></script>
+        <script src="<%= VUE_APP_SDK_DIR %>kankan-sdk.js?v=4.7.6"></script>
 
         <!-- <script src="https://4dkk.4dage.com/v4/www/sdk/kankan-sdk-deps.js?v=4.0.0-alpha.44"></script>
         <script src="https://4dkk.4dage.com/v4/www/sdk/kankan-sdk.js?v=4.0.0-alpha.44"></script> -->

+ 2 - 2
packages/qjkankan-kankan-view/public/spg.html

@@ -17,8 +17,8 @@
         </noscript>
         <div id="app"></div>
         
-        <script src="<%= VUE_APP_SDK_DIR %>kankan-sdk-deps.js?v=4.6.2"></script>
-        <script src="<%= VUE_APP_SDK_DIR %>kankan-sdk.js?v=4.6.2"></script>
+        <script src="<%= VUE_APP_SDK_DIR %>kankan-sdk-deps.js?v=4.7.6"></script>
+        <script src="<%= VUE_APP_SDK_DIR %>kankan-sdk.js?v=4.7.6"></script>
 
         <!-- built files will be auto injected -->
     </body>

+ 2 - 2
packages/qjkankan-kankan-view/src/components/Tags/index.vue

@@ -1,7 +1,7 @@
 <template>
     <teleport :to="tags$" v-if="tags$">
         <template v-for="(tag, index) in tags">
-            <div @mouseleave="onMouseLeave($event, tag)" :style="{ left: tag.x + 'px', top: tag.y + 'px' }" :class="{ visible: tag.visible }">
+            <div :tag-sid="tag.sid" @mouseleave="onMouseLeave($event, tag)" :style="{ left: tag.x + 'px', top: tag.y + 'px' }" :class="{ visible: tag.visible }">
                 <span @click.stop="goTag(tag, index)" class="point zoom" @mouseenter.stop="onMouseEnter(tag, index)" :style="{ 'background-image': 'url(' + getUrl(tag.icon) + ')' }"></span>
                 <div class="content">
                     <div class="trans" :class="{ active: (isFixed && hotData && tag.sid == hotData.sid) || (showInfo && hotData && tag.sid == hotData.sid) }">
@@ -95,7 +95,7 @@ const closeTag = async () => {
     const player = await app.TourManager.player
     //关闭热点面板时候,继续播放之前暂停的音频
     if (!app.Scene.isCurrentPanoHasVideo && !player.isPlaying) {
-        if (hotData.value.type == 'audio' || hotData.value.type == 'video') {
+        if ( hotData.value && (hotData.value.type == 'audio' || hotData.value.type == 'video')) {
             // console.log('resume')
             window.parent.postMessage(
             {

+ 4 - 2
packages/qjkankan-kankan-view/src/pages/SMG.vue

@@ -45,7 +45,7 @@ import { useMusicPlayer } from "@/utils/sound";
 import UiTags from "@/components/Tags";
 
 import { listenMessage } from '@/utils/messageHandler'
-
+import {Dialog} from '@/global_components'
 
 import Information from "@/components/Information";
 import Control from "@/components/Controls/Control.Mobile.vue";
@@ -59,6 +59,8 @@ import { ref, onMounted, computed, nextTick, watch } from "vue";
 import { useStore } from "vuex";
 import browser from "@/utils/browser";
 import { useApp, getApp } from "@/app";
+import { useI18n, getLocale } from '@/i18n'
+const { t } = useI18n({ useScope: 'global' })
 
 const musicPlayer = useMusicPlayer();
 
@@ -385,7 +387,7 @@ onMounted(() => {
     });
   });
   app.store.on("floorcad", (floor) => store.commit("scene/loadFloorData", floor));
-
+  app.store.on('flooruser', floor => store.commit('scene/loadFloorData', floor)) //4.7以后新楼层方式
   app.render();
 });
 </script>

+ 1 - 0
packages/qjkankan-kankan-view/src/pages/SPG.vue

@@ -235,6 +235,7 @@ onMounted(() => {
         })
     })
     app.store.on('floorcad', floor => store.commit('scene/loadFloorData', floor))
+    app.store.on('flooruser', floor => store.commit('scene/loadFloorData', floor)) //4.7以后新楼层方式
     app.render()
 })
 </script>

+ 1 - 2
packages/qjkankan-view/.env.testdev

@@ -5,5 +5,4 @@ VUE_APP_PROXY_URL='https://test.4dkankan.com/qjkankan/'
 VUE_APP_URL_FILL=
 
 # 接口请求地址
-VUE_APP_APIS_URL=https://test.4dkankan.com/
-
+VUE_APP_APIS_URL=https://test.4dkankan.com/

+ 1 - 3
packages/qjkankan-view/package.json

@@ -3,11 +3,9 @@
   "version": "1.2.0",
   "private": true,
   "scripts": {
-    "serve": "vue-cli-service serve",
+    "serve": "vue-cli-service serve --mode testdev",
     "serve-eurtestdev": "vue-cli-service serve --mode eurtestdev",
     "serve-eurdev": "vue-cli-service serve --mode eurdev",
-    "serve-testdev": "vue-cli-service serve --mode testdev",
-    "build": "vue-cli-service build",
     "build-testprod": "vue-cli-service build --mode testprod",
     "build-eurtestprod": "vue-cli-service build --mode eurtestprod",
     "build-eurprod": "vue-cli-service build --mode eurprod",

+ 16 - 1
packages/qjkankan-view/src/sdk/QJKanKan/modules/Tags.js

@@ -15,6 +15,21 @@ export default class Tags extends Emiter {
     this.emit('clickHotspot', { sceneCode, id, hid })
   }
 
+
+  /**
+   * 编码转换
+   */
+  htmlEncode(str) {
+    var s = "";
+    if (str.length == 0) return "";
+    s = str.replace(/\'/g, "&#39;");
+    s = s.replace(/\"/g, "&quot;");
+    s = s.replace(/\(/g, "(");
+    s = s.replace(/\)/g, ")");
+    s = s.replace(/,/g, ",");
+    return s;
+  }
+
   /**
    * 添加热点
    */
@@ -25,7 +40,7 @@ export default class Tags extends Emiter {
     this.app.krpanoDom.call(`addImgTextHotSpot(
         ${param.img.replace('static/','showviewer/').replace('.svg','.png').replace('@2x','')},
         ${param.name},
-        ${param.hotspotTitle},
+        ${this.htmlEncode(param.hotspotTitle)},
         ${param.ath != '' ? param.ath : ath},
         ${param.atv != '' ? param.atv : atv},
         ${param.secne ? param.secne.sceneCode : 'notjump'},

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 275 - 775
yarn.lock