p-production-statistics-section-3.vue 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <template>
  2. <view>
  3. <canvas canvas-id="canvasColumnStack" id="canvasColumnStack" @touchstart="touchColumn" style="width: 700rpx; height: 800rpx;"></canvas>
  4. </view>
  5. </template>
  6. <script>
  7. import uCharts from '@/components/u-charts/u-charts.js';
  8. var _self;
  9. var canvaColumn = null;
  10. export default {
  11. data() {
  12. return {
  13. cWidth: '',
  14. cHeight: '',
  15. pixelRatio: 1,
  16. serverData: '',
  17. };
  18. },
  19. mounted() {
  20. _self = this;
  21. this.cWidth = uni.upx2px(700);
  22. this.cHeight = uni.upx2px(780);
  23. this.getServerData();
  24. },
  25. methods: {
  26. getServerData() {
  27. this.$p_api.coalmine_trend({
  28. }).then((res)=>{
  29. // console.log(res.data.data)
  30. let ColumnStack={
  31. categories:[],
  32. series:[
  33. {
  34. "name": "早班",
  35. "data": []
  36. },
  37. {
  38. "name": "中班",
  39. "data": []
  40. },
  41. {
  42. "name": "晚班",
  43. "data": []
  44. }
  45. ],
  46. };
  47. res.data.data.map((item,index)=>{
  48. var sevm = {};
  49. sevm = item.date;
  50. ColumnStack.categories[index] = sevm
  51. })
  52. res.data.data.map((item,index)=>{
  53. var sevm = {};
  54. sevm = item.n1;
  55. ColumnStack.series[0].data[index] = sevm
  56. })
  57. res.data.data.map((item,index)=>{
  58. var sevm = {};
  59. sevm = item.n2;
  60. ColumnStack.series[1].data[index] = sevm
  61. })
  62. res.data.data.map((item,index)=>{
  63. var sevm = {};
  64. sevm = item.n3;
  65. ColumnStack.series[2].data[index] = sevm
  66. })
  67. _self.showColumnStack("canvasColumnStack", ColumnStack);
  68. })
  69. },
  70. showColumnStack(canvasId, chartData) {
  71. canvaColumn = new uCharts({
  72. $this: _self,
  73. canvasId: canvasId,
  74. type: 'column',
  75. legend: {
  76. show: true,
  77. position: 'top',
  78. itemGap: 30,
  79. },
  80. fontSize: 11,
  81. background: '#FFFFFF',
  82. pixelRatio: _self.pixelRatio,
  83. animation: true,
  84. categories: chartData.categories,
  85. series: chartData.series,
  86. xAxis: {
  87. disableGrid: true,
  88. },
  89. yAxis: {
  90. //disabled:true
  91. },
  92. dataLabel: false,
  93. width: _self.cWidth * _self.pixelRatio,
  94. height: _self.cHeight * _self.pixelRatio,
  95. extra: {
  96. column: {
  97. type: 'stack',
  98. width: _self.cWidth * _self.pixelRatio * 0.5 / chartData.categories.length
  99. }
  100. }
  101. });
  102. },
  103. touchColumn(e) {
  104. canvaColumn.showToolTip(e, {
  105. format: function(item, category) {
  106. // return category + ' ' + item.name + ':' + item.data
  107. return item.name + ':' + item.data
  108. }
  109. });
  110. },
  111. }
  112. }
  113. </script>
  114. <style lang="scss">
  115. </style>