From 91bbbcf08cb4959d2a9b9a530ed736779d5c214c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=B0=8F=E5=B0=8F?= <736883394@qq.com>
Date: Thu, 5 Jun 2025 14:49:31 +0800
Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E5=BA=A6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
ebike-maintenance/pages/home/home.vue | 161 +++++++++++++++++++++-----
ebike-maintenance/utils/map.js | 106 ++++++++++-------
2 files changed, 195 insertions(+), 72 deletions(-)
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,