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
| <script setup>
| import { ref } from "vue";
| const colors = ['#0f0', '#f00'];
|
| const props = defineProps({
| r: {
| type: [Number, String],
| default: 6,
| },
| offset: {
| type: Array,
| default: () => [0, 0],
| },
| text: {
| type: String,
| default: 'Text',
| },
| fontSize: {
| type: [Number, String],
| default: 16,
| },
| color: {
| type: String,
| default: "#fff",
| },
| // 状态 0正常 1故障
| status: {
| type: Number,
| default: 0,
| },
|
| });
| </script>
|
| <template>
| <g ref="g" :transform="'translate(' + offset.join(',') + ')'">
| <circle
| :cx="r"
| :cy="r"
| :r="r"
| :stroke="status ? colors[1] : colors[0]"
| stroke-width="2"
| :fill="status ? colors[1] : 'none'"
| />
| <text
| :x="r * 2 + fontSize"
| :y="r"
| :dy="fontSize/2.6"
| :fill="color"
| text-anchor="start"
| :font-size="fontSize"
| >{{ text }}</text
| >
| </g>
| </template>
|
| <style scoped lang="less"></style>
|
|