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
| <template>
| <dv-active-ring-chart :key="refreshFlagKey" :config="config" style="width:100%;height:100%" />
| </template>
|
| <script>
| import {getDataJson, pollingRefresh} from "@/utils/refreshCptData";
|
| export default {
| name: "cpt-dataV-activeRing",
| props:{
| width:Number,
| height:Number,
| option:Object
| },
| watch: {
| 'option.attribute': {
| handler() {
| this.loadData();
| },
| deep: true//深度监听
| },
| width(){
| this.refreshFlagKey = require('uuid').v1();
| },
| height(){
| this.refreshFlagKey = require('uuid').v1();
| }
| },
| data(){
| return {
| uuid:null,
| config:{},
| refreshFlagKey:null,
| }
| },
| created() {
| this.uuid = require('uuid').v1();
| this.refreshCptData();
| },
| methods:{
| refreshCptData(){
| pollingRefresh(this.uuid, this.option.cptDataForm, this.loadData);
| this.refreshFlagKey = require('uuid').v1();
| },
| loadData(){
| getDataJson(this.option.cptDataForm).then(res => {
| this.config = JSON.parse(JSON.stringify(this.option.attribute))
| this.config.data = res;
| });
| }
| }
| }
| </script>
|
| <style scoped>
|
| </style>
|
|