Bladeren bron

添加切换菜单按钮
添加全厂数据显示:模拟数据
调整印花模型明暗度

liling 7 maanden geleden
bovenliggende
commit
1b8e587853
8 gewijzigde bestanden met toevoegingen van 157 en 13 verwijderingen
  1. 14 3
      css/main.css
  2. BIN
      image/bottom.png
  3. BIN
      image/fac_btn.png
  4. BIN
      image/in02_btn.png
  5. BIN
      image/in03_btn.png
  6. BIN
      image/in04_btn.png
  7. BIN
      image/in05_btn.png
  8. 143 10
      main.html

+ 14 - 3
css/main.css

@@ -110,7 +110,7 @@
     #imp_item{
         position: absolute;
         width: 160px;
-        height: 450px;
+        height: 350px;
         background: rgba(19, 47, 95, 0.8);
         box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.2);
         border-radius: 2px 2px 2px 2px;
@@ -142,9 +142,20 @@
         width: 1920px;
         height: 95px;
         z-index: 1;
-        background: #ffffff00;
+        background: #ffffff00;        
+    }
+    .bottom{
+        position: fixed;
+        bottom: 0;
+        left: 0;
+        width: 1920px;
+        height: 46px;
+        z-index: 1;
+        background-image: url('../image/bottom.png')
+    }
+    .bottom img{
+        cursor: pointer;
     }
-
     .top02{
         background-image: url('../image/top.png') !important;
     }

BIN
image/bottom.png


BIN
image/fac_btn.png


BIN
image/in02_btn.png


BIN
image/in03_btn.png


BIN
image/in04_btn.png


BIN
image/in05_btn.png


+ 143 - 10
main.html

@@ -14,6 +14,15 @@
          style="cursor: pointer;position: absolute;right: 10px;top: 25px;height: 38px;width: 38px;text-align: center;"
          onclick="backMasterView()"><img src="image/view.png"></div>
 </div>
+<div class="bottom">
+    <div for="FAC" style="display: flex; justify-content: center; flex-flow: row;">
+        <img src="image/fac_btn.png" onclick="loadFacModel(playerNative);backMasterView();">
+        <img src="image/in02_btn.png" onclick="loadIn02Model(playerNative);backMasterView();">
+        <img src="image/in04_btn.png">
+        <img src="image/in03_btn.png" onclick="loadIn03Model(playerNative);backMasterView();">
+        <img src="image/in05_btn.png">
+    </div>
+</div>
 <div for="IN03" id="top" class="top top03 hideDiv">
     <div title="返回主视图"
          style="cursor: pointer;position: absolute;right: 10px;top: 25px;height: 38px;width: 38px;text-align: center;"
@@ -47,8 +56,8 @@
     <div itemcode="11"><span>生产绩效月报</span><img src="image/imp2.png" style="float: right;margin-top: 7px;"></div>
     <div itemcode="12"><span>车间能耗日报</span><img src="image/imp2.png" style="float: right;margin-top: 7px;"></div>
     <div itemcode="13"><span>车间能耗月报</span><img src="image/imp2.png" style="float: right;margin-top: 7px;"></div>
-    <!--			<div itemcode="1"><span>最近7天</span><img src="image/imp2.png" style="float: right;margin-top: 7px;"></div>-->
-    <!--			<div itemcode="2"><span>自定义日期</span><img src="image/imp2.png" style="float: right;margin-top: 7px;"></div>-->
+    <!--            <div itemcode="1"><span>最近7天</span><img src="image/imp2.png" style="float: right;margin-top: 7px;"></div>-->
+    <!--            <div itemcode="2"><span>自定义日期</span><img src="image/imp2.png" style="float: right;margin-top: 7px;"></div>-->
 </div>
 <div for="IN02" id="date_select">
     <div class="triangle"></div>
@@ -1402,7 +1411,7 @@
         // 渲染的格式svg/canvas/html,svg性能更优,兼容性更好
         renderer: "svg",
     });
-    var currentTargetType="FAC";//当前视图对象类型。FAC:厂房 IN02:2号楼内部  IN03:3号楼内部
+    var currentTargetType="";//当前视图对象类型。FAC:厂房 IN02:2号楼内部  IN03:3号楼内部
     //切换点列表
     var inPoints={
         "IN02":{"Text001_002":1,"x1":-28.07801,"y1":37.95126,"x2":-23.32394,"y2":31.16921},
@@ -2563,7 +2572,7 @@
                     // alert("送经量");
                     window.open(SERVER_URL + "/export/warp-run-in");
                     break;
-				case 9:
+                case 9:
                     e.stopPropagation();
                     $("#prev_day").val('7');
                     // alert("纱线规格");
@@ -2910,55 +2919,175 @@
         console.info(`用户长时间没有操作三维视图,会话即将退出,可调用player.resetTimer()取消退出`);
         if (!AutoPlayer && currentTargetType=='IN02') $("#autoplayer_btn").trigger('click') //开启自动漫游
     });
+    async function showMarker(type){        
+        for (var t in MarkerMapFac) {
+            if(t==type){
+                for (var markPtr in MarkerMapFac[t]) {
+                    var options = MarkerMapFac[t][markPtr];
+                    options["visible"]=true;
+                    await player.Native.GisMarker.update(markPtr, options);
+                }
+            }else{
+                for (var markPtr in MarkerMapFac[t]) {
+                    var options = MarkerMapFac[t][markPtr];
+                    options["visible"]=false;
+                    await player.Native.GisMarker.update(markPtr, options);
+                }
+            }
+        }
+    }
 
     async function loadFacModel(Native){
+        if(currentTargetType=="FAC") return;
+        currentTargetType="FAC";
         $("body>div.hideDiv[for='FAC']").show();
         $("body>div.hideDiv[for!='FAC']").hide();
         await player.Native.Model.setModelVisible("IN02",false);
         await player.Native.Model.setModelVisible("IN03",false);
         await player.Native.Model.setModelVisible("IN04",false);
-        await player.Native.Model.setModelVisible("IN05",false);
-        currentTargetType="FAC";
-        if(modelLoadState[currentTargetType]==null){
+        await player.Native.Model.setModelVisible("IN05",false);        
+        if(modelLoadState[currentTargetType]==null){            
             var cf = "data://models/T_ALL.pr";
             var errStr = await PlayerUtils.call(Native.Model.loadModel, currentTargetType, cf);
             modelLoadState[currentTargetType] = true;
+            //获取4号楼顶对象
+            var obj02 = await player.Native.ModelTree.findItemByName("Box013",0,true,1);
+            var imgid = await player.Native.GisMarker.loadImage("data://icon/qietu/tip2.png");
+            var options = {
+                        "text": "白胚布\r\r当日入库:100 出库:200\r当月入库:1000 出库:2000\r",
+                        "visible": true,
+                        //"maxLod": 130,
+                        "minLod": 0,
+                        "textFontSize":18,
+                        "textColor": parseInt("0xffffffff"),
+                        "contentPadding":[5,5,5,5]
+            };
+            
+            var obj02Aabb = await player.Native.ModelTree.getItemShapeInfo(obj02.item);
+            options.pos = [obj02Aabb.aabb[0][0], obj02Aabb.aabb[0][1], obj02Aabb.aabb[0][2]+70];
+            //options.parentNode=tmp.item;
+            options.imgId = imgid
+            options.imgSize = [0, 110];
+            var markPtr = await player.Native.GisMarker.create(options);
+            //await player.Native.GisMarker.update(markPtr, options);
+            MarkerMapFac["FAC"]={};
+            MarkerMapFac["FAC"][markPtr]=options;
+            //获取盘头仓对象
+            var pantou = await player.Native.ModelTree.findItemByName("Object023",0,true,1);
+            //var imgid = await player.Native.GisMarker.loadImage("rgba:255,0,255,255");
+            var options = {
+                        "text": "盘头\r\r当日入库:100 出库:200\r当月入库:1000 出库:2000",
+                        "visible": true,
+                        //"maxLod": 130,
+                        "minLod": 0,
+                        "textFontSize":16,
+                        "textColor": parseInt("0xffffffff"),
+                        "contentPadding":[5,5,5,5]
+            };
+            var obj02Aabb = await player.Native.ModelTree.getItemShapeInfo(pantou.item);
+            options.pos = [obj02Aabb.aabb[0][0], obj02Aabb.aabb[0][1]-20, obj02Aabb.aabb[0][2]+10];
+            //options.parentNode=tmp.item;
+            options.imgId = imgid
+            options.imgSize = [0, 110];
+            var markPtr = await player.Native.GisMarker.create(options);
+            MarkerMapFac["FAC"][markPtr]=options;
+            //await player.Native.GisMarker.update(markPtr, options);
+            //获取原材料仓对象
+            var pantou = await player.Native.ModelTree.findItemByName("B412",0,true,1);
+            //var imgid = await player.Native.GisMarker.loadImage("rgba:255,0,255,255");
+            var options = {
+                        "text": "原材料\r\r当日入库:100 出库:200\r当月入库:1000 出库:2000",
+                        "visible": true,
+                        //"maxLod": 130,
+                        "minLod": 0,
+                        "textFontSize":16,
+                        "textColor": parseInt("0xffffffff"),
+                        "contentPadding":[5,5,5,5]
+            };
+            var obj02Aabb = await player.Native.ModelTree.getItemShapeInfo(pantou.item);
+            options.pos = [obj02Aabb.aabb[0][0], obj02Aabb.aabb[0][1], obj02Aabb.aabb[0][2]+20];
+            //options.parentNode=tmp.item;
+            options.imgId = imgid
+            options.imgSize = [0, 110];
+            var markPtr = await player.Native.GisMarker.create(options);
+            MarkerMapFac["FAC"][markPtr]=options;
+            //await player.Native.GisMarker.update(markPtr, options);
+            //var imgid = await player.Native.GisMarker.loadImage("rgba:255,0,255,255");
+            var options = {
+                        "text": "成品\r\r当日入库:100 出库:200\r当月入库:1000 出库:2000",
+                        "visible": true,
+                        //"maxLod": 130,
+                        "minLod": 0,
+                        "textFontSize":16,
+                        "textColor": parseInt("0xffffffff"),
+                        "contentPadding":[5,5,5,5]
+            };
+            options.pos = [obj02Aabb.aabb[0][0]+120, obj02Aabb.aabb[0][1], obj02Aabb.aabb[0][2]+20];
+            //options.parentNode=tmp.item;
+            options.imgId = imgid
+            options.imgSize = [0, 110];
+            var markPtr = await player.Native.GisMarker.create(options);
+            MarkerMapFac["FAC"][markPtr]=options;
+            //await player.Native.GisMarker.update(markPtr, options);
+        }else{
+            showMarker(currentTargetType);
         }
+        player.Native.Settings.set('ambientIndenty', 'float', 0.39);//初始化环境光补偿
+        player.Native.Settings.set('diffuseIntensity', 'float', 0.8);//初始化光线强度
+        player.Native.Settings.set('specularIntensity', 'float', 0.64);//初始化高光强度
         await player.Native.Model.setModelVisible(currentTargetType,true);
         player.Native.CameraAnimation.clearKeyFrame();
     }
     async function loadIn05Model(Native){
+        if(currentTargetType=="IN05") return;
         currentTargetType="IN05";
         currentTargetType="FAC";//还未实现,默认停在工厂视图
     }
     async function loadIn04Model(Native){
+        if(currentTargetType=="IN04") return;
         currentTargetType="IN04";
         currentTargetType="FAC"; //还未实现,默认停在工厂视图
     }
     async function loadIn03Model(Native){
+        if(currentTargetType=="IN03") return;
         currentTargetType="IN03";
         await player.Native.Model.setModelVisible("FAC",false);
         await player.Native.Model.setModelVisible("IN02",false);
         await player.Native.Model.setModelVisible("IN04",false);
         await player.Native.Model.setModelVisible("IN05",false);
         $("body>div.hideDiv[for='FAC']").hide();
+        $("body>div.hideDiv[for='IN02']").hide();
+        $("body>div.hideDiv[for='IN04']").hide();
+        $("body>div.hideDiv[for='IN05']").hide();
         $("body>div.hideDiv[for='"+currentTargetType+"']").show();
+        player.Native.Settings.set('ambientIndenty', 'float', 1);//初始化环境光补偿
+        player.Native.Settings.set('diffuseIntensity', 'float', 1);//初始化光线强度
+        player.Native.Settings.set('specularIntensity', 'float', 1.2);//初始化高光强度
         if(modelLoadState[currentTargetType]==null){
             var cf = "data://models/T_03.pr";
             var errStr = await PlayerUtils.call(Native.Model.loadModel, currentTargetType, cf);
             modelLoadState[currentTargetType] = true;
+        }else{
+            showMarker(currentTargetType);
         }
         await player.Native.Model.setModelVisible(currentTargetType,true);
         player.Native.CameraAnimation.clearKeyFrame();
     }
     async function loadIn02Model(Native){
+        if(currentTargetType=="IN02") return;
         currentTargetType="IN02";
         await player.Native.Model.setModelVisible("FAC",false);
         await player.Native.Model.setModelVisible("IN03",false);
         await player.Native.Model.setModelVisible("IN04",false);
         await player.Native.Model.setModelVisible("IN05",false);
         $("body>div.hideDiv[for='FAC']").hide();
+        $("body>div.hideDiv[for='IN03']").hide();
+        $("body>div.hideDiv[for='IN04']").hide();
+        $("body>div.hideDiv[for='IN05']").hide();
         $("body>div.hideDiv[for='"+currentTargetType+"']").show();
+        player.Native.Settings.set('ambientIndenty', 'float', 0.39);//初始化环境光补偿
+        player.Native.Settings.set('diffuseIntensity', 'float', 0.8);//初始化光线强度
+        player.Native.Settings.set('specularIntensity', 'float', 0.64);//初始化高光强度
         if(modelLoadState[currentTargetType]==null){
             var cf = "data://models/T_02.pr";
             var errStr = await PlayerUtils.call(Native.Model.loadModel, currentTargetType, cf);
@@ -3029,6 +3158,8 @@
             GetAlarmData();
             //获取在线设备列表
             GetOnlineDev();
+        }else{
+            showMarker(currentTargetType);
         }
         for (var i in ANIMATION_DATA) {
             // 添加关键帧
@@ -3095,8 +3226,7 @@
                         }
                     }
                 }
-                if(inTxt!=""){
-                    currentTargetType=inTxt;
+                if(inTxt!=""){                    
                     switch(inTxt){
                         case "IN02":
                             loadIn02Model(Native);
@@ -3113,6 +3243,7 @@
                         default:
                             break;
                     }
+                    currentTargetType=inTxt;
                     backMasterView();
                 }else{
                     moveFacAnything("LClick", event);
@@ -3157,7 +3288,7 @@
             // if (object.checked) {
             player.Native.ModelTree.setSelectItem(sam0023.item);
             // } else {
-            // 	player.Native.ModelTree.setSelectItem(0);
+            //  player.Native.ModelTree.setSelectItem(0);
             // }
         } else if (object.id == "itemColor") {
             console.log("瓦特?", JSON.stringify(sam0023))
@@ -3175,6 +3306,8 @@
     }
 
     var MarkerMap = {};//标记记录
+    var MarkerMapFac={};
+    var MarkerMapIN03={};
     var MarkerOptMap = {};
 
     //设置设置名称或者模型id的颜色