From 96a17e7b2024d6de8be0afba53591e9311017cda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E5=B0=8F?= <736883394@qq.com> Date: Tue, 13 May 2025 16:05:03 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AB=99=E7=82=B9=E5=9C=B0=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ebike-maintenance/pages/map/map-bikesite.css | 40 +++++ ebike-maintenance/pages/map/map-bikesite.vue | 169 +++++++++++++------ ebike-maintenance/pages/mine/mine.vue | 6 +- 3 files changed, 157 insertions(+), 58 deletions(-) diff --git a/ebike-maintenance/pages/map/map-bikesite.css b/ebike-maintenance/pages/map/map-bikesite.css index 203976b..972eebc 100644 --- a/ebike-maintenance/pages/map/map-bikesite.css +++ b/ebike-maintenance/pages/map/map-bikesite.css @@ -42,4 +42,44 @@ background: white; width: 100vw; padding: 10px; + border-radius: 15px; +} + +.divClose { + position: absolute; + right: 3px; + top: -10px; +} + +.divName { + display: flex; + font-size: 16px; + font-weight: bold; + line-height: 20px; + margin-top: 15px; +} + +.divAdrress { + margin-top: 5px; + font-size: 12px; + font-weight: 300; +} + +.divCountRow { + display: flex; + justify-content: space-between; + margin-bottom: 10px; + text-align: center; + margin-top: 10px; +} + +.divCountRow .divCount { + font-size: 20px; + font-weight: bold; + +} + +.divCountRow .divTitle { + font-size: 14px; + font-weight: 300; } \ No newline at end of file diff --git a/ebike-maintenance/pages/map/map-bikesite.vue b/ebike-maintenance/pages/map/map-bikesite.vue index 65dc183..8c62dc5 100644 --- a/ebike-maintenance/pages/map/map-bikesite.vue +++ b/ebike-maintenance/pages/map/map-bikesite.vue @@ -2,7 +2,7 @@
+ :polyline="polyline" :scale="scale" @tap="mapTap" @poitap="mapTap" @markertap="markerTap" />
@@ -56,32 +56,40 @@
完成绘制
-
-
站点信息
-
{{siteInfo.name}}
-
{{siteInfo.address}}
-
+
+
+ +
+
+ +
+ +
+
+
{{siteInfo.address}}
+
-
+
{{siteInfo.zdrl}}
-
+
站点容量
-
+
{{siteInfo.sssl}}
-
+
实时数量
-
- {{siteInfo.zdrl-siteInfo.sssl}} +
+ {{siteInfo.xdd>0?'+'+siteInfo.xdd:siteInfo.xdd}}
-
+
需调度
@@ -129,8 +137,8 @@ let drawPoint = []; let areaData = {}; let selArea = null; //选中区域 - let regionData = {}; - + let siteData = {}; + let showRegion = ref(false); const iconsize = 16; const iconcolor = "#6f7777"; @@ -156,15 +164,18 @@ const height = ref("100vh"); const opentype = ref("add"); //打开类型 let editId = ""; //编辑ID - - const siteInfo=ref({ - id:"", + + const showSiteInfo = ref(false); + const siteInfo = ref({ + id: "", name: "", address: "", - zdrl:0, - sssl:0 + zdrl: 0, + sssl: 0, + xdd:0 }) + //缩放 function onZoom(type) { const i = 10; @@ -214,60 +225,100 @@ } drawPoint = []; } + + function closeSiteInfo(){ + showSiteInfo.value=false; + } + + function markerTap(e) { + const { + markerId + } = e.detail; + const index = markerId; + const { + arrCirclesData, + arrPolygonsData + } = siteData; + const len = arrCirclesData.length; + let data = null; + if (index <= len - 1) { + data = arrCirclesData[markerId]; + } else { + data = arrPolygonsData[markerId - len]; + } + const { + siteName, + siteRegionId, + siteAdress, + allowedParkingNum + } = data; + const site = { + id: siteRegionId, + name: siteName, + address: siteAdress, + zdrl: allowedParkingNum, + sssl: 0, + xdd:allowedParkingNum-0 + } + siteInfo.value=site; + showSiteInfo.value = true; + } function mapTap(e) { - if (!showDraw.value) return; const { detail: { latitude, longitude } } = e; + if (!showDraw.value) return; let inside = false; if (!selArea) { const { arrCirclesData, arrPolygonsData } = areaData; - for(let i=0;i 0) { @@ -353,6 +404,13 @@ circles.value.splice(circles.value.length - 1, 1); } } + + function openSiteInfo(){ + const{id}=siteInfo.value; + uni.redirectTo({ + url: `/pages/devops/bikesite/bikesite-info?id=${id}&&type=edit` + }) + } //完成绘制 function completeDraw() { @@ -368,9 +426,10 @@ if (arrPoint.length > 3) { arrPoint.push(arrPoint[0]); } - console.log("88888888888888888888888",arrPoint); const points = JSON.stringify(arrPoint); - const {operationRegionId}=selArea; + const { + operationRegionId + } = selArea; uni.redirectTo({ url: `/pages/devops/bikesite/bikesite-info?id=${editId}&points=${points}&radius=${radius.value}&&type=${opentype.value}&®ionid=${operationRegionId}` }) @@ -409,7 +468,6 @@ }; map.getRegionData(arrRegionID, (res) => { - console.log("11111111111getRegionData", res); const { arrData, arrCircles: arrCircles_region, @@ -417,22 +475,23 @@ arrCirclesData: arrCirclesData_region, arrPolygonsData: arrPolygonsData_region } = res; - regionData = { - arrCircles:arrCircles_region, - arrPolygons:arrPolygons_region, + siteData = { + arrCircles: arrCircles_region, + arrPolygons: arrPolygons_region, arrCirclesData: arrCirclesData_region, arrPolygonsData: arrPolygonsData_region }; const arrMarker = []; + let len = 0; arrCircles_region.map((item, index) => { const { latitude: lat, longitude: lng } = item; - const len = arrMarker.length; arrMarker.push(map.addMarker(len + index, lng, lat, "bikesite.png")); }); + len = arrMarker.length; arrPolygons_region.map((item, index) => { const { points @@ -441,7 +500,6 @@ latitude: lat, longitude: lng } = points[0]; - const len = arrMarker.length; arrMarker.push(map.addMarker(len + index, lng, lat, "bikesite.png")); }); @@ -472,15 +530,15 @@ function showMapSite(showSite) { const { - arrCircles=[], - arrPolygons=[] + arrCircles = [], + arrPolygons = [] } = areaData; const { - arrCircles: arrCircles_region=[], - arrPolygons: arrPolygons_region=[], + arrCircles: arrCircles_region = [], + arrPolygons: arrPolygons_region = [], arrCirclesData, arrPolygonsData - } = regionData; + } = siteData; const arrEditC = []; const arrEditP = []; if (showSite) { @@ -512,7 +570,7 @@ } polygons.value = [...arrPolygons, ...arrPolygons_region, ...arrEditP]; circles.value = [...arrCircles, ...arrCircles_region, ...arrEditC]; - drawPoint=[]; + drawPoint = []; } else { polygons.value = arrPolygons; circles.value = arrCircles; @@ -545,6 +603,7 @@ + onMounted(() => { oMap = map.getMap("mapRef", getCurrentInstance()); isload = true; diff --git a/ebike-maintenance/pages/mine/mine.vue b/ebike-maintenance/pages/mine/mine.vue index 8301611..ca41814 100644 --- a/ebike-maintenance/pages/mine/mine.vue +++ b/ebike-maintenance/pages/mine/mine.vue @@ -178,20 +178,20 @@ const permcode = 'maintenance.applet'; const permcodes = uni.getStorageSync('permCodes'); const menus = []; - if (permcodes.length > 0 && permcodes.includes(permcode)) { + if (permcodes.length > 0 ) { btnList.forEach((item) => { const menu = { key: item.key, name: item.name } let ipermcode = permcode + '.' + item.key.toLowerCase().replace(/-/g, '.'); - if (permcodes.includes(ipermcode)) { + if (permcodes.some(item => item.includes(ipermcode))) { menus.push(menu) if (item.children) { item.children.forEach((child) => { menu.children = menu.children || []; let cpermcode = ipermcode + '.' + child.key.toLowerCase().replace(/-/g, '.'); - if (permcodes.includes(cpermcode)) { + if (permcodes.some(item => item.includes(cpermcode))) { const cmenu = { key: child.key, name: child.name,