diff --git a/ebike-maintenance/pages/home/home.vue b/ebike-maintenance/pages/home/home.vue index 006acb6..46edd1d 100644 --- a/ebike-maintenance/pages/home/home.vue +++ b/ebike-maintenance/pages/home/home.vue @@ -150,7 +150,6 @@
超出运营区域 -
@@ -325,7 +324,7 @@ value } } = e; - dd_selvalue = value; + dd_selvalue.value = value; showModelMessage("该功能暂未实现!"); } @@ -526,10 +525,6 @@ const params={ operationRegionId:arrRegionID } - // api.callMaintenanceApi("operation/list",params,"get").then(res=>{ - // console.log("5555555555555555555555555",res); - // }); - // return; map.getRegionData(arrRegionID, (res) => { const { arrData, @@ -553,25 +548,25 @@ const { arrData /* ,arrPoints, - icnt, + icnt_2, icnt_0, - icnt_2 */ + icnt_1 */ } = res; arrMakers = arrData; - const{icnt, + const{icnt_2, icnt_0, - icnt_2}=showMarker(); - q_cnt.value = icnt; + icnt_1}=showMarker(); + q_cnt.value = icnt_2; q_cnt0.value = icnt_0; - q_cnt2.value = icnt_2; + q_cnt2.value = icnt_1; mapdata = { ...mapdata, bikeData: { arrData, - icnt, + icnt_2, icnt_0, - icnt_2 + icnt_1 } }; mapData_opt[mapDataIndex] = mapdata; @@ -583,13 +578,13 @@ //地图数据 function loadMapData(data) { - const{bikeData:{arrData,icnt, + const{bikeData:{arrData,icnt_2, icnt_0, - icnt_2 }}=data; + icnt_1 }}=data; arrMakers = arrData; - q_cnt.value = icnt; + q_cnt.value = icnt_2; q_cnt0.value = icnt_0; - q_cnt2.value = icnt_2; + q_cnt2.value = icnt_1; showMarker(); loadMapBikeData(showBike.value, data); loadMapRegionData(showRegion.value, data); @@ -854,15 +849,28 @@ } function showMarker(){ - let icnt = 0; - let icnt_0 = 0; - let icnt_2 = 0; + // let icnt_2 = 0; + // let icnt_0 = 0; + // let icnt_1 = 0; + let oData={}; if(arrMakers.length==0){ orderCount.value=0; markers.value=[]; } else{ - let showCount=0; + const{lx}=selRight.value; + const maxcnt=100; + switch(lx){ + case "hd": + oData=showMarker_HD(lx,maxcnt); + break; + case "dd": + + break; + case "wx": + break; + } + /* let showCount=0; let arrPoints=[]; let ordercnt=0; const maxcnt=100; @@ -880,26 +888,117 @@ if (soc <= 20) { icnt_0++; } else if (soc <= 60) { - icnt_2++; + icnt_1++; } else { - icnt++; + icnt_2++; } - if(!(lng<=maxLng&&lng>=minLng&&lat<=maxLat&&lat>=minLat)||soc>quantityCount.value) return; - if(soc<=20) ordercnt++; + if(!(lng<=maxLng&&lng>=minLng&&lat<=maxLat&&lat>=minLat)) { + switch(lx){ + case "hd": + if(soc>quantityCount.value) return; + break; + case "dd": + + break; + case "wx": + break; + } + } + switch(lx){ + case "hd": + if(soc<=20) ordercnt++; + break; + case "dd": + + break; + case "wx": + break; + } + showCount++; - arrPoints.push(map.addMarker_Q(index, item,showCount>maxcnt)); + arrPoints.push(map.addMarker_Q(index, item,showCount>maxcnt,lx)); }); if(showCount>maxcnt){ for(let i=0;i<=maxcnt;i++){ arrPoints[i]={...arrPoints[i],joinCluster:true} } - } - orderCount.value=ordercnt; - markers.value=arrPoints; + } */ + orderCount.value=oData.ordercnt; + markers.value=oData.arrPoints; } - return {icnt,icnt_0,icnt_2}; + const {icnt_2,icnt_0,icnt_1,showCount,orderCount,arrPoints}=oData + return {icnt_2,icnt_0,icnt_1}; } + function showMarker_HD(lx,maxcnt){ + let icnt_2 = 0; + let icnt_0 = 0; + let icnt_1 = 0; + let showCount=0; + let arrPoints=[]; + let ordercnt=0; + arrMakers.map((item,index) => { + item = { + ...item, + soc: item.soc || 0 + } + const { + bikeId, + longitude:lng, + latitude:lat, + soc + } = item; + if (soc <= 20) { + icnt_0++; + } else if (soc <= 60) { + icnt_1++; + } else { + icnt_2++; + } + if(!(lng<=maxLng&&lng>=minLng&&lat<=maxLat&&lat>=minLat) ||soc>quantityCount.value) return; + if(soc<=20) ordercnt++; + showCount++; + arrPoints.push(map.addMarker_Q(index, item,showCount>maxcnt,lx)); + }); + + return {icnt_2,icnt_0,icnt_1,showCount,orderCount,arrPoints}; + } + + function showMarker_DD(lx,maxcnt){ + let icnt_0 = 0; + let icnt_1 = 0; + let icnt_2 = 0; + let showCount=0; + let arrPoints=[]; + let ordercnt=0; + arrMakers.map((item,index) => { + const { + bikeId, + longitude:lng, + latitude:lat, + inOperation, + inParking, + intervalTime + } = item; + if(inOperation) { + icnt_1++; + } + else if(inParking) { + icnt_2++; + } + else{ + return; + } + if(!(lng<=maxLng&&lng>=minLng&&lat<=maxLat&&lat>=minLat) ) return; + let cnt=dd_selvalue.value; + if(showDD_LX.value=="1") cnt=cnt*24; + if(intervalTime<=cont) ordercnt++; + showCount++; + arrPoints.push(map.addMarker_Q(index, item,showCount>maxcnt,lx)); + }); + + return {icnt_2,icnt_0,icnt_1,showCount,orderCount,arrPoints}; + } diff --git a/ebike-maintenance/utils/map.js b/ebike-maintenance/utils/map.js index 1506407..3cf5a6c 100644 --- a/ebike-maintenance/utils/map.js +++ b/ebike-maintenance/utils/map.js @@ -373,13 +373,40 @@ export function getRegionData(arrRegionID, callback) { export const getBikeData = (arrRegionID, callback) => { if (!arrRegionID || arrRegionID.length == 0) return; const arrMethods = []; - arrRegionID.map(regionId => { + const params = { + operationRegionIds: arrRegionID + } + api.callMaintenanceApi("operation/list", params, "post").then(res => { + const arrPoints = []; + const arrData = []; + let icnt = 0; + let icnt_0 = 0; + let icnt_2 = 0; + let { + code, + message, + data + } = res; + if (code != 200) { + showModelMessage(message); + } else { + if (data.length > 0) arrData.push(...data); + + } + callback({ + arrData + }); + }) + // api.callMaintenanceApi("operation/list",params,"get").then(res=>{ + // console.log("5555555555555555555555555",res); + // }); + /* arrRegionID.map(regionId => { const params = { regionId }; arrMethods.push(api.callOperateApi("ebikeRegion/getOperationBike", params, "get")); - }); - Promise.all(arrMethods).then(arrRes => { + }); */ + /* Promise.all(arrMethods).then(arrRes => { const arrPoints = []; const arrData = []; let icnt = 0; @@ -394,51 +421,30 @@ export const getBikeData = (arrRegionID, callback) => { if (code != 200) { showModelMessage(message); } else { - //data=testData(); if (data.length > 0) arrData.push(...data); - /* data.map(item => { - item = { - ...item, - soc: item.soc || 0 - } - const { - bikeId, - longitude, - latitude, - state, - soc - } = item; - const id = arrPoints.length; - if (soc <= 20) { - icnt_0++; - } else if (soc <= 60) { - icnt_2++; - } else { - icnt++; - } - arrPoints.push(addMarker_Q(id, item)); - }) */ + } }); callback({ arrData }); - }) + }) */ + } function testData() { const points = [] const centerLng = 103.969028; const centerLat = 30.632034; - const count=1000; + const count = 1000; for (let i = 0; i < count; i++) { // 在中心点附近随机生成点 const lng = centerLng + (Math.random() - 0.5) * 0.02 const lat = centerLat + (Math.random() - 0.5) * 0.02 const data = { - bikeCode:i, - bikeId:i, + bikeCode: i, + bikeId: i, longitude: lng, latitude: lat, soc: Math.floor(Math.random() * 100) @@ -449,25 +455,43 @@ function testData() { } //电量车辆点 -export function addMarker_Q(id, data,joinCluster) { +export function addMarker_Q(id, data, joinCluster, lx) { let { longitude, latitude, - soc + soc, + inOperation, + inParking } = data; - let icon = "bike_1.png"; - let clusterId = 1; - if (soc <= 20) { - icon = "bike_0.png"; - clusterId = 0; - } else if (soc <= 60) { - icon = "bike_2.png"; - clusterId = 2; + let icon = ""; + let lbContent = ""; + switch (lx) { + case "hd": + icon = "bike_1.png"; + lbContent = soc + "%"; + if (soc <= 20) { + icon = "bike_0.png"; + } else if (soc <= 60) { + icon = "bike_2.png"; + } + break; + case "dd": + icon = "bike_0.png"; + if(inOperation){ + lbContent="超区"; + } + else if(inParking){ + lbContent="违停"; + } + break; + case "wx": + break; } + const systemInfo = uni.getSystemInfoSync(); let oLabel = { - content: soc + "%", + content: lbContent, color: "#FFF", anchorY: -25, fontSize: 9,