DeviceMap.vue 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <template>
  2. <baidu-map
  3. v-if="center"
  4. :ak="ak"
  5. :center="center"
  6. :zoom="19"
  7. :dragging="false"
  8. :keyboard="false"
  9. >
  10. <bm-marker
  11. :position="center"
  12. @click="show = true"
  13. >
  14. <bm-info-window
  15. :show="show"
  16. @open="show = true"
  17. @close="show = false"
  18. >
  19. {{ device.address }}
  20. </bm-info-window>
  21. </bm-marker>
  22. </baidu-map>
  23. </template>
  24. <script>
  25. import BaiduMap from 'vue-baidu-map/components/map/Map.vue'
  26. import BmMarker from 'vue-baidu-map/components/overlays/Marker.vue'
  27. import BmInfoWindow from 'vue-baidu-map/components/overlays/InfoWindow.vue'
  28. export default {
  29. name: 'DeviceMap',
  30. components: {
  31. BaiduMap,
  32. BmMarker,
  33. BmInfoWindow
  34. },
  35. props: {
  36. device: {
  37. type: Object,
  38. required: true
  39. }
  40. },
  41. data () {
  42. return {
  43. ak: process.env.VUE_APP_BAIDU_MAP_AK,
  44. show: false
  45. }
  46. },
  47. computed: {
  48. center () {
  49. const { longitude, latitude } = this.device
  50. return longitude && latitude
  51. ? {
  52. lng: Number(longitude),
  53. lat: Number(latitude)
  54. }
  55. : null
  56. }
  57. }
  58. }
  59. </script>