|
@@ -75,7 +75,6 @@
|
|
|
<script lang="ts" setup name="riverMonitor">
|
|
|
import Map from "@/components/Map/index2.vue";
|
|
|
import searchImg from "@/assets/images/search.png";
|
|
|
-import { onMounted, reactive, ref } from "vue";
|
|
|
import { ElTable, ElTableColumn } from "element-plus";
|
|
|
import { useDict } from "@/utils/dict";
|
|
|
import {
|
|
@@ -85,42 +84,53 @@ import {
|
|
|
|
|
|
const { district_type } = toRefs<any>(useDict("district_type"));
|
|
|
let mapRef = ref();
|
|
|
+let mapLoaded = ref(false);
|
|
|
let eventDetails = ref({});
|
|
|
let keyword = ref("");
|
|
|
let area = ref("");
|
|
|
-const riverStatus = ref();
|
|
|
const tags = reactive([
|
|
|
- { name: "", num: 0, icon: "icon1", checked: true },
|
|
|
- { name: "", num: 0, icon: "icon2", checked: true },
|
|
|
- { name: "", num: 0, icon: "icon3", checked: true },
|
|
|
+ { name: "超警戒", num: 0, icon: "icon1", checked: true },
|
|
|
+ { name: "超保证", num: 0, icon: "icon2", checked: true },
|
|
|
+ { name: "漫坝", num: 0, icon: "icon3", checked: true },
|
|
|
{ name: "水文站", num: 0, icon: "icon4", checked: false },
|
|
|
{ name: "水位站", num: 0, icon: "icon5", checked: false }
|
|
|
]);
|
|
|
-// let tags = reactive([
|
|
|
-// { name: "超堰顶", num: 1, icon: "icon1", checked: true },
|
|
|
-// { name: "超警戒河道站", num: 1, icon: "icon2", checked: true },
|
|
|
-// { name: "漫堤河道站", num: 2, icon: "icon3", checked: true },
|
|
|
-// { name: "水文站", num: 6, icon: "icon4", checked: false },
|
|
|
-// { name: "水位站", num: 5, icon: "icon5", checked: false }
|
|
|
-// ]);
|
|
|
-watch(
|
|
|
- () => riverStatus.value,
|
|
|
- newVal => {
|
|
|
- if (newVal && newVal.length > 0) {
|
|
|
- tags.forEach((tag, index) => {
|
|
|
- if (newVal[index]) {
|
|
|
- tag.name = newVal[index].type;
|
|
|
- tag.num = newVal[index].value;
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
- },
|
|
|
- { immediate: true }
|
|
|
-);
|
|
|
let detailsData = ref({
|
|
|
text: "",
|
|
|
dataList: []
|
|
|
});
|
|
|
+let filterData = computed(() => {
|
|
|
+ const checkedData = tags.filter((item) => item.checked);
|
|
|
+ let res = [];
|
|
|
+ detailsData.value.dataList.forEach((item) => {
|
|
|
+ item.dataType = 'icon3';
|
|
|
+ const index = checkedData.findIndex((item2) => item2.icon === item.dataType);
|
|
|
+ if (index > -1) {
|
|
|
+ const image = iconList[item.dataType].image
|
|
|
+ res.push({
|
|
|
+ id: item.code,
|
|
|
+ icon: image,
|
|
|
+ image: image,
|
|
|
+ imageHover: image,
|
|
|
+ size: iconList[item.dataType].size,
|
|
|
+ lnglat: [item.longitude, item.latitude]
|
|
|
+ });
|
|
|
+ }
|
|
|
+ })
|
|
|
+ return res;
|
|
|
+});
|
|
|
+watch(filterData, () => {
|
|
|
+ if (mapLoaded.value) {
|
|
|
+ const dom = mapRef.value;
|
|
|
+ dom.addMarker(filterData.value);
|
|
|
+ }
|
|
|
+});
|
|
|
+watch(mapLoaded, () => {
|
|
|
+ if (mapLoaded.value) {
|
|
|
+ const dom = mapRef.value;
|
|
|
+ dom.addMarker(filterData.value);
|
|
|
+ }
|
|
|
+})
|
|
|
const getImageUrl = name => {
|
|
|
return new URL(
|
|
|
`../../assets/images/disasterRiskMonitor/riverMonitor/${name}`,
|
|
@@ -128,23 +138,23 @@ const getImageUrl = name => {
|
|
|
).href;
|
|
|
};
|
|
|
let iconList = reactive({
|
|
|
- "1": {
|
|
|
+ "icon1": {
|
|
|
image: getImageUrl("icon1.png"),
|
|
|
size: [20, 20]
|
|
|
},
|
|
|
- "2": {
|
|
|
+ "icon2": {
|
|
|
image: getImageUrl("icon2.png"),
|
|
|
size: [20, 20]
|
|
|
},
|
|
|
- "3": {
|
|
|
+ "icon3": {
|
|
|
image: getImageUrl("icon3.png"),
|
|
|
size: [20, 20]
|
|
|
},
|
|
|
- "4": {
|
|
|
+ "icon4": {
|
|
|
image: getImageUrl("icon4.png"),
|
|
|
size: [20, 20]
|
|
|
},
|
|
|
- "5": {
|
|
|
+ "icon5": {
|
|
|
image: getImageUrl("icon5.png"),
|
|
|
size: [20, 20]
|
|
|
}
|
|
@@ -163,169 +173,22 @@ const getRiverList = () => {
|
|
|
};
|
|
|
|
|
|
const getRiverDetail = () => {
|
|
|
- getRiverStatus().then(res => {
|
|
|
- riverStatus.value = res.rows;
|
|
|
+ getRiverStatus().then((res: any) => {
|
|
|
+ res.rows.forEach((item) => {
|
|
|
+ const index = tags.findIndex(tag => tag.name === item.type);
|
|
|
+ if (index > -1) {
|
|
|
+ tags[index].num = item.value;
|
|
|
+ }
|
|
|
+ });
|
|
|
});
|
|
|
};
|
|
|
-getRiverDetail();
|
|
|
+
|
|
|
const initData = () => {
|
|
|
- const dom = mapRef.value;
|
|
|
+ mapLoaded.value = true;
|
|
|
+ getRiverDetail();
|
|
|
getRiverList();
|
|
|
detailsData.value.text =
|
|
|
"2024年10月30日 20:45,袂花江河段当前水位处于正常范围内,低于警戒水位。由于近期连续降雨,河道流量有所增加,但流速和流量仍在可控范围内。";
|
|
|
- // dataList: [
|
|
|
- // {
|
|
|
- // data1: "茂南小东江超堰顶站",
|
|
|
- // data2: "小东江",
|
|
|
- // data3: "10月30日12:00",
|
|
|
- // data4: 28.5,
|
|
|
- // data5: -1.2,
|
|
|
- // longitude: "110.908662",
|
|
|
- // latitude: "21.671108",
|
|
|
- // dataType: "1"
|
|
|
- // },
|
|
|
- // {
|
|
|
- // data1: "电白袂花江超警戒站",
|
|
|
- // data2: "袂花江",
|
|
|
- // data3: "10月30日13:00",
|
|
|
- // data4: 27.3,
|
|
|
- // data5: -1.5,
|
|
|
- // longitude: "111.133971",
|
|
|
- // latitude: "21.744637",
|
|
|
- // dataType: "2"
|
|
|
- // },
|
|
|
- // {
|
|
|
- // data1: "信宜罗江漫堤站",
|
|
|
- // data2: "罗江",
|
|
|
- // data3: "10月30日14:00",
|
|
|
- // data4: 25.6,
|
|
|
- // data5: -2.0,
|
|
|
- // longitude: "110.572589",
|
|
|
- // latitude: "21.890757",
|
|
|
- // dataType: "3"
|
|
|
- // },
|
|
|
- // {
|
|
|
- // data1: "化州鉴江漫堤站",
|
|
|
- // data2: "鉴江",
|
|
|
- // data3: "10月30日15:00",
|
|
|
- // data4: 26.7,
|
|
|
- // data5: -2.1,
|
|
|
- // longitude: "110.661191",
|
|
|
- // latitude: "21.573497",
|
|
|
- // dataType: "3"
|
|
|
- // },
|
|
|
- // {
|
|
|
- // data1: "茂南小东江上游站",
|
|
|
- // data2: "小东江",
|
|
|
- // data3: "10月30日11:00",
|
|
|
- // data4: 27.9,
|
|
|
- // data5: -2.1,
|
|
|
- // longitude: "110.908662",
|
|
|
- // latitude: "21.671108",
|
|
|
- // dataType: "4"
|
|
|
- // },
|
|
|
- // {
|
|
|
- // data1: "电白袂花江下游站",
|
|
|
- // data2: "袂花江",
|
|
|
- // data3: "10月30日14:00",
|
|
|
- // data4: 27.5,
|
|
|
- // data5: -1.5,
|
|
|
- // longitude: "111.133971",
|
|
|
- // latitude: "21.744637",
|
|
|
- // dataType: "4"
|
|
|
- // },
|
|
|
- // {
|
|
|
- // data1: "信宜罗江支流站",
|
|
|
- // data2: "罗江",
|
|
|
- // data3: "10月30日13:00",
|
|
|
- // data4: 25.8,
|
|
|
- // data5: -2.0,
|
|
|
- // longitude: "110.572589",
|
|
|
- // latitude: "21.890757",
|
|
|
- // dataType: "4"
|
|
|
- // },
|
|
|
- // {
|
|
|
- // data1: "化州鉴江支流站",
|
|
|
- // data2: "鉴江",
|
|
|
- // data3: "10月30日12:00",
|
|
|
- // data4: 26.9,
|
|
|
- // data5: -2.1,
|
|
|
- // longitude: "110.664431",
|
|
|
- // latitude: "21.661873",
|
|
|
- // dataType: "4"
|
|
|
- // },
|
|
|
- // {
|
|
|
- // data1: "茂南小东江下游站",
|
|
|
- // data2: "小东江",
|
|
|
- // data3: "10月30日15:00",
|
|
|
- // data4: 28.2,
|
|
|
- // data5: -1.3,
|
|
|
- // longitude: "110.908662",
|
|
|
- // latitude: "21.671108",
|
|
|
- // dataType: "4"
|
|
|
- // },
|
|
|
- // {
|
|
|
- // data1: "电白袂花江上游站",
|
|
|
- // data2: "袂花江",
|
|
|
- // data3: "10月30日12:00",
|
|
|
- // data4: 27.7,
|
|
|
- // data5: -1.8,
|
|
|
- // longitude: "110.92052",
|
|
|
- // latitude: "21.579965",
|
|
|
- // dataType: "4"
|
|
|
- // },
|
|
|
- // {
|
|
|
- // data1: "信宜罗江主站",
|
|
|
- // data2: "罗江",
|
|
|
- // data3: "10月30日11:00",
|
|
|
- // data4: 25.4,
|
|
|
- // data5: -1.9,
|
|
|
- // longitude: "110.572589",
|
|
|
- // latitude: "21.890757",
|
|
|
- // dataType: "5"
|
|
|
- // },
|
|
|
- // {
|
|
|
- // data1: "化州鉴江主站",
|
|
|
- // data2: "鉴江",
|
|
|
- // data3: "10月30日10:00",
|
|
|
- // data4: 26.5,
|
|
|
- // data5: -2.2,
|
|
|
- // longitude: "110.641206",
|
|
|
- // latitude: "21.605162",
|
|
|
- // dataType: "5"
|
|
|
- // },
|
|
|
- // {
|
|
|
- // data1: "茂南小东江中游站",
|
|
|
- // data2: "小东江",
|
|
|
- // data3: "10月30日13:00",
|
|
|
- // data4: 28.1,
|
|
|
- // data5: -1.4,
|
|
|
- // longitude: "110.908662",
|
|
|
- // latitude: "21.671108",
|
|
|
- // dataType: "5"
|
|
|
- // },
|
|
|
- // {
|
|
|
- // data1: "电白袂花江中游站",
|
|
|
- // data2: "袂花江",
|
|
|
- // data3: "10月30日11:00",
|
|
|
- // data4: 27.4,
|
|
|
- // data5: -1.6,
|
|
|
- // longitude: "110.92052",
|
|
|
- // latitude: "21.579965",
|
|
|
- // dataType: "5"
|
|
|
- // },
|
|
|
- // {
|
|
|
- // data1: "信宜罗江支流下游站",
|
|
|
- // data2: "罗江",
|
|
|
- // data3: "10月30日15:00",
|
|
|
- // data4: 25.9,
|
|
|
- // data5: -2.1,
|
|
|
- // longitude: "110.572589",
|
|
|
- // latitude: "21.890757",
|
|
|
- // dataType: "5"
|
|
|
- // }
|
|
|
- // ]
|
|
|
-
|
|
|
detailsData.value.dataList.forEach(item => {
|
|
|
const icon =
|
|
|
item.dataType && !!iconList[item.dataType].image
|
|
@@ -337,7 +200,6 @@ const initData = () => {
|
|
|
item.size = iconList[item.dataType].size;
|
|
|
item.lnglat = [item.longitude, item.latitude];
|
|
|
});
|
|
|
- dom.addMarker(detailsData.value.dataList);
|
|
|
};
|
|
|
const onSelectConfirm = data => {
|
|
|
initData();
|