From b9ad95051659c5bc6944bcec5ed0b79f0e0ec769 Mon Sep 17 00:00:00 2001
From: niedongsheng <605973111@qq.com>
Date: Tue, 28 Apr 2026 16:38:38 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E2d=E5=9C=B0=E5=9B=BE?=
=?UTF-8?q?=E7=BB=84=E4=BB=B6leaflet?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
packages/mobile/package.json | 1 +
.../IceDisaster/IceDisaster.vue | 11 +-
.../WaterDisaster/WaterDisaster.vue | 11 +-
.../components/PositionPickerMobile.vue | 568 ++++++++++++++++++
packages/screen/package.json | 1 +
5 files changed, 588 insertions(+), 4 deletions(-)
create mode 100644 packages/mobile/src/views/DisasterManagement/components/PositionPickerMobile.vue
diff --git a/packages/mobile/package.json b/packages/mobile/package.json
index 143d741..749d2e8 100644
--- a/packages/mobile/package.json
+++ b/packages/mobile/package.json
@@ -15,6 +15,7 @@
"vant": "^4.9.21",
"@vueuse/core": "^14.0.0",
"dayjs": "^1.11.19",
+ "leaflet": "^1.9.4",
"axios": "^1.13.2",
"@h5/shared": "workspace:*"
},
diff --git a/packages/mobile/src/views/DisasterManagement/IceDisaster/IceDisaster.vue b/packages/mobile/src/views/DisasterManagement/IceDisaster/IceDisaster.vue
index 292f391..a03b2ca 100644
--- a/packages/mobile/src/views/DisasterManagement/IceDisaster/IceDisaster.vue
+++ b/packages/mobile/src/views/DisasterManagement/IceDisaster/IceDisaster.vue
@@ -24,7 +24,13 @@
/>
-
+
@@ -164,6 +170,7 @@ import { ref, computed, onMounted } from 'vue';
import PanelItem from '@/components/PanelItem.vue';
import BasePicker from '@/components/BasePicker.vue';
import BaseDatePicker from '@/components/BaseDatePicker.vue';
+import PositionPickerMobile from '../components/PositionPickerMobile.vue';
import RoadRoutesPicker from '../components/RoadRoutesPicker.vue';
import MaterialPicker from '../components/MaterialPicker.vue';
import { request } from '@shared/utils/request';
@@ -293,7 +300,7 @@ const validate = () => {
return false;
}
if (isEmpty(formData.value.event?.occurLocation)) {
- showToast('请输入发生地点');
+ showToast('请选择发生地点');
return false;
}
if (isEmpty(formData.value.event?.disasterMileage)) {
diff --git a/packages/mobile/src/views/DisasterManagement/WaterDisaster/WaterDisaster.vue b/packages/mobile/src/views/DisasterManagement/WaterDisaster/WaterDisaster.vue
index bc197a2..30dd42b 100644
--- a/packages/mobile/src/views/DisasterManagement/WaterDisaster/WaterDisaster.vue
+++ b/packages/mobile/src/views/DisasterManagement/WaterDisaster/WaterDisaster.vue
@@ -51,7 +51,13 @@
-
+
@@ -167,6 +173,7 @@ import PanelItem from '@/components/PanelItem.vue'
import BasePicker from '@/components/BasePicker.vue'
import BaseDatePicker from '@/components/BaseDatePicker.vue'
import DisasterFileUpload from '../components/DisasterFileUpload.vue'
+import PositionPickerMobile from '../components/PositionPickerMobile.vue'
import RoadRoutesPicker from '../components/RoadRoutesPicker.vue'
import LossList from '../components/LossList.vue'
import { useRouter, useRoute } from 'vue-router'
@@ -332,7 +339,7 @@ const validate = () => {
return false
}
if (isEmpty(formData.value.event?.occurLocation)) {
- showToast('请输入路况位置')
+ showToast('请选择路况位置')
return false
}
if (isEmpty(formData.value.event?.blockedPointName)) {
diff --git a/packages/mobile/src/views/DisasterManagement/components/PositionPickerMobile.vue b/packages/mobile/src/views/DisasterManagement/components/PositionPickerMobile.vue
new file mode 100644
index 0000000..09cbecd
--- /dev/null
+++ b/packages/mobile/src/views/DisasterManagement/components/PositionPickerMobile.vue
@@ -0,0 +1,568 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/screen/package.json b/packages/screen/package.json
index 9091471..800d244 100644
--- a/packages/screen/package.json
+++ b/packages/screen/package.json
@@ -17,6 +17,7 @@
"cesium": "^1.135.0",
"echarts": "^6.0.0",
"element-plus": "^2.11.5",
+ "leaflet": "^1.9.4",
"pinia": "^3.0.3",
"vue": "^3.5.18",
"vue-echarts": "^8.0.1",