From e184f67a2bf120c12775a8b37d0e9c58735036e8 Mon Sep 17 00:00:00 2001
From: xc <double72cheng@gmail.com>
Date: Thu, 29 Apr 2021 16:42:19 +0800
Subject: [PATCH] 修改精确时间 更改时间轴

---
 src/main/resources/public/js/history/historyComponent.js |   89 ++++++++++++++++++++++++++++++++++++--------
 1 files changed, 72 insertions(+), 17 deletions(-)

diff --git a/src/main/resources/public/js/history/historyComponent.js b/src/main/resources/public/js/history/historyComponent.js
index 6776c09..d03ad5a 100755
--- a/src/main/resources/public/js/history/historyComponent.js
+++ b/src/main/resources/public/js/history/historyComponent.js
@@ -15,27 +15,29 @@
         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, // 动画是否完成
             callback: function (config) {
                 console.log(config);
                 currentTimer = config.time;
+                //刷新精确时间输入框
+                $("#currentTimer").val(undefined);
             },
             animateCallback: function (config) {
                 // 假如动画完成之后请求数据需要两秒
@@ -46,16 +48,63 @@
             }
         });
 
+        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){
+            if (opt.rtspUrl) {
                 let rtspUrl = opt.rtspUrl;
-                historyComponent.playVideoRTSP(rtspUrl,currentTimer,function (result) {
+                historyComponent.playVideoRTSP(rtspUrl, currentTimer, function (result) {
                     h5lc.play(result.jessicaURL)
+                    stream_path = result.streamPath;
                 });
-            }else {
-                historyComponent.playVideo(cameraId,currentTimer,function (result) {
+            } else {
+                historyComponent.playVideo(cameraId, currentTimer, function (result) {
                     h5lc.play(result.jessicaURL)
+                    stream_path = result.streamPath;
                 });
             }
         });
@@ -73,16 +122,21 @@
 
     //文本添加
     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;
     }
 
     //播放 - 针对摄像头id
-    HistoryComponent.prototype.playVideo = function (video_id,starttime, callback) {
+    HistoryComponent.prototype.playVideo = function (video_id, starttime, callback) {
         $.ajax({
             type: "get",
-            url: "../../webapi/media/historical?param=" + video_id+ "&startTime=" + starttime+"&endTime=",
+            url: "../../monica/history?param=" + video_id + "&startTime=" + starttime + "&endTime=",
             timeout: 5000,
             async: false,
             success: function (result) {
@@ -91,10 +145,10 @@
         });
     };
     //播放 - 针对rtsp
-    HistoryComponent.prototype.playVideoRTSP = function (rtspURL,starttime, callback) {
+    HistoryComponent.prototype.playVideoRTSP = function (rtspURL, starttime, callback) {
         $.ajax({
             type: "get",
-            url: "../../webapi/media/rtsp/historical?param=" + rtspURL+ "&startTime=" + starttime+"&endTime=",
+            url: "../../monica/rtsp/history?param=" + rtspURL + "&startTime=" + starttime + "&endTime=",
             timeout: 5000,
             async: false,
             success: function (result) {
@@ -108,7 +162,7 @@
         if (streamPath && typeof streamPath === "string") {
             $.ajax({
                 type: "get",
-                url: "../../webapi/media/stop?param=" + streamPath,
+                url: "../../monica/stop?param=" + streamPath,
                 async: false,
                 success: function (result) {
                 }
@@ -120,6 +174,7 @@
         this.closeVideo(this.stream_path);
     };
 
+
     window.HistoryComponent = HistoryComponent;
 
 })()

--
Gitblit v1.9.1