n-safety-monitoring-canva-3.vue 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. <template>
  2. <view>
  3. <view class="title">
  4. <view class="icon">
  5. <image src="./icon/icon_red.png" mode=""></image>
  6. </view>
  7. <view class="text">当前报警</view>
  8. </view>
  9. <scroll-view scroll-x="true" >
  10. <view>
  11. <canvas canvas-id="canvasColumn" id="canvasColumn" @touchstart="touchColumn" style="width: 1400rpx; height:600rpx;"></canvas>
  12. </view>
  13. </scroll-view>
  14. </view>
  15. </template>
  16. <script>
  17. import uCharts from '@/components/u-charts/u-charts.js';
  18. var _self;
  19. var canvaColumn = null;
  20. export default {
  21. data() {
  22. return {
  23. cWidth: '',
  24. cHeight: '',
  25. pixelRatio: 1,
  26. serverData: '',
  27. }
  28. },
  29. mounted() {
  30. _self = this;
  31. this.cWidth = uni.upx2px(1400);
  32. this.cHeight = uni.upx2px(600);
  33. this.getServerData();
  34. },
  35. methods: {
  36. getServerData() {
  37. // let Column = {
  38. // "categories": ["红石湾煤矿", "白芨沟煤矿", "红柳煤矿", "羊场湾一号井", "羊场湾二号井", "灵新煤矿"],
  39. // "series": [{
  40. // "name": "",
  41. // "data": [0,647,386,68,0,1692]
  42. // }]
  43. // };
  44. // _self.showColumn("canvasColumn", Column);
  45. this.$api.jt_safety_alarm_count({
  46. }).then((res)=>{
  47. // console.log(res.data.content.data)
  48. let Column = {
  49. categories: [],
  50. data:[]
  51. }
  52. const categories = res.data.content.data
  53. categories.map(function(item,index){
  54. //新数组的项,用来盛放每一项中的各个参数,每次清空,这样避免改变sevm的值
  55. var sevm = {};
  56. //给每一项中的参数初始化并赋值
  57. sevm = item.mine_name;
  58. //将项放进新的数组
  59. Column.categories[index] = sevm
  60. })
  61. const data = res.data.content.data
  62. data.map(function(item, index) {
  63. //新数组的项,用来盛放每一项中的各个参数,每次清空,这样避免改变sevm的值
  64. var sevm = {};
  65. //给每一项中的参数初始化并赋值
  66. sevm = item.count;
  67. //将项放进新的数组
  68. Column.data[index] = sevm
  69. })
  70. // console.log(Column)
  71. _self.showColumn("canvasColumn", Column);
  72. })
  73. },
  74. showColumn(canvasId, chartData) {
  75. canvaColumn = new uCharts({
  76. $this: _self,
  77. canvasId: canvasId,
  78. type: 'column',
  79. legend: {
  80. show: false
  81. },
  82. fontSize: 11,
  83. background: '#FFFFFF',
  84. pixelRatio: _self.pixelRatio,
  85. animation: true,
  86. categories: chartData.categories,
  87. series: [{
  88. name: '',
  89. data: chartData.data,
  90. }],
  91. xAxis: {
  92. disableGrid: true,
  93. rotateLabel: true,
  94. },
  95. yAxis: {
  96. // disabled:true
  97. },
  98. dataLabel: false,
  99. width: _self.cWidth * _self.pixelRatio,
  100. height: _self.cHeight * _self.pixelRatio,
  101. extra: {
  102. column: {
  103. type: 'group',
  104. width: _self.cWidth * _self.pixelRatio * 0.45 / chartData.categories.length
  105. }
  106. }
  107. });
  108. },
  109. touchColumn(e) {
  110. canvaColumn.showToolTip(e, {
  111. format: function(item, category) {
  112. if (typeof item.data === 'object') {
  113. return category + ' ' + item.name + ':' + item.data.value
  114. } else {
  115. return category + ' ' + item.name + ':' + item.data
  116. }
  117. }
  118. });
  119. },
  120. }
  121. }
  122. </script>
  123. <style lang="scss">
  124. .title {
  125. margin-bottom: 60rpx;
  126. display: flex;
  127. align-items: center;
  128. .icon {
  129. display: flex;
  130. align-items: center;
  131. margin-right: 10rpx;
  132. image{
  133. width: 30rpx;
  134. height: 30rpx;
  135. }
  136. }
  137. .text {}
  138. }
  139. </style>