git před 6 roky
rodič
revize
701d9b19ea

binární
images/bicycle-2.png


binární
images/bicycle.png


binární
images/gelocation-2.png


binární
images/location.png


binární
images/logo-temp.png


binární
images/logo2.png


+ 1 - 1
index.html

@@ -18,7 +18,7 @@
         <link rel="stylesheet" type="text/css" href="css/lrmui.min.css">
         <link rel="stylesheet" type="text/css" href="css/index.css">
 
-        <title>力软敏捷框架</title>
+        <title>行车卫士</title>
     </head>
     <body>
         <div class="lr-tabbar" style="display:none;"></div>

+ 2 - 2
pages/amap/amap.css

@@ -312,7 +312,7 @@ hr{
     align-items: center;
     width: 18px;
     height: 18px;
-    background: #09f;
+    background: #a5a5a5;
     border-radius: 50%;
 }
 .medium-circle{
@@ -327,7 +327,7 @@ hr{
 .small-circle{
     width: 10px;
     height: 10px;
-    background: #09f;
+    background: #a5a5a5;
     border-radius: 50%;
 }
 .base-circle{

+ 3 - 1
pages/amap/amap.html

@@ -61,7 +61,9 @@
                 
                     <!-- 底部面板 -->
                     <div id="device-info-panel">
-                        <div style="width:50px;height:30px;background: #fff">Logo</div>
+                        <div style="width:50px;height:30px;background: #fff">
+                            <img style="max-width: 100%!important;max-height: 100%!important;width: auto;height: auto;" src="./images/logo-temp.png" alt="">
+                        </div>
                         <p id="on-off-online"></p>
                         <div class="delimite-line"></div>
                         <p class="panel-right-content">GPS电量<span id="battery"></span></p>

+ 109 - 49
pages/amap/amap.js

@@ -1,4 +1,7 @@
 (function () {
+    var infoWindow;
+    var lnglat;
+    var mainMap;
     var page = {
         init: function ($page) {
 			//初始化顶部导航栏
@@ -39,18 +42,22 @@
 				*/
 				// 点击报警
 				$page.parent().find('.alarm').on('tap', function () {
-					learun.nav.go({ path: 'baojingindex', title: '110丢失报警', isBack: true, isHead: true,type:'right' });
+                    learun.nav.go({ path: 'baojingindex', title: '110丢失报警', isBack: true, isHead: true,type:'right' });
+                    if(infoWindow){infoWindow.close( );}
 				});
 				// 点击图表
 				$page.parent().find('.chart').on('tap', function () {
-					learun.nav.go({ path: 'tongji', title: '统计', isBack: true, isHead: true,type:'right' });
+                    learun.nav.go({ path: 'tongji', title: '统计', isBack: true, isHead: true,type:'right' });
+                    if(infoWindow){infoWindow.close( );}
 				});
 				// 点击消息图标
 				$page.parent().find('.message').on('tap', function () {
-					learun.nav.go({ path: 'baojinginfo', title: '消息', isBack: true, isHead: true,type:'right' });
+                    learun.nav.go({ path: 'baojinginfo', title: '消息', isBack: true, isHead: true,type:'right' });
+                    if(infoWindow){infoWindow.close( );}
 				});
 				$page.parent().find('.my').on('tap', function () {
-					learun.nav.go({ path: 'my', title: '我的', isBack: true, isHead: true,type:'right' });
+                    learun.nav.go({ path: 'my', title: '我的', isBack: true, isHead: true,type:'right' });
+                    if(infoWindow){infoWindow.close( );}
 				});
 				// 注册扫描
 				$page.parent().find('.scanner').on('tap', function () {
@@ -77,13 +84,20 @@
 					// 	  'Speed: '             + position.coords.speed             + '\n' +
                     // 	  'Timestamp: '         + position.timestamp                + '\n');
                     var lnglat = new AMap.LngLat(position.coords.longitude, position.coords.latitude);
+                    startEnd.start = lnglat;
                     userMarker.setPosition(lnglat);
                     userMarker.setMap(mainMap);
                     if(locationFlag){
-                        mainMap.setFitView();
+                        if(latlngSign){
+                            mainMap.setFitView();
+                        }else{
+                            mainMap.setFitView([userMarker]);
+                        }
                         locationFlag = false;
                     }else{
-                        mainMap.setFitView([vehicleMarker]);
+                        if(latlngSign){
+                            mainMap.setFitView([vehicleMarker]);
+                        }
                         locationFlag = true;
                     }
 				};
@@ -91,7 +105,7 @@
 				// onError Callback receives a PositionError object
 				//
 				function onError(error) {
-					alert('code: '    + error.code    + '\n' +
+					console.log('code: '    + error.code    + '\n' +
 						  'message: ' + error.message + '\n');
 				}
 				navigator.geolocation.getCurrentPosition(onSuccess, onError);
@@ -134,22 +148,29 @@
 			init_nav();
 
             //地图
-            var startEnd = {start:new AMap.LngLat(113.951104,22.542902), end:new AMap.LngLat(113.955439,22.532956)};
 
+            var startEnd = {start: null, end: null};
+            
             var fencePageData = null;
             var routePageData = null;
 
-            // var userIcon = new AMap.Icon({size: new AMap.Size(50,50), image:'./images/gelocation.png'})
-            var userMarker = new AMap.Marker({icon: "./images/gelocation-2.png", offset:new AMap.Pixel(-16, -28)});
-            
+            var userIcon = new AMap.Icon({size: new AMap.Size(23,23), image:'./images/location.png', imageSize:new AMap.Size(23,23)})
+            var userMarker = new AMap.Marker({icon: userIcon, offset:new AMap.Pixel(-16, -28)});
+
+            get_mobile_gps_location();
             //车辆信息初始化
             var timeInterval = 10000;
             //地图初始化
-            var mainMap = new AMap.Map('amapcontainer');
+            mainMap = new AMap.Map('amapcontainer', {
+                center: [120.210649,30.246071],
+                zoom: 15
+            });
 			mainMap.on('complete', function(){
+                get_mobile_gps_location()
 				learun.layer.loading(false);
-			});
-            var vehicleMarker = new AMap.Marker({icon:'./images/bicycle.png', offset:new AMap.Pixel(0, -51)});
+            });
+            var bicycleIcon = new AMap.Icon({size: new AMap.Size(32,32), image:'./images/bicycle-2.png', imageSize:new AMap.Size(32,32)})
+            var vehicleMarker = new AMap.Marker({icon:bicycleIcon, offset:new AMap.Pixel(0, -51)});
             var circle = new AMap.Circle({
                 radius: 0,
                 center: [0, 0],
@@ -169,6 +190,7 @@
             circle.setMap(mainMap);
 
             var overlayData = {map:mainMap, vehicle:vehicleMarker, circle:circle};
+            var latlngSign = null;
 
             var getVehicleData = function(t, first=false){
                 var deviceNumber = userinfo.baseinfo['deviceNumber'];
@@ -180,34 +202,58 @@
                         learun.layer.warning('无地图数据,请检测网络或联系管理员!', function () { }, '提示', '关闭');
                         return;
                     }
-                    var vehiclePt = new AMap.LngLat(+mapData.vehicleLocation.longitude, +mapData.vehicleLocation.latitude)
+                    latlngSign = mapData.vehicleLocation.longitude;
+                    if(!latlngSign){
+                        first = false;    
+                    }else{
+                        var vehiclePt = new AMap.LngLat(+mapData.vehicleLocation.longitude, +mapData.vehicleLocation.latitude);
+                        startEnd.end = vehiclePt;
+                        t.vehicle.setPosition(vehiclePt);
+                        t.vehicle.setMap(t.map);
+                    }
+
+                    console.log(startEnd)
                     if(first){
                         t.map.setZoomAndCenter(15,vehiclePt);
                     }
                     
                     $page.find('#battery').html(mapData.battery+'%');
                     
-                    t.vehicle.setPosition(vehiclePt);
-                    t.vehicle.setMap(t.map);
+
                     //在线状态
                     if(mapData.onlineTime){
-                        var interval = new Date() - mapData.onlineTime;;
-                        if(interval < 24*3600){
-                            $('#on-off-online').text('在线中');
-                            $('#on-off-online').css({color:"green"})
-                        }else{
-                            var day = parseInt(interval/24/3600);
-                            $('#on-off-online').text('离线'+day+'天');
+                        if(parseInt(mapData.onlineTime) < 0 ){
+                            console.log(parseInt(mapData.onlineTime)+'-在线时间');
+                            $('#on-off-online').text('未在线过');
                             $('#on-off-online').css({color:"gray"})
+                        }else{
+                            var routeTime = new Date(mapData.onlineTime*1000);
+                            routePageData = {speed: mapData.speed == null ? 0 : mapData.speed, lastTime:routeTime.Format("yyyy-MM-dd hh:mm:ss")}
+                            var interval = parseInt(new Date().getTime()/1000) - mapData.onlineTime;
+                            if(interval < 24*3600){
+                                $('#on-off-online').text('在线中');
+                                $('#on-off-online').css({color:"green"})
+                            }else{
+                                var day = parseInt(interval/24/3600);
+                                $('#on-off-online').text('离线'+day+'天');
+                                $('#on-off-online').css({color:"gray"})
+
+                                console.log(mapData.onlineTime);
+                                console.log(new Date().getTime());
+                            }
                         }
+
                     }
 
-                    var fence = JSON.parse(mapData.fenceShapeInfo);
-                    if(fence.type == 'circle'){
-                        t.circle.setCenter(new AMap.LngLat(fence.data.center.lng, fence.data.center.lat));
-                        t.circle.setRadius(fence.data.radius);
-                    
-                        t.circle.setMap(t.map);                 
+                    var fence = mapData.fenceShapeInfo;
+                    if(fence){
+                        fence = JSON.parse(fence);
+                        if(fence.type == 'circle'){
+                            t.circle.setCenter(new AMap.LngLat(fence.data.center.lng, fence.data.center.lat));
+                            t.circle.setRadius(fence.data.radius);
+                        
+                            t.circle.setMap(t.map);
+                        }                 
                     }
 
                     if(mapData.lockStatus == 1){
@@ -216,9 +262,8 @@
                     }
                     
                     fencePageData = {fenceInfo: fence, defaultLocation: vehiclePt, fenceStatus:mapData.fenceAlarmStatus};
-                    var routeTime = new Date(mapData.onlineTime);
-                    
-                    routePageData = {speed:mapData.speed, lastTime:routeTime.Format("yyyy-MM-dd hh:mm:ss")}
+
+
                 });
          
             };
@@ -226,10 +271,7 @@
 
             //定位
             $page.find('#user-location').on('tap', function(){
-                get_mobile_gps_location(function(position){
-                    // position.coords.latitude
-
-                });
+                get_mobile_gps_location();
             });
             
             //锁车
@@ -237,7 +279,7 @@
                 var lockStatus = $page.find('#lockStatus');
 
                 var postData = {
-                    deviceNumber:'AAAAAA000003',
+                    deviceNumber: userinfo.baseinfo.deviceNumber,
                     lockStatus: lockStatus.hasClass('icon-jiesuo') ? 1 : 0
                 }
 
@@ -269,9 +311,11 @@
             AMapUI.defineTpl("ui/overlay/SimpleInfoWindow/tpl/container.html", [], function() {
                 return document.getElementById('my-infowin-tpl').innerHTML;
             });
-        
+            console.log('ccc')
             AMapUI.loadUI(['overlay/SimpleInfoWindow'], function(SimpleInfoWindow) {
-                var lnglat = vehicleMarker.getPosition();
+                
+                lnglat = vehicleMarker.getPosition();
+                console.log(lnglat+'vehicle-location');
                 var address = '坐标未解析成功';
 
 
@@ -289,18 +333,23 @@
                         address = result.regeocode.formattedAddress;
 
                         if(!infoWindow){
-                            var infoWindow = new SimpleInfoWindow({
+                                infoWindow = new SimpleInfoWindow({
                                 infoBody: '<span>'+address+'</span>',
                                 //基点指向marker的头部位置
                                 offset: new AMap.Pixel(50, -64)
                             });
+                            console.log('aaa')
                         }
+                        console.log('vvv')
                         infoWindow.open(mainMap, lnglat);
                         infoWindow.get$Container().on('click', function(){
                             learun.nav.go({ path: 'amap/navigation', title: '导航', isBack: true, isHead: true, param: startEnd });
+                            if(infoWindow){infoWindow.close( );}
                         });
 
-                    }else{learun.layer.toast(JSON.stringify(result))}
+                    }else{
+                        // learun.layer.toast(JSON.stringify(result));
+                    }
                 });
                 
             });
@@ -356,26 +405,37 @@
             //轨迹页跳转
             $page.find('#route-play').on('tap', function () {
                 learun.nav.go({ path: 'amap/route', title: '轨迹回放', isBack: true, isHead: true, param: routePageData });
+                if(infoWindow){infoWindow.close( );}
             });
 
             //围栏页跳转
             $page.find('#electric-fence').on('tap', function () {
                 learun.nav.go({ path: 'amap/fence', title: '围栏设置', isBack: true, isHead: true, param: fencePageData });
+                if(infoWindow){infoWindow.close( );}
             });
 
             //保险页跳转
             $page.find('.insurance-img').on('tap', function () {
                 learun.nav.go({ path: 'insure', title: '保险理赔', isBack: true, isHead: true, param: 'test' });
+                if(infoWindow){infoWindow.close( );}
             });
             //定时刷新数据
             
-            var mainPageInterval = setInterval(function(){
-                if($('.f-page').length > 1){
-                    clearTimeout(mainPageInterval);
-                }
-                console.log('dd');
-                getVehicleData(overlayData);
-            }, timeInterval);
+            // var mainPageInterval = setInterval(function(){
+            //     if($('.f-page').length > 1){
+            //         clearTimeout(mainPageInterval);
+            //     }
+            //     console.log('dd');
+            //     getVehicleData(overlayData);
+            // }, timeInterval);
+            
+        },
+
+
+        reload: function ($page, pageinfo) {
+            if(infoWindow){
+                infoWindow.open(mainMap, lnglat);
+            }
             
         }
     };

+ 15 - 10
pages/amap/fence/fence.js

@@ -9,31 +9,34 @@
 
             // //地图初始化
             var map = new AMap.Map("fence-map", {
-                center: [113.955439, 22.542956],//地图中心点
+                center: [120.210649,30.246071],//地图中心点
                 zoom: 12 //地图显示的缩放级别
             });
             learun.layer.loading(true, "加载数据中");
 
 
-
             map.on('complete', function(){
+                
                 learun.layer.loading(false);
 			});
 
 
             var fenceInfo = null;
-            var defaultPt = [113.955439, 22.542956];
+            var defaultPt = [120.210649,30.246071];
+            var storeCenter = null;
             var ableStatus = null;
             var radius = null;
-
+            console.log(param)
             if(param){
-                fenceInfo = param.fenceInfo;
-                defaultPt = param.defaultLocation;
+                fenceInfo = param.fenceInfo.data;
                 ableStatus = param.fenceStatus;
-                radius = fenceInfo.data.radius;
-                console.log(param)
+                if(fenceInfo){
+                    radius = fenceInfo.radius;
+                    storeCenter = [fenceInfo.center.lng, fenceInfo.center.lat]
+                }
+                
             }
-            
+            console.log(storeCenter)
 
 
             if(ableStatus !== '0'){
@@ -41,7 +44,7 @@
                 $('#fence-switch').addClass('f-active');
             }
             var circleFence = new AMap.Circle({
-                center: defaultPt,
+                center: storeCenter || defaultPt,
                 radius: radius || 100, 
                 strokeOpacity: 0,
                 strokeWeight: 0,
@@ -51,6 +54,8 @@
                 zIndex: 50,
             });
 
+            console.log(defaultPt)
+
             circleFence.setMap(map)
             map.setFitView(circleFence);
 

+ 1 - 1
pages/amap/navigation/navigation.js

@@ -20,7 +20,7 @@
                 
 			});
 
-            var userMarker = new AMap.Marker({icon: "./images/gelocation-2.png", offset:new AMap.Pixel(-16, -16)});
+            var userMarker = new AMap.Marker({icon: "./images/location.png", offset:new AMap.Pixel(-16, -16)});
 
             //骑行导航
            var riding = new AMap.Riding({

+ 1 - 30
pages/amap/route/route.html

@@ -2,57 +2,28 @@
     <div id="route-map" class="amap-route-container">
     </div>
     <div class="route-content">
-            <!-- 内容占位 -->
-            <div style="flex: 1 0 auto"></div>
-            <!-- 日期选择面板 -->
-            <!-- <div class="widthset lr-form-container">
-                <div class="bottom-panel">
-                    <div class="lr-form-row">
-                        <label>自定义</label>
-                        <div id="date2"></div>
-                    </div>
-
-                    <div style="padding-left: 0;" class="panel-bottom-btn lr-form-row">
-                        <button type="button" class="lr-btn">取消</button>
-                        <button type="button" class="lr-btn-primary">确认</button>
-                    </div>
-                </div>  
-            </div> -->
             <!-- 播放面板 -->
             <div class="outcase">
                 <div class="route-play-panel">
                     <!-- 信息区 -->
                     <div class="text-area">
-
-
                         <div class="test">
-                            <p>1234567891012</p>
-                            
+                            <p id="route-devicenumber"></p>
                             <div class="time-speed">
                                 <span id="date-time">时间:0000-00-00 00:00:00</span>
                                 <span id="vehicle-speed">速度:0.00km/h</span>
                             </div>
-
-                            <!-- <div class="address-line">
-                                <span>地址:</span>
-                                <p>浙江省杭州市滨江区和瑞科技园S2地下车库</p>
-                            </div> -->
-
                         </div>
-
                         <div class="route-reset">
                             <span class="iconfont icon-reset"></span>
                             <p>重置</p>
                         </div>
 
                     </div>
-
-
                     <!-- 分割(后续可能进度条替代) -->
                     <div class="delimite-route-line"></div>
                     <!-- 控制区 -->
                     <div class="button-area">
-
                         <div class="speed-set">
                             <span id="speed-icon" class="iconfont icon-beisu1"></span>
                             <p class="speed-level">慢速</p>

+ 8 - 4
pages/amap/route/route.js

@@ -4,9 +4,10 @@
             //页面初始化
 
            learun.layer.loading(true, "加载数据中");
-
+           var userinfo = learun.storage.get('userinfo');
+            $('#route-devicenumber').text(userinfo.baseinfo.deviceNumber);
             $('#date-time').text('时间:'+param.lastTime);
-            $('#vehicle-speed').text('速度:'+param.speed+'km/h')
+            $('#vehicle-speed').text('速度:'+param.speed+' km/h')
 			
             //播放控制相关事件清除
             function removeEvents(){
@@ -193,6 +194,9 @@
                     var presentIndex = navg0.getCursor().idx;
                     var time = pathData[presentIndex].time;
                     var speed = pathData[presentIndex].speed;
+                    if(!speed){
+                        speed = 0;
+                    }
                     $('#date-time').text('时间:'+time);
                     $('#vehicle-speed').text('速度:'+speed+'km/h');
                 });
@@ -228,7 +232,7 @@
 
                     var post_data = {
                         "date":date,
-                        "deviceNumber":'868500028325363'
+                        "deviceNumber": userinfo.baseinfo.deviceNumber
                     }
                     var geocoder = null;
                     learun.httppost(config.webapi+'?s=api/get_gps_route',post_data,function(res){
@@ -264,7 +268,7 @@
                 var nowDate = new Date().Format("yyyy-MM-dd");
                 var post_data = {
                     "date": nowDate,
-                    "deviceNumber":'6789012345'
+                    "deviceNumber": userinfo.baseinfo.deviceNumber
                 }
                 learun.httppost(config.webapi+'?s=api/get_gps_route',post_data,function(res){
                     if(!res.success){