From fafd5103e8e492104021b5163941bc277db2066e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E5=B0=8F?= <736883394@qq.com> Date: Wed, 28 May 2025 15:18:37 +0800 Subject: [PATCH] =?UTF-8?q?web=E7=AB=AF=EF=BC=9A=E8=BD=A8=E8=BF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/Urban/OperateRegionMap/index.vue | 263 +----------------- ebike-operate/src/views/common/amap.vue | 66 +++-- .../orderinfo/CyclingTrajectory.vue | 41 ++- 3 files changed, 89 insertions(+), 281 deletions(-) diff --git a/ebike-operate/src/views/Urban/OperateRegionMap/index.vue b/ebike-operate/src/views/Urban/OperateRegionMap/index.vue index bdc1c3b..75c62d7 100644 --- a/ebike-operate/src/views/Urban/OperateRegionMap/index.vue +++ b/ebike-operate/src/views/Urban/OperateRegionMap/index.vue @@ -156,268 +156,7 @@ const clearDraw=()=>{ mapref.value.clearDraw(); } - -/* const props = defineProps({ - onCallBack: { - type: Function, - required: true - }, - openTitle: { - type: String, - default: '' // Default value in case no openTitle is provided - } -}); - - -const showModal = (data) => { - if (data) { - loadMap(data); - } - open.value = true; -}; -const handleClose = () => { - open.value = false; - ClearEditor(); - if (props.onCallBack) { - props.onCallBack(formData.value); - } -}; -defineExpose({ showModal }); - -const formData = ref({ - "regionId": "", - "regionName": "", - "simpleName": "", - "zoneId": "", - "points": [], - "shapeType": 2, // 1:圆形 2:多边形 - "radius": 0, // 圆形半径 -}); - -let timer = null; -const loadMap = (dataRegion) => { - if (editorRef.value) { - clearTimeout(timer); - if (dataRegion) { - const { operationRegionId } = dataRegion; - callOperate("/ebikeRegion/getOperationById?regionId=" + operationRegionId, {}, "get").then((res) => { - console.log("5555555555555555555555555555",res); - if (res.code != 200) { - message.error(res.message) - return - } - const { operationRegionName, simpleName, zoneId, points, shapeType, radius } = res.data; - formData.value = { - "operationRegionId": operationRegionId, - "operationRegionName": operationRegionName, - "simpleName": simpleName, - "zoneId": zoneId, - "points": points, - "shapeType": shapeType, // 1:圆形 2:多边形 - "radius": radius, // 圆形半径 - } - loadGeometry(); - }); - } - } - else { - timer = setTimeout(() => { - loadMap(dataRegion); - }, 1000) - } -}; - -let shapeId = null; -const loadGeometry = () => { - const { points, shapeType, regionId, radius } = formData.value; - shapeId = 'polygon' + regionId; - if (shapeType == 1) { - shapeId = 'circle' + regionId; - } - if (points) { - if (shapeType == 1) { - const circleGeometries = [];//editorRef.value.circle.getGeometries(); - if (circleGeometries.length > 0) { - circleGeometries.forEach((geometry) => { - editorRef.value.circle.remove(geometry); // 删除之前的图形数据 - }); - } - circleGeometries.push({ - id: shapeId, // 圆形图形数据的标志信息 - styleId: 'circle', // 样式id - radius: radius, // 圆形的半径 - center: new TMap.LatLng(points[0].latitude, points[0].longitude), - properties: { - // 圆形的属性数据 - title: 'circle', - }, - }); - editorRef.value.circle.setGeometries(circleGeometries); - //设置视野范围 - const mycircle = editorRef.value.circle.getGeometryById(shapeId); - const boundary = TMap.geometry.computeBoundingRectangle(mycircle.paths); - mapRef.value.map.fitBounds(boundary, { - padding: 100, // 设置地图边界的内边距 - }); - } - else if (shapeType == 2) { - const paths = []; - points.forEach((point) => { - paths.push(new TMap.LatLng(point.latitude, point.longitude)); - }); - const polygonGeometries = [];//editorRef.value.polygon.getGeometries(); - polygonGeometries.push({ - id: shapeId, // 多边形图形数据的标志信息 - styleId: 'polygon', // 样式id - paths, // 多边形的位置信息 - properties: { - // 多边形的属性数据 - title: 'polygon', - }, - }); - editorRef.value.polygon.setGeometries(polygonGeometries); - // var position = TMap.geometry.computeCentroid(paths); - // mapRef.value.map.setCenter(position); - //设置视野范围 - const mypolygon = editorRef.value.polygon.getGeometryById(shapeId); - const boundary = TMap.geometry.computeBoundingRectangle(mypolygon.paths); - mapRef.value.map.fitBounds(boundary, { - padding: 100, // 设置地图边界的内边距 - }); - } - buttonName.value = '重置'; - editorRef.value.editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.INTERACT); - editorRef.value.editor.select([shapeId]); - } -} - -const mapRef = ref(null); -const center = ref(config.map.center); -const control = ref({ scale: {}, zoom: { position: 'topRight', }, }); -const options = ref({ renderOptions: { renderOptions: true, } }); -const editorRef = ref(null); -const onMapInited = () => { - if (mapRef.value) { - const windowWidth = window.innerWidth; - const windowHeight = window.innerHeight; - const calculatedWidth = windowWidth - 60; - const calculatedHeight = windowHeight - 100; - // 调用地图实例的 resize 方法 - const map = mapRef.value.map; - if (map) { - map.resize(calculatedWidth, calculatedHeight); - } - } -}; - -const buttonName = ref('清除'); -const onDrowComplet = (geomeytry) => { - //console.log("onDrowComplet",geomeytry); - if (geomeytry.id) { - editorRef.value.editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.INTERACT); - editorRef.value.editor.select([geomeytry.id]); - editorRef.value.editor.snappable = true - } -}; -const onDrawError = (e) => { - ClearEditor(); - editorRef.value.editor.stop(); -}; - -const onAdjustComplete = (geomeytry) => { - //console.log("onAdjustComplete",geomeytry); -}; -const onAdjustError = (e) => { - ClearEditor(); - loadGeometry(); -}; - -const onEditorClear = () => { - if (!isNullOrEmpty(shapeId)) { - loadGeometry(); - } - else { - ClearEditor(); - } -} - -const ClearEditor = () => { - editorRef.value.editor.select([]); - editorRef.value.editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.DRAW); - editorRef.value.circle.setGeometries([]); - editorRef.value.polygon.setGeometries([]); -} - -const onEditorComplete = () => { - if (editorRef.value.editor.getSelectedList().length > 0) { - const selectedList = editorRef.value.editor.getSelectedList(); - const geometry = selectedList[0]; - console.log("onEditorComplete", geometry); - if (geometry.id) { - if (geometry.radius && geometry.center) { - formData.value.radius = geometry.radius; - formData.value.points = [ - { - "latitude": geometry.center.lat, - "longitude": geometry.center.lng, - } - ]; - formData.value.shapeType = 1; - } - else if (geometry.paths) { - formData.value.radius = 0; - formData.value.points = geometry.paths.map((point) => { - return { - "latitude": point.lat, - "longitude": point.lng, - }; - }); - formData.value.points.push({ - "latitude": geometry.paths[0].lat, - "longitude": geometry.paths[0].lng, - }); - formData.value.shapeType = 2; - } - if (!isNullOrEmpty(formData.value.operationRegionId)) { - callOperate("/ebikeRegion/updateOperation", formData.value, "post").then((res) => { - if (res.code == 200) { - message.success(res.message, 3, handleClose); - } else { - message.error(res.message, 10); - } - }); - } - else { - handleClose(); - } - } - } - else { - message.error("请先绘制区域!") - } -} - -const onDeleteComplete = (geomeytry) => { - if (editorRef.value.polygon.getGeometries().length > 0) { - const shapeId = editorRef.value.polygon.getGeometries()[0].id; - editorRef.value.editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.INTERACT); - editorRef.value.editor.select([shapeId]); - } - else if (editorRef.value.circle.getGeometries().length > 0) { - const shapeId = editorRef.value.circle.getGeometries()[0].id; - editorRef.value.editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.INTERACT); - editorRef.value.editor.select([shapeId]); - } - else { - editorRef.value.editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.DRAW); - // editorRef.value.circle.setGeometries([]); - // editorRef.value.polygon.setGeometries([]); - } -}; */ - - - -defineExpose({showModal}) +defineExpose({showModal}); diff --git a/ebike-operate/src/views/common/amap.vue b/ebike-operate/src/views/common/amap.vue index 324ff43..6adc6a7 100644 --- a/ebike-operate/src/views/common/amap.vue +++ b/ebike-operate/src/views/common/amap.vue @@ -8,9 +8,8 @@ + \ No newline at end of file