|
@@ -26,6 +26,14 @@ import { useRuler } from '@/hooks/AMap/useRuler';
|
|
|
import { getPointInfoList } from '@/api/globalMap';
|
|
|
import { getDictLabel } from '@/utils/dict';
|
|
|
import { PointType } from '@/api/globalMap/type';
|
|
|
+import {
|
|
|
+ getEmergencyExpertDetails,
|
|
|
+ getEmergencyShelterTypeDetails,
|
|
|
+ getHospitalDetails,
|
|
|
+ getRescueMateriaDetails,
|
|
|
+ getSchoolDetails,
|
|
|
+ getWaterloggedRoadsDetails
|
|
|
+} from '@/api/globalMap/spatialAnalysis';
|
|
|
|
|
|
interface Props {
|
|
|
activeMap: string;
|
|
@@ -119,27 +127,42 @@ const { getAMap, getMap, switchMap, addMarker, addSearchMarker, clearMarker, get
|
|
|
latitude: data.latitude.toString()
|
|
|
}).then((res) => {
|
|
|
const data2 = res.data.list;
|
|
|
- let content = '<div class="point-info">';
|
|
|
+ let content = document.createElement('div');
|
|
|
+ content.className = 'point-info';
|
|
|
+ let table = document.createElement('div');
|
|
|
+ table.className = 'point-item';
|
|
|
+ table.innerHTML = '<div>主题</div><div>名称</div>';
|
|
|
+ content.appendChild(table);
|
|
|
data2.forEach((item) => {
|
|
|
- content += '<div class="point-item">' + '<div>主题:</div><div>' + getDictLabel(point_type.value, item.dataType.toString()) + '</div></div>';
|
|
|
- content += '<div class="point-item">' + '<div>名称:</div><div>' + item.name + '</div></div>';
|
|
|
+ const div = document.createElement('div');
|
|
|
+ div.className = 'point-item';
|
|
|
+ div.innerHTML = '<div>' + getDictLabel(point_type.value, item.dataType.toString()) + '</div><div>' + item.name + '</div>';
|
|
|
+ div.addEventListener('click', () => handlePointDetails(item));
|
|
|
+ content.appendChild(div);
|
|
|
});
|
|
|
- content += '</div>';
|
|
|
showInfo(content, [data.longitude, data.latitude]);
|
|
|
});
|
|
|
} else {
|
|
|
- getPointInfoList({
|
|
|
- option: data.dataType.toString(),
|
|
|
- longitude: data.longitude.toString(),
|
|
|
- latitude: data.latitude.toString()
|
|
|
- }).then((res) => {
|
|
|
- const content =
|
|
|
- '<div class="point-info">' + '<div class="point-item">' + '<div>名称:</div><div>' + res.data.list[0].name + '</div>' + '</div>' + '</div>';
|
|
|
- showInfo(content, [data.longitude, data.latitude]);
|
|
|
- });
|
|
|
+ handlePointDetails(data);
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
+const handlePointDetails = (data) => {
|
|
|
+ let methodList = {
|
|
|
+ '1': getEmergencyExpertDetails,
|
|
|
+ '2': getRescueMateriaDetails,
|
|
|
+ '3': getEmergencyShelterTypeDetails,
|
|
|
+ '4': getWaterloggedRoadsDetails,
|
|
|
+ '5': getSchoolDetails,
|
|
|
+ '6': getHospitalDetails
|
|
|
+ };
|
|
|
+ let method = methodList[data.dataType];
|
|
|
+ if (!method) return;
|
|
|
+ method(data.id).then((res) => {
|
|
|
+ const data = res.rows[0];
|
|
|
+ showInfo(content, [data.longitude, data.latitude]);
|
|
|
+ });
|
|
|
+};
|
|
|
// 监听地图类型变化
|
|
|
watch(
|
|
|
() => props.activeMap,
|