pie-echarts.vue 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <template>
  2. <view class="charts-box">
  3. <qiun-data-charts type="ring" :opts="opts" :chartData="chartData" />
  4. </view>
  5. </template>
  6. <script>
  7. export default {
  8. props: {
  9. echartsData: Object
  10. },
  11. data() {
  12. return {
  13. chartData: {},
  14. //您可以通过修改 config-ucharts.js 文件中下标为 ['ring'] 的节点来配置全局默认参数,如都是默认参数,此处可以不传 opts 。实际应用过程中 opts 只需传入与全局默认参数中不一致的【某一个属性】即可实现同类型的图表显示不同的样式,达到页面简洁的需求。
  15. opts: {
  16. rotate: false,
  17. rotateLock: false,
  18. color: ["#1890FF", "#91CB74", "#FAC858", "#EE6666", "#73C0DE", "#3CA272", "#FC8452", "#9A60B4",
  19. "#ea7ccc"
  20. ],
  21. padding: [5, 5, 5, 5],
  22. dataLabel: false,
  23. enableScroll: false,
  24. legend: {
  25. show: true,
  26. position: "left",
  27. lineHeight: 25
  28. },
  29. title: {
  30. name: "",
  31. fontSize: 18,
  32. color: "#666666",
  33. offsetX: -180,
  34. offsetY: -120
  35. },
  36. subtitle: {
  37. name: "",
  38. },
  39. extra: {
  40. ring: {
  41. ringWidth: 60,
  42. activeOpacity: 0.5,
  43. activeRadius: 10,
  44. offsetAngle: 0,
  45. labelWidth: 0,
  46. border: true,
  47. borderWidth: 9,
  48. borderColor: "#FFFFFF"
  49. }
  50. }
  51. }
  52. };
  53. },
  54. mounted() {
  55. this.getServerData();
  56. },
  57. methods: {
  58. getServerData() {
  59. console.log(this.echartsData);
  60. const chartData = this.echartsData.chartItemList
  61. //模拟从服务器获取数据时的延时
  62. setTimeout(() => {
  63. //模拟服务器返回数据,如果数据格式和标准格式不同,需自行按下面的格式拼接
  64. let res = {
  65. series: [{
  66. data: [{
  67. "name": "一班",
  68. "value": 50
  69. }, {
  70. "name": "二班",
  71. "value": 30
  72. }, {
  73. "name": "三班",
  74. "value": 20
  75. }, {
  76. "name": "四班",
  77. "value": 18,
  78. "labelText": "四班:18人"
  79. }, {
  80. "name": "五班",
  81. "value": 8
  82. }]
  83. }]
  84. };
  85. this.chartData = JSON.parse(JSON.stringify(res));
  86. }, 500);
  87. },
  88. }
  89. };
  90. </script>
  91. <style scoped>
  92. /* 请根据实际需求修改父元素尺寸,组件自动识别宽高 */
  93. .charts-box {
  94. width: 100%;
  95. height: 600rpx;
  96. }
  97. </style>