From 1ac8e27dc8a227d8fc4a9b73a9f241abcae3af2a Mon Sep 17 00:00:00 2001
From: qinbo <qinbo@shsening.com>
Date: 星期三, 12 一月 2022 14:31:27 +0800
Subject: [PATCH] 添加移动车辆15分钟控件

---
 js/function.js                      |   60 +++++++++++++++++--
 widgetsTS/dataTime/widget.js        |   81 ++++++++++++++++++++++----
 js/function_1004.js                 |    6 +-
 widgetsTS/taxiRouteReplay/widget.js |    2 
 widgetsTS/dataTime/view.html        |    7 ++
 5 files changed, 131 insertions(+), 25 deletions(-)

diff --git a/js/function.js b/js/function.js
index 4e65edd..0b6bd84 100644
--- a/js/function.js
+++ b/js/function.js
@@ -16,19 +16,53 @@
     (day > 9 ? day : ("0" + day)) + " " +
     (hours > 9 ? hours : ("0" + hours)) + ":00:00";
 }
-function getDefaultDateTimeEnd() {
 
-  // return "2021-07-01 12:15:00";
+function getDefaultDateTimeTaxi() {
   var date = new Date;
-  date.setHours(date.getHours() - 2);
+  date.setMinutes(date.getMinutes() - 30)
+  var year = date.getFullYear(); //骞�
+  var month = date.getMonth(); //鏈�
+  var day = date.getDate(); //鏃�
+  var hours = date.getHours(); //鏃�
+  var min = date.getMinutes(); //鍒�
+  if(min >= 0 && min < 15){
+    min = 0
+  }else if(min >=15 && min < 30){
+    min = 15
+  }else if(min >=30 && min < 45){
+    min = 30
+  }else{
+    min = 45
+  }
+  return year + "-" +
+    ((month + 1) > 9 ? (month + 1) : "0" + (month + 1)) + "-" +
+    (day > 9 ? day : ("0" + day)) + " " +
+    (hours > 9 ? hours : ("0" + hours)) + ":" +
+    (min > 9 ? min : ("0" + min)) + ":00";
+}
+
+function getDefaultDateTimeEnd() {
+  var date = new Date;
+  date.setMinutes(date.getMinutes() - 15)
   var year = date.getFullYear();//骞�
   var month = date.getMonth();//鏈�
   var day = date.getDate();//鏃�
   var hours = date.getHours();//鏃�
+  var min = date.getMinutes(); //鍒�
+  if(min >= 0 && min < 15){
+    min = 0
+  }else if(min >= 15 && min < 30){
+    min = 15
+  }else if(min >= 30 && min < 45){
+    min = 30
+  }else{
+    min = 45
+  }
   return year + "-" +
     ((month + 1) > 9 ? (month + 1) : "0" + (month + 1)) + "-" +
     (day > 9 ? day : ("0" + day)) + " " +
-    (hours > 9 ? hours : ("0" + hours)) + ":15:00";
+    (hours > 9 ? hours : ("0" + hours )) + ":"+
+    (min > 9 ? min : ("0" + min)) + ":00";
 }
 
 function getDefaultDateTimeStart() {
@@ -60,6 +94,7 @@
 mars3d.global_variables.grid_camerview =default_grid_camerview;
 mars3d.global_variables.queryDataTStart = getDefaultDateTime();
 mars3d.global_variables.queryDataTStartGeo = getDefaultDateTimeGeo();
+mars3d.global_variables.queryDataTStartTaxi = getDefaultDateTimeTaxi();
 mars3d.global_variables.queryDataTEnd = getDefaultDateTimeEnd();
 mars3d.global_variables.DefaultDateTimeStart = getDefaultDateTimeStart();
 
@@ -109,7 +144,20 @@
       tmpguokong.clear(true);
       getGuokongPointFromServer(tmpguokong);
       //graphiclayer.eachGraphic
-    } else if ([layer.id] == 1004 && layer.options.show) {
+    // } else if ([layer.id] == 1004 && layer.options.show) {
+    //   var tmpTaxi = map.getLayerById(1004);
+    //   tmpTaxi.clear(true);
+    //   setTaxiLayerMapClock();
+    //   for (var i = 0, len = data_list_1004.length; i < len; i++) {
+    //     getTaxiPathFromServerbySN(data_list_1004[i], tmpTaxi);
+    //   }
+    }
+  });
+}
+function taxi_reLoadLayers() {
+  var layers = map.getLayers({ layers: true });
+  layers.forEach((layer) => {
+   if ([layer.id] == 1004 && layer.options.show) {
       var tmpTaxi = map.getLayerById(1004);
       tmpTaxi.clear(true);
       setTaxiLayerMapClock();
@@ -117,9 +165,7 @@
         getTaxiPathFromServerbySN(data_list_1004[i], tmpTaxi);
       }
     }
-
   });
-
 }
 
 function refreshWidgets() {
diff --git a/js/function_1004.js b/js/function_1004.js
index 73237a9..f448def 100644
--- a/js/function_1004.js
+++ b/js/function_1004.js
@@ -46,8 +46,8 @@
 
 function setTaxiLayerMapClock() {
   map.clock.shouldAnimate = true;
-  map.clock.startTime = Cesium.JulianDate.fromDate(new Date(mars3d.global_variables.queryDataTStart));
-  map.clock.currentTime = Cesium.JulianDate.fromDate(new Date(mars3d.global_variables.queryDataTStart));
+  map.clock.startTime = Cesium.JulianDate.fromDate(new Date(mars3d.global_variables.queryDataTStartTaxi));
+  map.clock.currentTime = Cesium.JulianDate.fromDate(new Date(mars3d.global_variables.queryDataTStartTaxi));
   map.clock.stopTime = Cesium.JulianDate.fromDate(new Date(mars3d.global_variables.queryDataTEnd));
   map.clock.multiplier = 2.0;
   map.clock.clockRange = Cesium.ClockRange.LOOP_STOP;
@@ -175,7 +175,7 @@
 function getTaxiPathFromServerbySN(taxi_mn, target_layer) {
 
   $.getJSON(mars3d.global_variables.nodejs_url_predix + "dataapi/Bdata?bid=get_1004_single_path&siteid=" + taxi_mn["code"], {
-    datatime1: mars3d.global_variables.queryDataTStart,
+    datatime1: mars3d.global_variables.queryDataTStartTaxi,
     datatime2: mars3d.global_variables.queryDataTEnd
   }, (result) => {
 
diff --git a/widgetsTS/dataTime/view.html b/widgetsTS/dataTime/view.html
index 4f33b8e..f5a9275 100644
--- a/widgetsTS/dataTime/view.html
+++ b/widgetsTS/dataTime/view.html
@@ -2,6 +2,7 @@
   <span style="width: 50px;height:50px;" class="fa fa-globe input-group-addon dropdown-toggle"
     data-toggle="dropdown"><span>&nbsp;&nbsp;</span><span id="current">灏忔椂锛�</span></span>
   <input type='text' class="form-control date" id='appDate' name="appDate" style="height:50px;width:330px;display:none;"/>
+  <input type='text' class="form-control date" id='appDateMin' name="appDateMin" style="height:50px;width:330px;display:none;"/>
   <input type='text' class="form-control date" id='appDateHour' name="appDateHour" style="height:50px;width:330px;"/>
   <ul class="dropdown-menu">
     <div class="layui-form">
@@ -18,6 +19,12 @@
             <input type="text" class="layui-input" id="datatype_day" placeholder="yyyy-mm-dd">
           </div>
         </div>
+        <div class="layui-inline">
+          <div class="layui-input-inline">
+            <input type="radio" name="datatype" value="min" title="15鍒嗛挓鏁版嵁">
+            <input type="text" class="layui-input" id="datatype_min" placeholder="yyyy-mm-dd hh:ii:00">
+          </div>
+        </div>
       </div>
     </div>
   </ul>
diff --git a/widgetsTS/dataTime/widget.js b/widgetsTS/dataTime/widget.js
index ba87ba4..3dfe7ea 100644
--- a/widgetsTS/dataTime/widget.js
+++ b/widgetsTS/dataTime/widget.js
@@ -1,5 +1,29 @@
 'use script'; //寮�鍙戠幆澧冨缓璁紑鍚弗鏍兼ā寮�
 
+function getDefaultDateMinLocal() {
+  var date = new Date;
+  date.setMinutes(date.getMinutes() - 30)
+  var year = date.getFullYear(); //骞�
+  var month = date.getMonth(); //鏈�
+  var day = date.getDate(); //鏃�
+  var hours = date.getHours(); //鏃�
+  var min = date.getMinutes(); //鍒�
+  if(min >= 0 && min < 15){
+    min = 0
+  }else if(min >=15 && min < 30){
+    min = 15
+  }else if(min >=30 && min < 45){
+    min = 30
+  }else{
+    min = 45
+  }
+  return year + "-" +
+    ((month + 1) > 9 ? (month + 1) : "0" + (month + 1)) + "-" +
+    (day > 9 ? day : ("0" + day)) + " " +
+    (hours > 9 ? hours : ("0" + hours)) + ":" +
+    (min > 9 ? min : ("0" + min)) + ":00";
+}
+
 function getDefaultDateTimeLocal() {
   var date = new Date;
   date.setHours(date.getHours() - 2);
@@ -56,8 +80,7 @@
     create() {
       this.defaultDate = getDefaultDateLocal();
       this.defaultDateTime = getDefaultDateTimeLocal();
-
-    
+      this.defaultDateMin = getDefaultDateMinLocal();    
     }
 
     //姣忎釜绐楀彛鍒涘缓瀹屾垚鍚庤皟鐢�
@@ -68,6 +91,7 @@
         if (value == 'hour') {
           $('#current').text("灏忔椂锛�");
           $('#appDate').hide()
+          $('#appDateMin').hide()
           $('#appDateHour').show()
           var tmpDatetime =  $('#appDateHour').val();
           tmpDatetime = tmpDatetime.replace(/\:/g,"").replace(/-/g,"").replace(/\s+/g,"");
@@ -75,21 +99,31 @@
           mars3d.global_variables.queryDataTEnd =  $('#appDateHour').val().substring(0,14)+"15:00";
           mars3d.global_variables.DefaultDateTimeStart =  $('#appDateHour').val().substring(0,11)+"00:00:00";
           mars3d.global_variables.queryDataTStartGeo = tmpDatetime;
-        }
-        else if (value == 'day') {
+          reLoadLayers();
+          refreshWidgets();
+        }else if (value == 'day') {
           $('#current').text("澶╋細");
-          $('#appDate').show()
+          $('#appDateMin').hide()
           $('#appDateHour').hide()
+          $('#appDate').show()
           var tmpDatetime =  $('#appDate').val() + " 00:00:00";
           tmpDatetime = tmpDatetime.replace(/\:/g,"").replace(/-/g,"").replace(/\s+/g,"");
           mars3d.global_variables.queryDataTStart =  $('#appDate').val() + " 00:00:00";
           mars3d.global_variables.queryDataTEnd = $('#appDate').val()+ " 00:15:00";
           mars3d.global_variables.DefaultDateTimeStart = $('#appDate').val().substring(0,8)+"01 00:00:00";
           mars3d.global_variables.queryDataTStartGeo = tmpDatetime;
+          reLoadLayers();
+          refreshWidgets();
+        }else if(value = 'min'){ 
+          $('#current').text("15鍒嗛挓(杞﹁締)锛�");
+          $('#appDate').hide()
+          $('#appDateHour').hide()
+          $('#appDateMin').show()
+          mars3d.global_variables.queryDataTStartTaxi =   $('#appDateMin').val();
+          mars3d.global_variables.queryDataTEnd =  $('#appDateMin').val().substring(0,14) + (Number($('#appDateMin').val().substring(14,16)) + 14).toString() +":59";
+          mars3d.global_variables.DefaultDateTimeStart =  $('#appDateMin').val().substring(0,11)+"00:00:00";
+          taxi_reLoadLayers();
         }
-        mars3d.global_variables.queryDataType = value;
-        reLoadLayers();
-        refreshWidgets();
       });
 
       $("#appDate").datetimepicker({
@@ -105,12 +139,10 @@
         initialDate: new Date(),
         todayHighlight: 1  //濡傛灉涓簍rue, 楂樹寒褰撳墠鏃ユ湡
       }).on("changeDate", function () {
-
         var tmpDatetime =  $('#appDate').val() + " 00:00:00";
         tmpDatetime = tmpDatetime.replace(/\:/g,"").replace(/-/g,"").replace(/\s+/g,"");
-
         mars3d.global_variables.queryDataTStart =  $('#appDate').val() + " 00:00:00";
-        mars3d.global_variables.queryDataTEnd = $('#appDate').val()+ " 00:15:00";
+        // mars3d.global_variables.queryDataTEnd = $('#appDate').val()+ " 00:15:00";
         mars3d.global_variables.DefaultDateTimeStart = $('#appDate').val().substring(0,8)+"01 00:00:00";
         mars3d.global_variables.queryDataTStartGeo = tmpDatetime;
 
@@ -137,9 +169,8 @@
 
         var tmpDatetime =  $('#appDateHour').val();
         tmpDatetime = tmpDatetime.replace(/\:/g,"").replace(/-/g,"").replace(/\s+/g,"");
-
         mars3d.global_variables.queryDataTStart =   $('#appDateHour').val();
-        mars3d.global_variables.queryDataTEnd =  $('#appDateHour').val().substring(0,14)+"15:00";
+        // mars3d.global_variables.queryDataTEnd =  $('#appDateHour').val().substring(0,14)+"15:00";
         mars3d.global_variables.DefaultDateTimeStart =  $('#appDateHour').val().substring(0,11)+"00:00:00";
         mars3d.global_variables.queryDataTStartGeo = tmpDatetime;
 
@@ -148,7 +179,29 @@
       });
       $("#appDateHour").datetimepicker("setDate", new Date(this.defaultDateTime));
       $('#appDateHour').datetimepicker('setEndDate', new Date(this.defaultDateTime));
-      
+
+      $("#appDateMin").datetimepicker({
+        bootcssVer: 3,  //bootstrap-datetimepicker锛媌ootstrap v3锛屼絾杩欎釜鎻掍欢浣跨敤鐨勬椂鍊欙紝骞舵病鏈夊拰V3鐩稿尮閰嶏紝浠嶇劧璋冪敤鐨勬槸bootstrap V2鐨勫浘鏍� 鎶奲ootcssVer鐨勫�肩洿鎺ヨ涓�3锛屽惁鍒檇atetimepicker涓嶄細鏄剧ず鍑轰笂銆佷笅涓湀鐨勭澶�
+        format: 'yyyy-mm-dd hh:ii:00',
+        minView: 'hour',//璁剧疆鏃堕棿閫夋嫨涓哄勾鏈堟棩 鍘绘帀鍒嗙閫夋嫨
+        todayBtn: true, //濡傛灉姝ゅ�间负true 鎴� "linked"锛屽垯鍦ㄦ棩鏈熸椂闂撮�夋嫨鍣ㄧ粍浠剁殑搴曢儴鏄剧ず涓�涓� "Today" 鎸夐挳鐢ㄤ互閫夋嫨褰撳墠鏃ユ湡銆傚鏋滄槸true鐨勮瘽锛�"Today" 鎸夐挳浠呬粎灏嗚鍥捐浆鍒板綋澶╃殑鏃ユ湡锛屽鏋滄槸"linked"锛屽綋澶╂棩鏈熷皢浼氳閫変腑銆�
+        clearBtn: true,
+        language: 'zh-CN',
+        autoclose: true, //褰撻�夋嫨涓�涓棩鏈熶箣鍚庢槸鍚︾珛鍗冲叧闂鏃ユ湡鏃堕棿閫夋嫨鍣ㄣ��
+        keyboardNavigation: true, //鏄惁鍏佽閫氳繃鏂瑰悜閿敼鍙樻棩鏈熴��
+        forceParse: true, //褰撻�夋嫨鍣ㄥ叧闂殑鏃跺�欙紝鏄惁寮哄埗瑙f瀽杈撳叆妗嗕腑鐨勫�笺��
+        initialDate: new Date(),
+        todayHighlight: 1,  //濡傛灉涓簍rue, 楂樹寒褰撳墠鏃ユ湡  2022-01-04 06:30:00
+        minuteStep:15
+      }).on("changeDate", function () {
+        mars3d.global_variables.queryDataTStartTaxi =   $('#appDateMin').val();
+        console.log(mars3d.global_variables.queryDataTStartTaxi)
+        mars3d.global_variables.queryDataTEnd =  $('#appDateMin').val().substring(0,14) + (Number($('#appDateMin').val().substring(14,16)) + 14).toString() +":59";
+        mars3d.global_variables.DefaultDateTimeStart =  $('#appDateMin').val().substring(0,11)+"00:00:00";
+        taxi_reLoadLayers();
+      });
+      $("#appDateMin").datetimepicker("setDate", new Date(this.defaultDateMin));
+      $('#appDateMin').datetimepicker('setEndDate', new Date(this.defaultDateMin));
     }
 
     //婵�娲绘彃浠�
diff --git a/widgetsTS/taxiRouteReplay/widget.js b/widgetsTS/taxiRouteReplay/widget.js
index 8472b45..529ad61 100644
--- a/widgetsTS/taxiRouteReplay/widget.js
+++ b/widgetsTS/taxiRouteReplay/widget.js
@@ -155,7 +155,7 @@
     //姣忎釜绐楀彛鍒涘缓瀹屾垚鍚庤皟鐢�
     winCreateOK(opt, result) {
       this.viewWindow = result;
-      this.appDateHourStart = mars3d.global_variables.queryDataTStart;
+      this.appDateHourStart = mars3d.global_variables.queryDataTStartTaxi;
       this.appDateHourEnd = mars3d.global_variables.queryDataTEnd;
       this.nodejs_url_predix = mars3d.global_variables.nodejs_url_predix;
       this.taxi_sn = this.config.params;

--
Gitblit v1.9.1