rose_chart.vue 3.8 KB

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