This commit is contained in:
dzl 2025-04-30 08:56:47 +08:00
commit 4d6f8bbb30
4 changed files with 72 additions and 45 deletions

View File

@ -1,45 +1,44 @@
<template>
<scroll-view class="divForm" :style="{height}" scroll-y show-scrollbar>
<uni-forms ref="formRef" :label-width="100">
<uni-forms-item label="站点名称" required>
<uni-forms ref="formRef" :model="formData" :label-width="100">
<uni-forms-item label="站点名称" name="name" required :rules="[{'required': true,errorMessage: '请填写站点名称'}]">
<uni-easyinput v-model="formData.name" />
</uni-forms-item>
<uni-forms-item label="站点类型:" required>
<uni-forms-item label="站点类型:" name="zdlx" required :rules="[{'required': true,errorMessage: '请选择站点类型'}]">
<uni-data-select v-model="formData.zdlx" :localdata="arrZDLX" />
</uni-forms-item>
<uni-forms-item label="站点级别:" required>
<uni-forms-item label="站点级别:" name="zdjb" required :rules="[{'required': true,errorMessage: '请选择站点级别'}]">
<div class="divRow">
<uni-data-checkbox v-model="formData.zdjb" :localdata="arrZDJB" />
</div>
</uni-forms-item>
<uni-forms-item label="调度投放:" required>
<!-- <uni-forms-item label="调度投放:" name="ddtf" required :rules="[{'required': true,errorMessage: '请选择调度投放'}]">
<div class="divRow">
<uni-data-checkbox v-model="formData.ddtf" :localdata="arrDDTF" />
</div>
</uni-forms-item>
<uni-forms-item label="用户端显示:" required>
<uni-forms-item label="用户端显示:" name="zdxs" required :rules="[{'required': true,errorMessage: '请选择用户端显示'}]">
<div class="divRow">
<uni-data-checkbox v-model="formData.zdxs" :localdata="arrZDXS" />
<label style="margin-left: 10px;" @click="showTip('开启后在用户端小程序地图上不会显示站点,但不影响用户在该站点范围内还车')">
<uni-icons type="info" size="20" color="#5892E3" /></label>
</div>
<!-- <div class="divRow" style="font-size: 12px;">用户端站点隐藏显示</div> -->
</uni-forms-item>
<uni-forms-item label="可停车辆:" required>
</div>
</uni-forms-item>-->
<uni-forms-item label="可停车辆:" name="ktcl" required :rules="[{'required': true,errorMessage: '请填写可停车辆'}]">
<div class="divRow">
<uni-easyinput v-model="formData.ktcl" />
<label></label>
</div>
</uni-forms-item>
<uni-forms-item label="最大可停:" required>
<uni-forms-item label="最大可停:" name="zdkt" required :rules="[{'required': true,errorMessage: '请填写最大可停'}]">
<div class="divRow">
<uni-easyinput v-model="formData.zdkt" />
<label></label>
</div>
</uni-forms-item>
<uni-forms-item label="还车半径:">
<uni-forms-item label="还车半径:" >
<div class="divRow">
<uni-easyinput v-model="formData.hcbj" />
<label></label>
@ -52,7 +51,7 @@
</div>
</uni-forms-item>
<uni-forms-item label="站点描述:">
<uni-easyinput opentype="textarea" v-model="formData.zdms" />
<uni-easyinput type="textarea" v-model="formData.zdms" />
</uni-forms-item>
<uni-forms-item label="站点标签:">
<uni-data-checkbox mode="button" multiple v-model="formData.zdbq" :localdata="arrZDBQ" />
@ -158,7 +157,8 @@
}
if (type == "edit") {
const id = formData.value.id;
const points = JSON.stringify(arrPoint);
//const points = JSON.stringify(arrPoint);
const points='[{"latitude":30.571833529690217,"longitude":104.06370857334673},{"latitude":30.571476489584985,"longitude":104.06382896516845},{"latitude":30.571211588676054,"longitude":104.0681363214153},{"latitude":30.571845047283958,"longitude":104.06805606033697},{"latitude":30.571833529690217,"longitude":104.06370857334673}]';
uni.navigateTo({
url: `/pages/map/map-bikesite?type=edit&id=${id}&points=${points}&k=${Date.now()}`
})
@ -166,9 +166,10 @@
}
function SaveData() {
debugger;
formRef.value.validate().then(res=>{
console.log("66666666666666666666666666666",res);
}).catch(res=>{
console.log("7777777777777777777777",res);
})
}
@ -230,9 +231,9 @@
padding: 10px 10px;
}
.divForm /deep/ .uni-forms-item {
/* .divForm /deep/ .uni-forms-item {
margin-bottom: 10px !important;
}
} */
.divFontColor {
color: #606266;
@ -252,7 +253,7 @@
.divBottom {
position: absolute;
bottom: 0px;
bottom: 10px;
background-color: white;
padding: 10px;
display: flex;

View File

@ -113,10 +113,10 @@
const selDraw = ref("1");
const drawId = 10000000;
const drawColor = "#e58b04";
const drawFillColor = "rgba(229,139,4,0.1)";
const drawFillColor = "#e58b041a";
const height = ref("100vh");
const opentype = ref("add"); //
const editId = ""; //ID
let editId = ""; //ID
//
function onZoom(type) {
@ -143,7 +143,8 @@
latitude,
longitude
} = drawPoint[0];
circles.value[circles.value.length-1] = map.addCirle(drawColor, drawFillColor, longitude, latitude, radius.value);
circles.value[circles.value.length - 1] = map.addCirle(drawColor, drawFillColor, longitude, latitude, radius
.value);
}
//
@ -213,10 +214,12 @@
//
function drawCircle(latitude, longitude) {
const circle = map.addCirle(drawColor, drawFillColor, longitude, latitude, radius.value);
const marker = map.addMarker(drawId, longitude, latitude, "point.png");
if (drawPoint.length > 0) {
circles.value[circles.value.length - 1] = circle;
markers.value[markers.value.length - 1] = markers;
} else {
const marker = map.addMarker(drawId, longitude, latitude, "point.png");
markers.value.push(marker);
circles.value.push(circle);
}
@ -297,10 +300,11 @@
}
function loadOperation(callback) {
console.log("666666666666666666666", "行政区划", zoneId)
console.log("666666666666666666666", "行政区划", zoneId);
map.getOperation(zoneId, (res) => {
if (!res) {
callback();
if(callback) callback();
return;
}
const {
@ -310,7 +314,7 @@
arrData
} = res;
if (arrRegionID.length == 0) {
callback();
if(callback) callback();
return;
}
@ -321,6 +325,7 @@
};
map.getRegionData(arrRegionID, (res) => {
console.log("11111111111getRegionData",res);
const {
arrData,
arrCircles: arrCircles_region,
@ -344,7 +349,7 @@
arrMarker.push(map.addMarker(len + index, lng, lat, "bikesite.png"));
});
arrPolygons.map((item, index) => {
arrPolygons_region.map((item, index) => {
const {
points
} = item;
@ -358,7 +363,7 @@
markers.value = arrMarker;
showMapSite(showRegion.value);
callback();
if(callback) callback();
})
})
}
@ -389,30 +394,40 @@
arrCirclesData,
arrPolygonsData
} = regionData;
const arrEditC=[];
const arrEditP=[];
if (showSite) {
if (editId) {
if (editId) { //
const obj = {
regionid: editId
};
console.log("9999999999999999999999", arrCirclesData, arrPolygonsData);
console.log("9999999999999999999999arrCirclesData, arrPolygonsData", arrCirclesData, arrPolygonsData);
let index = findIndex(arrCirclesData, obj);
if (index > -1) {
const {latitude,longitude}=arrCircles_region[index];
arrCirclesData.splice(index, 1);
arrCircles_region.splice(index, 1);
arrEditC.push(map.addCirle(drawColor,drawFillColor,longitude,latitude,radius.value));
} else {
index = findIndex(arrPolygonsData, obj);
arrPolygonsData.splice(index, 1);
arrPolygons_region.splice(index, 1);
if(index>-1){
const {points:arrPoint}=arrPolygons_region[index];
arrPolygonsData.splice(index, 1);
arrPolygons_region.splice(index, 1);
arrEditP.push(map.addPolygon(drawColor,drawFillColor,arrPoint))
}
}
}
polygons.value = [...arrPolygons, ...arrPolygons_region];
circles.value = [...arrCircles, ...arrCircles_region];
polygons.value = [...arrPolygons, ...arrPolygons_region,...arrEditP];
circles.value = [...arrCircles, ...arrCircles_region,...arrEditC];
} else {
polygons.value = arrPolygons;
circles.value = arrCircles;
}
}
function defualtZoom() {
if (polygons.value.length == 0) return;
@ -426,17 +441,7 @@
//
function loadData() {
showRegion.value = false;
loadOperation(() => {
switch (opentype.value) {
case "add":
case "edit":
showRegion.value = true;
showDraw.value = true;
break;
}
showMapSite(showRegion.value);
if (isload) {
defualtZoom();
@ -454,6 +459,7 @@
});
onLoad(options => {
console.log("33333333333333333","options",options)
let title = "站点地图";
const {
type,
@ -472,9 +478,13 @@
switch (type) {
case "add":
title = "新建站点";
showRegion.value = true;
showDraw.value = true;
break;
case "edit":
title = "编辑站点";
showRegion.value = true;
showDraw.value = true;
break;
}
getScreenHeightNoTabBar(res => {

View File

@ -1,6 +1,6 @@
@font-face {
font-family: "iconfont"; /* Project id 4868066 */
src: url('iconfont.ttf?t=1745225351472') format('truetype');
src: url('iconfont.ttf?t=1745572982146') format('truetype');
}
.iconfont {
@ -11,6 +11,22 @@
-moz-osx-font-smoothing: grayscale;
}
.icon-ebikebianji:before {
content: "\e649";
}
.icon-ebikeshanchu:before {
content: "\e6d3";
}
.icon-ebikesanjiaoxing:before {
content: "\e617";
}
.icon-ebikesanjiaoxing-copy:before {
content: "\eb34";
}
.icon-ebikecheliangguanli:before {
content: "\e622";
}