From 7284bda7a2f36339534273d5883fd6364299957e Mon Sep 17 00:00:00 2001 From: niedongsheng <605973111@qq.com> Date: Tue, 28 Apr 2026 11:57:21 +0800 Subject: [PATCH 1/4] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9=E7=81=BE?= =?UTF-8?q?=E6=AF=81=20UI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IceDisasterDetail/IceDisasterDetailPC.vue | 2 +- .../WaterDisasterDetail/WaterDisasterDetailPC.vue | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/screen/src/views/DisasterManagement/IceDisasterDetail/IceDisasterDetailPC.vue b/packages/screen/src/views/DisasterManagement/IceDisasterDetail/IceDisasterDetailPC.vue index 79e96c5..1fbd720 100644 --- a/packages/screen/src/views/DisasterManagement/IceDisasterDetail/IceDisasterDetailPC.vue +++ b/packages/screen/src/views/DisasterManagement/IceDisasterDetail/IceDisasterDetailPC.vue @@ -463,7 +463,7 @@ onMounted(() => { } .file-list { - width: 260px; + max-width: 260px; flex-shrink: 0; } diff --git a/packages/screen/src/views/DisasterManagement/WaterDisasterDetail/WaterDisasterDetailPC.vue b/packages/screen/src/views/DisasterManagement/WaterDisasterDetail/WaterDisasterDetailPC.vue index 90410bf..6af2011 100644 --- a/packages/screen/src/views/DisasterManagement/WaterDisasterDetail/WaterDisasterDetailPC.vue +++ b/packages/screen/src/views/DisasterManagement/WaterDisasterDetail/WaterDisasterDetailPC.vue @@ -402,7 +402,7 @@ onMounted(() => { margin-bottom: -10px; } .file-list { - width: 320px; + max-width: 320px; flex-shrink: 0; } From 1cc7d0e1ac94a42c9bb4a1ae76790469a2f72786 Mon Sep 17 00:00:00 2001 From: niedongsheng <605973111@qq.com> Date: Tue, 28 Apr 2026 15:24:23 +0800 Subject: [PATCH 2/4] =?UTF-8?q?feat:=20=E6=B0=B4=E6=AF=81=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E9=99=84=E4=BB=B6=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IceDisasterDetail/IceDisasterDetailPC.vue | 8 ++++ .../WaterDisasterContinueReportPC.vue | 48 ++++++++++++------- .../WaterDisasterDetailPC.vue | 28 +++++++---- 3 files changed, 57 insertions(+), 27 deletions(-) diff --git a/packages/screen/src/views/DisasterManagement/IceDisasterDetail/IceDisasterDetailPC.vue b/packages/screen/src/views/DisasterManagement/IceDisasterDetail/IceDisasterDetailPC.vue index 1fbd720..3f67b2c 100644 --- a/packages/screen/src/views/DisasterManagement/IceDisasterDetail/IceDisasterDetailPC.vue +++ b/packages/screen/src/views/DisasterManagement/IceDisasterDetail/IceDisasterDetailPC.vue @@ -466,4 +466,12 @@ onMounted(() => { max-width: 260px; flex-shrink: 0; } +:deep(.upload-block) { + display: flex; + justify-content: flex-end; +} +:deep(.preview-block .preview-list) { + display: flex; + justify-content: flex-end; +} diff --git a/packages/screen/src/views/DisasterManagement/WaterDisasterDetail/WaterDisasterContinueReportPC.vue b/packages/screen/src/views/DisasterManagement/WaterDisasterDetail/WaterDisasterContinueReportPC.vue index 6c704c1..470164a 100644 --- a/packages/screen/src/views/DisasterManagement/WaterDisasterDetail/WaterDisasterContinueReportPC.vue +++ b/packages/screen/src/views/DisasterManagement/WaterDisasterDetail/WaterDisasterContinueReportPC.vue @@ -9,7 +9,7 @@ - + @@ -121,7 +121,7 @@ - + @@ -132,6 +132,13 @@ --> + +
+ +
只能上传jpg/png文件,且不超过500kb 最多上传6张照片
+
+
+ 追加记录 @@ -147,14 +154,15 @@ import { request } from '@shared/utils/request' import BlockItem from '@/component/BlockItem.vue' import NumberInput from '@/component/NumberInput/NumberInput.vue' import LossList from '../WaterDisasterReport/WaterDisasterLossListPC.vue' +import FileUpload from '@/component/FileUpload/FileUpload.vue' import { useRouter } from 'vue-router' // Props 定义 const props = defineProps({ value: { type: Object, - default: () => ({}) - } + default: () => ({}), + }, }) // Emits 定义 @@ -163,12 +171,10 @@ const emit = defineEmits(['input', 'change']) const router = useRouter() const createDefaultFormData = () => ({ - event: { - }, - report: { - }, + event: {}, + report: {}, lossList: [], - fileList: [] + fileList: [], }) // 表单数据 @@ -181,25 +187,25 @@ const roadConditionOptions = [ { label: '省道', value: '省道' }, { label: '县道', value: '县道' }, { label: '乡道', value: '乡道' }, - { label: '村道', value: '村道' } + { label: '村道', value: '村道' }, ] const blockedOptions = [ { label: '是', value: true }, - { label: '否', value: false } + { label: '否', value: false }, ] const repairProgressOptions = [ { label: '未抢险', value: '未抢险' }, { label: '抢险中', value: '抢险中' }, - { label: '已完成', value: '已完成' } + { label: '已完成', value: '已完成' }, ] // 日期选择器配置 const pickerOptions = { disabledDate(time) { return time.getTime() < new Date(2020, 0, 1) || time.getTime() > new Date(2030, 11, 31) - } + }, } // 监听外部传入的值 @@ -210,7 +216,7 @@ watch( initFormData(newVal) } }, - { immediate: true, deep: true } + { immediate: true, deep: true }, ) // 监听表单数据变化,向外传递 @@ -220,7 +226,7 @@ watch( emit('input', newVal) emit('change', newVal) }, - { deep: true } + { deep: true }, ) // 初始化表单数据 @@ -276,7 +282,7 @@ const handleAddSubmit = async () => { // 添加事件类型和站点信息 const submitData = { - ...formData.value + ...formData.value, // 可以在这里添加站点信息等其他数据 } @@ -288,7 +294,7 @@ const handleAddSubmit = async () => { const res = await request({ url: apiUrl, method: 'post', - data: submitData + data: submitData, }) if (res?.code === '00000') { @@ -316,7 +322,7 @@ defineExpose({ initFormData, getFormData, resetForm, - calibrateTime + calibrateTime, }) @@ -358,4 +364,10 @@ defineExpose({ } } } +.upload-tip { + margin-top: 8px; + color: #909399; + font-size: 12px; + line-height: 1.6; + } diff --git a/packages/screen/src/views/DisasterManagement/WaterDisasterDetail/WaterDisasterDetailPC.vue b/packages/screen/src/views/DisasterManagement/WaterDisasterDetail/WaterDisasterDetailPC.vue index 6af2011..d91c948 100644 --- a/packages/screen/src/views/DisasterManagement/WaterDisasterDetail/WaterDisasterDetailPC.vue +++ b/packages/screen/src/views/DisasterManagement/WaterDisasterDetail/WaterDisasterDetailPC.vue @@ -38,14 +38,16 @@
- - -
- {{ item.label }}: - {{ item.value }} -
-
+
+ + +
+ {{ item.label }}: + {{ item.value }} +
+
+
@@ -252,9 +254,9 @@ const getDisasterDetail = async () => { if (isEdit.value) { const newFormData = { ...data, - lossList: null, + lossList: [], report: {}, - fileList: null + fileList: [] } nextTick(() => { continueReport.value?.initFormData(newFormData) @@ -405,4 +407,12 @@ onMounted(() => { max-width: 320px; flex-shrink: 0; } +:deep(.upload-block) { + display: flex; + justify-content: flex-end; +} +:deep(.preview-block .preview-list) { + display: flex; + justify-content: flex-end; +} 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 3/4] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E2d=E5=9C=B0?= =?UTF-8?q?=E5=9B=BE=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", From 264501ee01d695494f3d62ecaf299436dfbec337 Mon Sep 17 00:00:00 2001 From: niedongsheng <605973111@qq.com> Date: Tue, 28 Apr 2026 17:00:01 +0800 Subject: [PATCH 4/4] =?UTF-8?q?feat:=20=E7=81=BE=E6=AF=81mobile=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=9C=B0=E5=9D=80=E9=80=89=E6=8B=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mobile/src/components/BaseDatePicker.vue | 2 +- packages/mobile/src/components/BasePicker.vue | 2 +- packages/mobile/src/main.js | 1 + packages/mobile/src/styles/vant-ui-style.scss | 1 + .../IceDisaster/IceDisaster.vue | 26 ++---- .../WaterDisaster/WaterDisaster.vue | 19 ++-- .../components/DisposalMeasuresSelector.vue | 87 +++++++++++++++++++ .../components/LossPicker.vue | 2 +- 8 files changed, 104 insertions(+), 36 deletions(-) create mode 100644 packages/mobile/src/styles/vant-ui-style.scss create mode 100644 packages/mobile/src/views/DisasterManagement/components/DisposalMeasuresSelector.vue diff --git a/packages/mobile/src/components/BaseDatePicker.vue b/packages/mobile/src/components/BaseDatePicker.vue index 7ff82a6..d465818 100644 --- a/packages/mobile/src/components/BaseDatePicker.vue +++ b/packages/mobile/src/components/BaseDatePicker.vue @@ -14,7 +14,7 @@ /> - +
取消 diff --git a/packages/mobile/src/components/BasePicker.vue b/packages/mobile/src/components/BasePicker.vue index 6d4a7fe..3e9ff80 100644 --- a/packages/mobile/src/components/BasePicker.vue +++ b/packages/mobile/src/components/BasePicker.vue @@ -14,7 +14,7 @@ /> - + - - - + - - - + @@ -173,6 +165,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 DisposalMeasuresSelector from '../components/DisposalMeasuresSelector.vue' import PositionPickerMobile from '../components/PositionPickerMobile.vue' import RoadRoutesPicker from '../components/RoadRoutesPicker.vue' import LossList from '../components/LossList.vue' diff --git a/packages/mobile/src/views/DisasterManagement/components/DisposalMeasuresSelector.vue b/packages/mobile/src/views/DisasterManagement/components/DisposalMeasuresSelector.vue new file mode 100644 index 0000000..a37712d --- /dev/null +++ b/packages/mobile/src/views/DisasterManagement/components/DisposalMeasuresSelector.vue @@ -0,0 +1,87 @@ + + + + + diff --git a/packages/mobile/src/views/DisasterManagement/components/LossPicker.vue b/packages/mobile/src/views/DisasterManagement/components/LossPicker.vue index 283bc72..81585f4 100644 --- a/packages/mobile/src/views/DisasterManagement/components/LossPicker.vue +++ b/packages/mobile/src/views/DisasterManagement/components/LossPicker.vue @@ -1,5 +1,5 @@