MicroCommunityWeb/src/components/inspection/AInspectionTaskMap.vue
2025-05-30 17:12:09 +08:00

91 lines
2.3 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div id="aInspectionTaskMap" class="map-container"></div>
</template>
<script>
import { queryAdminInspectionTaskDetail } from '@/api/inspection/aInspectionPlanDetailApi'
export default {
name: 'AInspectionTaskMap',
data() {
return {
map: null,
points: []
}
},
methods: {
loadData(params) {
console.log(params)
//this.initMap(params)
},
async initMap(params) {
try {
const { data } = await queryAdminInspectionTaskDetail({
taskId: params.taskId,
page: 1,
row: 1000
})
this.points = data
this.initMapView()
} catch (error) {
this.$message.error(this.$t('common.fetchError'))
}
},
initMapView() {
let TMap = {}
if (!this.points || this.points.length === 0) return
// 这里需要根据实际地图API实现地图初始化
// 示例代码需要替换为实际地图API调用
console.log('Initialize task map with points:', this.points)
// 示例使用腾讯地图API
if (window.TMap) {
const center = new TMap.LatLng(this.points[0].lat, this.points[0].lng)
this.map = new TMap.Map(document.getElementById('aInspectionTaskMap'), {
center: center,
zoom: 17
})
// 添加标记点
const markers = this.points.map(point => ({
position: new TMap.LatLng(point.lat, point.lng),
properties: {
title: point.inspectionName,
status: point.state
}
}))
new TMap.MultiMarker({
map: this.map,
styles: {
normal: new TMap.MarkerStyle({
width: 25,
height: 35,
src: '/img/inspection.png',
anchor: { x: 16, y: 32 }
}),
done: new TMap.MarkerStyle({
width: 25,
height: 35,
src: '/img/inspection_done.png',
anchor: { x: 16, y: 32 }
})
},
geometries: markers.map(marker => ({
...marker,
styleId: marker.properties.status === '20200405' ? 'done' : 'normal'
}))
})
}
}
}
}
</script>
<style scoped>
.map-container {
height: 600px;
width: 100%;
}
</style>