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",