环体
1 <template> 2 <div :id="id" class="bar_canvas" style="z-index: 10" /> 3 </template> 4 5 <script> 6 // 如果提示缺少依赖,在package.json增加"highcharts": "^9.1.2",重新install一下就可以 7 import Highcharts from 'highcharts/highstock' 8 import HighchartsMore from 'highcharts/highcharts-more' 9 import HighchartsDrilldown from 'highcharts/modules/drilldown' 10 import Highcharts3D from 'highcharts/highcharts-3d' 11 12 HighchartsMore(Highcharts) 13 HighchartsDrilldown(Highcharts) 14 Highcharts3D(Highcharts) 15 export default { 16 props: ['id'], 17 data() { 18 return { 19 chart: null, 20 propData: { 21 chart: { 22 backgroundColor: '#fff', 23 type: 'pie', 24 options3d: { 25 enabled: true, 26 alpha: 50 27 } 28 }, 29 title: { 30 text: '' 31 }, 32 credits: { 33 enabled: false //不显示 34 }, 35 subtitle: { 36 text: '' 37 }, 38 plotOptions: { 39 pie: { 40 innerSize: 220, 41 depth: 45,//厚度 42 size: 310, // 大小 43 showInLegend: true, 44 selected: true, // 选中项 45 sliced: true, 46 center: ['32%', '46%'], 47 dataLabels: { 48 enabled: false, 49 color: '#fff', 50 format: 51 '<b style="font-weight: normal;font-size: 14px;">{point.name}</b>:<br/><span style="font-weight: normal;color: {point.color};font-size: 14px;"> {point.y}个 {point.percentage:.1f}% </span>', 52 // style: { 53 // color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black' 54 // }, 55 connectorColor: 'rgba(255, 255, 255, 0.3)', 56 distance: 30 // 控制饼图外面的线的长短,为负数时文本内容在饼图内部 57 }, 58 slicedOffset: 20, // 突出间距 59 point: { 60 events: { 61 mouseOver: function() { 62 this.slice() 63 }, 64 mouseOut: function() { 65 this.slice() 66 }, 67 click: function() { 68 return false 69 } 70 } 71 } 72 } 73 }, 74 tooltip: { 75 enabled: true, 76 borderColor: '#fff', 77 color: '#606266', 78 headerFormat: '<span></span>', 79 pointFormat: 80 '<span>{point.name}:</span><b>{point.percentage:.2f}%</b>' 81 }, 82 colors: [ 83 'rgba(38, 142, 246,0.8)', 84 'rgba(253, 177, 70,0.8)' 85 ], 86 // 顶部 87 legend: { 88 accessibility: { 89 enabled: false, 90 keyboardNavigation: { 91 enabled: true 92 } 93 }, 94 credits: { 95 enabled: false // 不显示LOGO 96 }, 97 enabled: false, 98 layout: 'horizontal', 99 verticalAlign: 'bottom', // 纵向的位置 100 align: 'center', 101 // symbolWidth: 8, 102 y: 15, 103 itemWidth: 0, 104 itemDistance: 0, 105 itemStyle: { 106 color: '#fff', 107 fontWeight: 'normal' 108 }, 109 navigation: { 110 enabled: false 111 } 112 }, 113 series: [ 114 { 115 type: 'pie', 116 name: '指标数', 117 cursor: 'pointer', 118 data: [ 119 { 120 name: '成果规范性审查', 121 y: 5921, 122 h: 20, 123 bfb: 0 124 }, 125 { 126 name: '成果技术性审查', 127 y: 921, 128 h: 100, 129 bfb: 0 130 } 131 /* ['创新', 10], 132 ['协调', 3] */ 133 ] 134 } 135 ] 136 } 137 } 138 }, 139 watch: { 140 propData: { 141 handler(newV, oldV) { 142 if (this.id) { 143 this.chart = new Highcharts.Chart(this.id, this.propData) 144 } 145 }, 146 deep: true 147 } 148 }, 149 mounted() { 150 setTimeout(() => { 151 if (this.id) { 152 this.chart = new Highcharts.Chart(this.id, this.propData) 153 } 154 }) 155 }, 156 methods: { 157 refresh() { 158 this.chart.redraw(false) 159 } 160 } 161 } 162 </script> 163 164 <style lang="scss" scoped> 165 .bar_canvas { 166 width: 100%; 167 height: 100%; 168 } 169 /deep/ .highcharts-container { 170 z-index: 10 !important; 171 } 172 </style>