From 416daf0fa191376828fe22dd612916e7e7a5023a Mon Sep 17 00:00:00 2001
From: xc <double72cheng@gmail.com>
Date: Thu, 29 Apr 2021 15:53:27 +0800
Subject: [PATCH] 修改精确时间 更改时间轴

---
 src/main/resources/public/css/progressTime.css           |    2 
 src/main/resources/public/monitor/history.html           |    7 ---
 src/main/resources/public/js/history/historyComponent.js |   82 ++++++++++++++++++++++++++++++-----------
 src/main/resources/public/js/jquery.progressTime.js      |   12 ++++-
 src/main/resources/public/css/jeLocalDate.css            |    6 +-
 5 files changed, 73 insertions(+), 36 deletions(-)

diff --git a/src/main/resources/public/css/jeLocalDate.css b/src/main/resources/public/css/jeLocalDate.css
index 3b5f540..e5deaa3 100644
--- a/src/main/resources/public/css/jeLocalDate.css
+++ b/src/main/resources/public/css/jeLocalDate.css
@@ -1,9 +1,9 @@
 .jeitem {
     width: 200px;
-    height: 200px;
+    height: 300px;
     position: absolute;
-    left: 1120px;
-    top: 1040px;
+    left: 1130px;
+    top: 900px;
     bottom: 680px;
     right: 0;
     margin: auto;
diff --git a/src/main/resources/public/css/progressTime.css b/src/main/resources/public/css/progressTime.css
index af7f45a..f3e094f 100644
--- a/src/main/resources/public/css/progressTime.css
+++ b/src/main/resources/public/css/progressTime.css
@@ -16,7 +16,7 @@
 
 #progressTime {
     height: 50px;
-    width: 80%;
+    width: 50%;
     border: 1px red solid;
     margin: 148px auto 0 auto;
     display: flex;
diff --git a/src/main/resources/public/js/history/historyComponent.js b/src/main/resources/public/js/history/historyComponent.js
index 712e79d..e0a310e 100755
--- a/src/main/resources/public/js/history/historyComponent.js
+++ b/src/main/resources/public/js/history/historyComponent.js
@@ -9,27 +9,27 @@
             return;
         }
         this.elem = opt.elem;
-        //appendContent(this.elem);
+        appendContent(this.elem);
 
         let stream_path;
         let cameraId = opt.cameraId;
 
         let container = document.getElementById("container");
+        let h5lc = new Jessibuca({container, decoder: "../js/jessibuca/ff.js", videoBuffer: 0});
 
-        let h5lc = new Jessibuca({container, decoder: "js/jessibuca/ff.js", videoBuffer: 0});
-
+        //创建时间轴
+        let currentTimer;
         let hourTimestamp = 3600 * 1000;
         let dayTimestamp = hourTimestamp * 24;
-        let currentTimer;
 
-        //时间轴
         $("#progressTime").ProgressTime({
             container: "progressTime",
-            startTime: new Date(formatDate(new Date(new Date().getTime() - dayTimestamp * 3), "YYYY/MM/DD 00:00:00")),
+            startTime: new Date(formatDate(new Date(new Date().getTime() - dayTimestamp * 1), "YYYY/MM/DD 00:00:00")),
             endTime: new Date(formatDate(new Date(), "YYYY/MM/DD 00:00:00")),
-            currentTime: new Date(formatDate(new Date(new Date().getTime() - dayTimestamp * 2), "YYYY/MM/DD 12:00:00")),
+            currentTime: new Date(formatDate(new Date(new Date().getTime() - dayTimestamp * 1.5), "YYYY/MM/DD 12:00:00")),
             interval: 300,
             delay: 2000,
+            hoursInterval: 1,//时间间隔
             isNow: false, // 是否显示右侧回到当前时间
             toPlay: false, // 渲染是否完成
             animateFinish: false, // 动画是否完成
@@ -46,16 +46,62 @@
             }
         });
 
+        let progressTimelayer = window.progressTime;
+
+        let beginDateStr=new Date(formatDate(new Date(new Date().getTime() - dayTimestamp * 1), "YYYY/MM/DD 00:00:00"));
+        let endDateStr= new Date(formatDate(new Date(), "YYYY/MM/DD 00:00:00"));
+
+        //创建精确时间选择器
+        jeDate("#currentTimer",{
+            festival:false,                     //是否显示农历节日
+            minDate:"1900-01-01",              //最小日期
+            maxDate:"2099-12-31",              //最大日期
+            method:{
+                choose:function (params) {
+                }
+            },
+            donefun:function(obj) {
+                currentTimer=obj.val;
+                let flag = compareTime(beginDateStr,endDateStr,currentTimer);
+                if (flag) {
+                    //只有在指定时间才刷新指针位置
+                    progressTimelayer.setTime({
+                        time:currentTimer,//指针显示时间
+                        timer:currentTimer,//指针位置计算时间
+                        originalEvent:{
+                            layerX:undefined,
+                        },
+                        type:"",
+                    });
+                    progressTimelayer.resize();
+                }
+            },
+            format: "YYYY-MM-DD hh:mm:ss"
+        });
+
+        //判断时间是否属于区间内
+        function compareTime(begin,end,timer){
+            var date1 = Date.parse(new Date(begin));
+            var date2 = Date.parse(new Date(end));
+            var time = Date.parse(new Date(timer));
+            if (date1<time&&date2>time) {
+                return true;
+            };
+            return false;
+        }
+
         //播放
         $(".progressTime-left-b-start").on("click", function () {
             if (opt.rtspUrl){
                 let rtspUrl = opt.rtspUrl;
                 historyComponent.playVideoRTSP(rtspUrl,currentTimer,function (result) {
                     h5lc.play(result.jessicaURL)
+                    stream_path=result.streamPath;
                 });
             }else {
                 historyComponent.playVideo(cameraId,currentTimer,function (result) {
                     h5lc.play(result.jessicaURL)
+                    stream_path=result.streamPath;
                 });
             }
         });
@@ -73,8 +119,13 @@
 
     //文本添加
     function appendContent(element) {
-        let _content = "<div class=\"player-wrapper\" id=\"container\"></div>\n" +
-            "<div id=\"progressTime\"></div>";
+        let _content = "    <div class=\"player-wrapper\" id=\"container\"></div>\n" +
+            "    <div id=\"progressTime\"></div>\n" +
+            "    <div class=\"jeitem\">\n" +
+            "        <label class=\"jelabel\">精准时间查找</label>\n" +
+            "        <div class=\"jeinpbox\"><input type=\"text\" class=\"jeinput\" id=\"currentTimer\" placeholder=\"选择时间\">\n" +
+            "        </div>\n" +
+            "    </div>";
         element.innerHTML = _content;
     }
 
@@ -120,19 +171,6 @@
         this.closeVideo(this.stream_path);
     };
 
-
-    //精确时间选择器
-    jeDate("#currentTimer",{
-        festival:false,                     //是否显示农历节日
-        minDate:"1900-01-01",              //最小日期
-        maxDate:"2099-12-31",              //最大日期
-        method:{
-            choose:function (params) {
-
-            }
-        },
-        format: "YYYY-MM-DD hh:mm:ss"
-    });
 
     window.HistoryComponent = HistoryComponent;
 
diff --git a/src/main/resources/public/js/jquery.progressTime.js b/src/main/resources/public/js/jquery.progressTime.js
index 4143011..b5e9d08 100644
--- a/src/main/resources/public/js/jquery.progressTime.js
+++ b/src/main/resources/public/js/jquery.progressTime.js
@@ -162,10 +162,16 @@
         typeof this.options.callback === "function" && this.options.callback(config);
     }
     ProgressTime.prototype.setTime = function (e) {
-        var layerX = e && e.originalEvent.layerX;
-        var type = e && e.type;
+        var layerX= e && e.originalEvent.layerX;
+        var type=e && e.type;;
+        var tooltipTimestamp;
+        if (e&&e.timer){
+            let timer = new Date(formatDate(new Date(e.timer), "YYYY/MM/DD HH:00:00"));
+            tooltipTimestamp=timer;
+        }else {
+            tooltipTimestamp = this.currentTimeTemp || this.currentTime.getTime(); // 返回当前的时间的时间戳
+        }
         var hoursWidth = $("." + this.id + "-center-t-ul li")[0].getBoundingClientRect().width / 24; // 计算每个小时所占的宽度
-        var tooltipTimestamp = this.currentTimeTemp || this.currentTime.getTime(); // 返回当前的时间的时间戳
         var num = Math.floor((tooltipTimestamp - this.startTime.getTime()) / hourTimestamp); // 计算出多少小时
         num = layerX !== undefined ? Math.round(layerX / hoursWidth) : num;
         var progressWidth = num * hoursWidth; // 计算出时间条的长度
diff --git a/src/main/resources/public/monitor/history.html b/src/main/resources/public/monitor/history.html
index 55f631a..2ffc639 100755
--- a/src/main/resources/public/monitor/history.html
+++ b/src/main/resources/public/monitor/history.html
@@ -16,13 +16,6 @@
 
 <!--jessiebuca播放器 录像 -->
 <div id="jessibucaContainerHistory">
-    <div class="player-wrapper" id="container"></div>
-    <div id="progressTime"></div>
-    <div class="jeitem">
-        <label class="jelabel">时间选择</label>
-        <div class="jeinpbox"><input type="text" class="jeinput" id="currentTimer" placeholder="YYYY-MM-DD hh:mm:ss">
-        </div>
-    </div>
 </div>
 
 

--
Gitblit v1.9.1