瀏覽代碼

同上 包括热点sid

xzw 5 年之前
父節點
當前提交
6b63165a3f
共有 3 個文件被更改,包括 170 次插入25 次删除
  1. 52 12
      js/edit.js
  2. 67 11
      js/main_2020_edit.js
  3. 51 2
      js/main_2020_show.js

+ 52 - 12
js/edit.js

@@ -1,8 +1,9 @@
 var ceshi = '';
 // var ceshi = 'http://192.168.0.135:8105';
-// var ceshi = 'http://47.107.252.54:8105';
+ var ceshi = 'http://47.107.252.54:8105';
 
 
+var token = "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsInJvbGUiOm51bGwsIm1hbmFnZXIiOm51bGwsImlkIjoxLCJ1c2VyTmFtZSI6ImFkbWluIiwiZXhwIjoxNTk2NTA0NDIyLCJpYXQiOjE1OTY0MTgwMjIsImp0aSI6IjRlNmZmZDgxLTUxMTUtNDZjNS1iNjlhLTY0ZDM2YzJmOGQ4ZiJ9.ou57-8znUElcMvT2e-XfJt9Vw4_BUfA3bHW37xjeQvc"//window.localStorage.dcj_token                                    
 
 function reData(data,type) {
   return JSON.stringify(data) == type ? null : data
@@ -200,11 +201,11 @@ EditTools.prototype.saveAll = function () {
       method: 'POST',
       headers:{
         'Content-Type':'application/json',
-        // token:'eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsInJvbGUiOm51bGwsIm1hbmFnZXIiOm51bGwsImlkIjoxLCJ1c2VyTmFtZSI6ImFkbWluIiwiZXhwIjoxNTk1Mjk1ODk1LCJpYXQiOjE1OTUyMDk0OTUsImp0aSI6IjM5NDFhZmJhLTM5YTItNDM4ZS1hMjdlLTg3YjVhZDYzOWI3NCJ9.x0lENGaof5zMTCfYtZ8DFVG3KCuoH02P7yH8B_JUy60'
+        token:token// token:'eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsInJvbGUiOm51bGwsIm1hbmFnZXIiOm51bGwsImlkIjoxLCJ1c2VyTmFtZSI6ImFkbWluIiwiZXhwIjoxNTk1Mjk1ODk1LCJpYXQiOjE1OTUyMDk0OTUsImp0aSI6IjM5NDFhZmJhLTM5YTItNDM4ZS1hMjdlLTg3YjVhZDYzOWI3NCJ9.x0lENGaof5zMTCfYtZ8DFVG3KCuoH02P7yH8B_JUy60'
       },
       dataType:'json',
       contentType:'application/json',
-      url: ceshi + '/api/scene/edit',
+      url: ceshi + '/manage/scene/edit',//ceshi + '/api/scene/edit',
       data: JSON.stringify({
         sceneCode:number,
         hots: reData(hots,'{}') ,
@@ -218,6 +219,11 @@ EditTools.prototype.saveAll = function () {
         if (data.code === 0) {
           location.reload()
         }
+       if (data.code === 5001) {
+          alert('请重新登录')
+          localStorage.dcj_token = ''
+          location.reload()
+        }                      
       }
        
     })
@@ -764,7 +770,8 @@ Hotpoint.prototype.addHot = function (that, Hot, fn) {
   if (!window.hotIntersect) return;    // 没有正确的热点位置, return
   var position = hotIntersect.point.toArray();
    
-  var sid = g_HotMeshes.length > 0 ? "sprite_" + (parseInt(g_HotMeshes[g_HotMeshes.length - 1].name.substring(7)) + 1) : "sprite_" + g_HotMeshes.length;
+  //var sid = g_HotMeshes.length > 0 ? "sprite_" + (parseInt(g_HotMeshes[g_HotMeshes.length - 1].name.substring(7)) + 1) : "sprite_" + g_HotMeshes.length;//这么写出bug了。因为当前热点名字不是按照从小到大
+  var sid = getRandomSid()
   var hot = new Hot(sid, { position: position, rotation: [0,0,0], size: 1.05 }, that.model);
   that.model.hots[sid] = hot;
    
@@ -1340,9 +1347,9 @@ EditGuide.prototype.uploadGuide = function (urlData, guide, renew, target) {
           w: args.metadata.camera_quaternion[3]
         },
         ortho_zoom: args.metadata.ortho_zoom,
-        scan_id: args.metadata.scan_id || "outside",
-        final_angle: 110,
-        is_ortho: false,
+        scan_id: args.metadata.scan_id || "outside",  //这个"outside"不能随便改成别的
+        /* final_angle: 110,
+        is_ortho: false, */
         zoom: args.metadata.zoom  // fyz zoom是内部计算的zoomLevel, 乘以系数1.06才是实际缩放倍数
       })
 
@@ -1413,7 +1420,7 @@ var uploadMiuse = function (file, callback) {
 
 //上传图片
 function uploadImg(urlData, callback) {
-  console.log('urlData',urlData);
+  //console.log('urlData',urlData);
 
   var bytes = window.atob(urlData.split(',')[1]);        //去掉url的头,并转换为byte  
 
@@ -1441,14 +1448,22 @@ function uploadFile(file, type, callback) {
   formData.append('file', file)
 
   $.ajax({
-    url: ceshi + '/api/scene/upload/'+number,
+    url: ceshi + '/manage/scene/upload/'+number,//ceshi + '/api/scene/upload/'+number,
     data: formData,
+    headers:{
+      token:token
+    },
     dataType: 'json',
     type: 'POST',
     cache: false,//上传文件无需缓存
     processData: false,//用于对data参数进行序列化处理 这里必须false
     contentType: false, //必须
     success: function (rs) {
+      if (rs.code === 5001) {
+        alert('请重新登录')
+        localStorage.dcj_token = ''
+        location.reload()
+      }
       callback(rs, file);
       $(".edit-loading").addClass("hide");
     }
@@ -2755,9 +2770,10 @@ var panoVisiSet = {
         
         $.ajax({
           method: 'POST',
-          url: ceshi + '/api/scene/roamViable',
+          url: ceshi + '/manage/scene/roamViable',//ceshi + '/api/scene/roamViable',
           headers:{
-            'Content-Type':'application/json'  
+            'Content-Type':'application/json'  ,
+            token:token       
           },
           contentType:'application/json',
           data: JSON.stringify({
@@ -2769,6 +2785,11 @@ var panoVisiSet = {
               this.afterSavePanoVisibles()
               alert("保存漫游可行成功")
             }else alert("保存漫游可行失败")
+            if (data.code === 5001) {
+              alert('请重新登录')
+              localStorage.dcj_token = ''
+              location.reload()
+            }
           },
           fail:function(){
               alert("保存漫游可行失败")
@@ -3129,9 +3150,28 @@ CloneObject = function (copyObj, result, isSimpleCopy) {//isSimpleCopy只复制
 };
 
 
+function randomWord(randomFlag, min, max) {//随机字符串
+    var str = "",
+        range = min,
+        arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
 
+    if (randomFlag) { // 随机长度
+        range = Math.round(Math.random() * (max - min)) + min;
+    }
+    for (var i = 0; i < range; i++) {
+        var pos = Math.round(Math.random() * (arr.length - 1));
+        str += arr[pos];
+    }
+    return str;
+}
 
-
+function getRandomSid() {//5-7位随机字符串 + 6位时间    为热点准备
+    var pre = randomWord(true, 5, 7);
+    var post = new Date().getTime() + "";
+    var len = post.length;
+    post = post.substring(len - 8, len - 5) + post.substring(len - 3, len)//其实还是有可能重复的....
+    return pre + post;
+}
  
  
 

+ 67 - 11
js/main_2020_edit.js

@@ -19118,14 +19118,14 @@ function o(a, s, l) {
                 .bind(this);
                 this.startWarpState(),
                 V.start(n, o, c, 0, B.easeInOutQuad, "wait");
-                var r = player.model.heroLocations[app.director.currentItem];
+                /* var r = player.model.heroLocations[app.director.currentItem];
                 this.player.zoomEnabled = !0;
                 var h = function(e, t) {
                     //console.log(e),
                     this.player.zoomTo(e * r.zoom.toFixed(2), !0)
                 }
                 .bind(this);
-                V.start(h, 2e3, null, 0, B.easeOutQuad, "zoom")
+                V.start(h, 2e3, null, 0, B.easeOutQuad, "zoom") */
             }
             ,
             t.prototype.warpToNonPano = function(e) {
@@ -19776,7 +19776,7 @@ function o(a, s, l) {
             r("events").EventEmitter,
             new i(e),
             (t.prototype = Object.create(n.prototype)).isPano = function() {
-                return this.panoId && "" !== this.panoId
+                return this.panoId && "" !== this.panoId && this.panoId != "outside"
             }
             ,
             o.exports = t
@@ -20133,23 +20133,28 @@ function o(a, s, l) {
 				
 
                 info.camera_position = U.toPrecision(this.camera.position.toArray(),4);
-                console.log(info.camera_position)
-                if(window.screenSta === 'tour' && this.mode == "panorama"){     // fyz 导览截屏需要做额外的
-                    /**fyz 对相机截屏的角度进行校对 */
-                    var out = new B.Quaternion(q.x, q.y, q.z, q.w)
+                
+                //console.log(info.camera_position)
+                
+                info.camera_quaternion = U.toPrecision(q.toArray(),4);
+                
+                /* if(window.screenSta === 'tour'){     // fyz 导览截屏需要做额外的  fyz 对相机截屏的角度进行校对
+                     var out = new B.Quaternion(q.x, q.y, q.z, q.w)
                     out.multiply(new B.Quaternion(Math.sqrt(2) / 2, Math.sqrt(2) / 2, 0, 0).conjugate())
                     out.x *= -1;
                     out.w *= -1;
                     info.camera_quaternion = U.toPrecision(out.toArray(),4);
                 }else{
                     info.camera_quaternion = U.toPrecision(q.toArray(),4);;
-                }
+                } */
                 info.zoom = this.zoomLevel;
-                console.log(info.camera_quaternion)
+                //console.log(info.camera_quaternion)
                 // str += ( '"camera_position":['+ info.camera_position + '],"camera_quaternion":['+info.camera_quaternion+"]}");
                 // fyz 扩展编辑页面, 加上导览点缩放值
                 str += ( '"camera_position":['+ info.camera_position + '],"camera_quaternion":['+info.camera_quaternion+'], "zoom":' + info.zoom + '}');
-				return str; 
+				console.log(str)
+                
+                return str; 
 			}
 			//------end	 
             
@@ -28829,7 +28834,7 @@ function o(a, s, l) {
                 getModelIDFromQueryString: function() {
                     return n.valueFromHash("model") || n.valueFromHash("m")
                 },
-                normalizeModeldata: function(e, i) {
+                /* normalizeModeldata: function(e, i) {
                     e = JSON.parse(JSON.stringify(e));
                     var n = null;
                     if (e.images.forEach(function(t) {
@@ -28864,7 +28869,58 @@ function o(a, s, l) {
                         e.startPano = t
                     }
                     return e
+                }, */
+                
+                
+                
+                normalizeModeldata: function(e, t) {//xzw  修改导览images数据
+                    e = JSON.parse(JSON.stringify(e));
+                    var i = null;
+                    if (e.images.forEach(function(n) {
+						if(!n.metadata) return;
+                        if ("string" == typeof n.metadata)
+                            try {
+                                n.metadata = JSON.parse(n.metadata)
+                            } catch (e) {
+                                s.warn("Unable to parse image metadata"),
+                                n.metadata = null
+                            }
+                        else{   
+                            "object" == typeof n.metadata && s.debug("image.metadata already a JSON object");
+						}
+						if(n.metadata.camera_position instanceof Array){//xzw 改的格式
+							n.metadata.camera_position = new a.Vector3().fromArray(n.metadata.camera_position);
+							n.metadata.camera_quaternion = new a.Quaternion().fromArray(n.metadata.camera_quaternion);
+						}else{
+                            n.metadata.camera_position = new a.Vector3().copy(n.metadata.camera_position)
+                            n.metadata.camera_quaternion = new a.Quaternion().copy(n.metadata.camera_quaternion)
+							/* n.metadata.camera_quaternion && (n.metadata.camera_quaternion = i.convertWorkshopQuaternion(n.metadata.camera_quaternion)),
+							n.metadata.camera_position && (n.metadata.camera_position = i.convertWorkshopVector(n.metadata.camera_position)) */
+ 						}
+						!i && e.icon && e.icon === n.sid && (i = n.metadata) 
+                    }),
+					//icon初始视角的:
+                    i && i.camera_quaternion && i.camera_position && i.scan_position && i.scan_quaternion) {
+                        var n = {};
+                        n.pano = {
+                            quaternion: t.convertWorkshopPanoramaQuaternion(i.scan_quaternion),
+                            position: t.convertWorkshopVector(i.scan_position),
+                            uuid: i.scan_id
+                        },
+                        n.camera = {
+                            quaternion: i.camera_quaternion,
+                            position: i.camera_position
+                        },
+                        e.startPano = n
+                    }
+                    return e
                 },
+                
+                
+                
+                
+                
+                
                 visionVersionToInt: (i = new RegExp(["(?:[0-9.]+\\.){1,4}", "([0-9]+)", "[^\\.]*$"].join("")),
                 function(e) {
                     if (!e)

+ 51 - 2
js/main_2020_show.js

@@ -20669,7 +20669,7 @@ window.Modernizr = function(n, e, t) {
             new r(i);
             n.prototype = Object.create(o.prototype),
             n.prototype.isPano = function() {
-                return this.panoId && "" !== this.panoId
+                return this.panoId && "" !== this.panoId && this.panoId != "outside"
             }
             ,
             t.exports = n
@@ -30059,7 +30059,7 @@ window.Modernizr = function(n, e, t) {
                 getModelIDFromQueryString: function() {
                     return n.valueFromHash("model") || n.valueFromHash("m")
                 },
-                normalizeModeldata: function(e, t) {//xzw  修改导览images数据
+/*                 normalizeModeldata: function(e, t) {//xzw  修改导览images数据
                     e = JSON.parse(JSON.stringify(e));
                     var i = null;
                     if (e.images.forEach(function(n) {
@@ -30100,6 +30100,55 @@ window.Modernizr = function(n, e, t) {
                     }
                     return e
                 },
+ */              
+
+
+                normalizeModeldata: function(e, t) {//xzw  修改导览images数据
+                    e = JSON.parse(JSON.stringify(e));
+                    var i = null;
+                    if (e.images.forEach(function(n) {
+						if(!n.metadata) return;
+                        if ("string" == typeof n.metadata)
+                            try {
+                                n.metadata = JSON.parse(n.metadata)
+                            } catch (e) {
+                                s.warn("Unable to parse image metadata"),
+                                n.metadata = null
+                            }
+                        else{   
+                            "object" == typeof n.metadata && s.debug("image.metadata already a JSON object");
+						}
+						if(n.metadata.camera_position instanceof Array){//xzw 改的格式
+							n.metadata.camera_position = new ss.Vector3().fromArray(n.metadata.camera_position);
+							n.metadata.camera_quaternion = new ss.Quaternion().fromArray(n.metadata.camera_quaternion);
+						}else{
+                            n.metadata.camera_position = new ss.Vector3().copy(n.metadata.camera_position)
+                            n.metadata.camera_quaternion = new ss.Quaternion().copy(n.metadata.camera_quaternion)
+							/* n.metadata.camera_quaternion && (n.metadata.camera_quaternion = t.convertWorkshopQuaternion(n.metadata.camera_quaternion)),
+							n.metadata.camera_position && (n.metadata.camera_position = t.convertWorkshopVector(n.metadata.camera_position)) */
+ 						}
+						!i && e.icon && e.icon === n.sid && (i = n.metadata) 
+                    }),
+					//icon初始视角的:
+                    i && i.camera_quaternion && i.camera_position && i.scan_position && i.scan_quaternion) {
+                        var n = {};
+                        n.pano = {
+                            quaternion: t.convertWorkshopPanoramaQuaternion(i.scan_quaternion),
+                            position: t.convertWorkshopVector(i.scan_position),
+                            uuid: i.scan_id
+                        },
+                        n.camera = {
+                            quaternion: i.camera_quaternion,
+                            position: i.camera_position
+                        },
+                        e.startPano = n
+                    }
+                    return e
+                },
+                
+                
+
+
                 visionVersionToInt: function() {
                     var e = new RegExp(["(?:[0-9.]+\\.){1,4}", "([0-9]+)", "[^\\.]*$"].join(""));
                     return function(t) {