cap-column.vue 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <template>
  2. <view class="chart-line">
  3. <canvas canvas-id="column" id="column" class="chart" disable-scroll="true"></canvas>
  4. </view>
  5. </template>
  6. <script>
  7. import uCharts from './js/u-charts.js';
  8. export default {
  9. props: {
  10. unit: String,
  11. color: String,
  12. chartData: Object,
  13. background: String
  14. },
  15. watch: {
  16. chartData() {
  17. this.draw(this.chartData);
  18. }
  19. },
  20. methods: {
  21. draw(data) {
  22. console.log(data, 'data')
  23. this.column = new uCharts({
  24. $this: this, // this
  25. type: 'column', // 类型
  26. canvasId: 'column', // id
  27. width: uni.upx2px(688), // 宽
  28. height: uni.upx2px(567), // 高
  29. fontSize: uni.upx2px(28), // 字体大小
  30. // enableScroll: true, // 是否可以拖拽
  31. // enableMarkLine: true, // 是否显示辅助线
  32. // animation: true, //展示动画
  33. // legend: {
  34. // show: true
  35. // },
  36. extra: {
  37. column: {
  38. width: 20,
  39. barBorderCircle: true
  40. }
  41. },
  42. // dataLabel: false,
  43. // dataPointShape: true, // 是否在图表中显示数据点图形标识
  44. // dataPointShapeType: 'solid', // 数据点图形标识类型 可选值:实心solid、空心hollow
  45. // background: this.background,
  46. categories: data.categories,
  47. series: data.series,
  48. xAxis: {
  49. disableGrid: true,
  50. // type: 'grid',
  51. // itemCount: 5, // X轴可见区域数据数量(即X轴数据密度),配合拖拽滚动使用(即仅在启用enableScroll时有效)
  52. // scrollShow: true, // 是否显示滚动条
  53. // disableGrid: true, // 不绘制 X 轴网格线
  54. // scrollAlign: 'right', // 滚动条起始位置
  55. // fontColor: this.color, // X 轴文字颜色
  56. // scrollColor: this.color, // X轴滚动条颜色
  57. // axisLineColor: '#CCCCCC', // 坐标轴轴线颜色
  58. // scrollBackgroundColor: this.background, // X轴滚动条背景颜色
  59. // disabled: false,
  60. // rotateLabel:true,
  61. },
  62. yAxis: {
  63. // min: 0,
  64. // disabled: false,
  65. // format: val => {
  66. // return val;
  67. // },
  68. // gridColor: '#ccc',
  69. // gridType: 'dash',
  70. max: Math.max.apply(Math, data.series[0].data) + 123,
  71. }
  72. });
  73. },
  74. }
  75. };
  76. </script>
  77. <style lang="scss" scoped>
  78. .chart-line {
  79. width: 100%;
  80. height: 100%;
  81. position: relative;
  82. z-index: 99;
  83. .chart {
  84. width: 100%;
  85. height: 100%;
  86. }
  87. }
  88. </style>