chart.vue 2.6 KB

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