'a'
mh-two-thousand-and-two
2024-04-12 44d2c92345cd156a59fc327b3060292a282d2893
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<template>
  <div class="uni-map-control">
    <img
      :src="imgPath"
      :style="positionStyle"
      class="uni-map-control-icon"
      @click="handleClick"
    >
  </div>
</template>
 
<script>
import getRealPath from 'uni-platform/helpers/get-real-path'
export default {
  props: {
    id: {
      type: [Number, String],
      default: ''
    },
    position: {
      type: Object,
      required: true
    },
    iconPath: {
      type: String,
      required: true
    },
    clickable: {
      type: Boolean,
      default: false
    }
  },
  computed: {
    imgPath () {
      return getRealPath(this.iconPath)
    },
    positionStyle () {
      let positionStyle = `top:${this.position.top || 0}px;left:${this.position.left || 0}px;`
 
      if (this.position.width) {
        positionStyle += `width:${this.position.width}px;`
      }
      if (this.position.height) {
        positionStyle += `height:${this.position.height}px;`
      }
 
      return positionStyle
    }
  },
  methods: {
    handleClick ($event) {
      if (this.clickable) {
        this.$parent.$trigger('controltap', $event, {
          controlId: this.id
        })
      }
      $event.stopPropagation()
    }
  }
}
</script>
 
<style>
.uni-map-control{
  position:absolute;
  width:0;
  height:0;
  top:0;
  left:0;
  z-index:999;
}
.uni-map-control-icon{
  position:absolute;
  max-width:initial;
}
</style>