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
| <template>
| <dv-digital-flop :config="flopConfig" style="width:100%;height:100%;" />
| </template>
|
| <script>
| import {getDataJson, pollingRefresh} from "@/utils/refreshCptData";
|
| export default {
| name: "cpt-dataV-digitalFlop",
| props:{
| width:Number,
| height:Number,
| option:Object
| },
| data(){
| return {
| uuid: null,
| flopConfig: {}
| }
| },
| watch: {
| 'option.attribute': {
| handler() {
| this.loadData();
| },
| deep: true//深度监听
| },
| width(){
| this.loadData();
| }
| },
| created() {
| this.uuid = require('uuid').v1();
| this.refreshCptData();
| },
| methods: {
| refreshCptData() {
| pollingRefresh(this.uuid, this.option.cptDataForm, this.loadData)
| },
| loadData(){
| getDataJson(this.option.cptDataForm).then(res => {
| this.flopConfig = {
| number: res.value.split(',').map(Number),
| content: this.option.attribute.content,
| toFixed: this.option.attribute.toFixedNum,
| textAlign: this.option.attribute.textAlign,
| rowGap: this.option.attribute.rowGap,
| style: this.option.attribute.style
| }
| });
| }
| }
| }
| </script>
|
| <style scoped>
|
| </style>
|
|