rose_chart.vue 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. <template>
  2. <view class="charts-box">
  3. <qiun-data-charts canvas2d type="rose" :opts="opts" :chartData="chartData" :errorMessage="errorMessage" />
  4. </view>
  5. </template>
  6. <script>
  7. export default {
  8. data() {
  9. return {
  10. errorMessage: '',
  11. chartData: {},
  12. //这里的 opts 是图表类型 type="rose" 的全部配置参数,您可以将此配置复制到 config-ucharts.js 文件中下标为 ['rose'] 的节点中来覆盖全局默认参数。实际应用过程中 opts 只需传入与全局默认参数中不一致的【某一个属性】即可实现同类型的图表显示不同的样式,达到页面简洁的需求。
  13. opts: {
  14. timing: "easeOut",
  15. duration: 1000,
  16. rotate: false,
  17. rotateLock: false,
  18. color: ["#2C7DF9", "#00BF8A", "#ED9A2C", "#EE6666", "#73C0DE", "#9A60B4", "#FC8452", "#3CA272",
  19. "#ea7ccc"
  20. ],
  21. padding: [5, 5, 5, 5],
  22. fontSize: 13,
  23. fontColor: "#666666",
  24. dataLabel: false,
  25. dataPointShape: true,
  26. dataPointShapeType: "solid",
  27. touchMoveLimit: 60,
  28. enableScroll: false,
  29. enableMarkLine: false,
  30. legend: {
  31. show: false,
  32. position: "left",
  33. lineHeight: 25,
  34. float: "center",
  35. padding: 5,
  36. margin: 5,
  37. backgroundColor: "rgba(0,0,0,0)",
  38. borderColor: "rgba(0,0,0,0)",
  39. borderWidth: 0,
  40. fontSize: 13,
  41. fontColor: "#666666",
  42. hiddenColor: "#CECECE",
  43. itemGap: 10
  44. },
  45. extra: {
  46. rose: {
  47. type: "area",
  48. minRadius: 40,
  49. activeOpacity: 0.5,
  50. activeRadius: 10,
  51. offsetAngle: -180,
  52. labelWidth: 15,
  53. border: true,
  54. borderWidth: 4,
  55. borderColor: "#FFFFFF",
  56. linearType: "none"
  57. },
  58. tooltip: {
  59. showBox: true,
  60. showArrow: true,
  61. showCategory: false,
  62. borderWidth: 0,
  63. borderRadius: 5,
  64. borderColor: "#000000",
  65. borderOpacity: 0.7,
  66. bgColor: "#000000",
  67. bgOpacity: 0.7,
  68. gridType: "solid",
  69. dashLength: 4,
  70. gridColor: "#CCCCCC",
  71. boxPadding: 3,
  72. fontSize: 13,
  73. lineHeight: 20,
  74. fontColor: "#FFFFFF",
  75. legendShow: true,
  76. legendShape: "auto",
  77. splitLine: true,
  78. horizentalLine: false,
  79. xAxisLabel: false,
  80. yAxisLabel: false,
  81. labelBgColor: "#FFFFFF",
  82. labelBgOpacity: 0.7,
  83. labelFontColor: "#666666"
  84. }
  85. }
  86. }
  87. };
  88. },
  89. onReady() {
  90. // this.getServerData();
  91. },
  92. methods: {
  93. getServerData() {
  94. //模拟从服务器获取数据时的延时
  95. // setTimeout(() => {
  96. // //模拟服务器返回数据,如果数据格式和标准格式不同,需自行按下面的格式拼接
  97. // let res = {
  98. // series: [{
  99. // data: [{
  100. // "name": "一班",
  101. // "value": 50
  102. // }, {
  103. // "name": "二班",
  104. // "value": 30
  105. // }, {
  106. // "name": "三班",
  107. // "value": 20
  108. // }, {
  109. // "name": "四班",
  110. // "value": 18
  111. // }, {
  112. // "name": "五班",
  113. // "value": 8
  114. // }, {
  115. // "name": "五班",
  116. // "value": 8
  117. // }]
  118. // }]
  119. // };
  120. // this.chartData = JSON.parse(JSON.stringify(res));
  121. // }, 500);
  122. },
  123. setNoData() {
  124. //设置空数据模板
  125. this.errorMessage = '暂无数据'
  126. this.chartData = {}
  127. },
  128. setServerData(data) {
  129. setTimeout(() => {
  130. //模拟服务器返回数据,如果数据格式和标准格式不同,需自行按下面的格式拼接
  131. let res = {
  132. series: [{
  133. data: data
  134. }]
  135. };
  136. this.chartData = JSON.parse(JSON.stringify(res));
  137. }, 50);
  138. }
  139. }
  140. };
  141. </script>
  142. <style scoped>
  143. /* 请根据实际需求修改父元素尺寸,组件自动识别宽高 */
  144. .charts-box {
  145. width: 220rpx;
  146. height: 220rpx;
  147. }
  148. </style>