index.vue 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. <template>
  2. <div class="app-container">
  3. <el-row :gutter="40" class="panel-group">
  4. <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
  5. <div class="card-panel" @click="gotoPage(`/api/docs`)">
  6. <div class="card-panel-icon-wrapper icon-people">
  7. <el-image src="/images/016537@2x.png" class="card-panel-icon" style="height: 60px"/>
  8. </div>
  9. <div class="card-panel-description">
  10. <div class="card-panel-text">
  11. 月消费总额(元)
  12. </div>
  13. <count-to :start-val="0" :end-val="78956" :duration="2600" class="card-panel-num"/>
  14. </div>
  15. </div>
  16. </el-col>
  17. <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
  18. <div class="card-panel" @click="gotoPage(`/appKey/index`)">
  19. <div class="card-panel-icon-wrapper icon-message">
  20. <el-image src="/images/016535@2x.png" class="card-panel-icon" style="height: 60px"/>
  21. </div>
  22. <div class="card-panel-description">
  23. <div class="card-panel-text">
  24. 月消费次数
  25. </div>
  26. <count-to :start-val="0" :end-val="15462" :duration="2600" class="card-panel-num"/>
  27. </div>
  28. </div>
  29. </el-col>
  30. <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
  31. <div class="card-panel" @click="gotoPage(`/place/baseInfo`)">
  32. <div class="card-panel-icon-wrapper icon-message">
  33. <el-image src="/images/016536@2x.png" class="card-panel-icon" style="height: 60px"/>
  34. </div>
  35. <div class="card-panel-description">
  36. <div class="card-panel-text">
  37. 人均消费(元)
  38. </div>
  39. <count-to :start-val="0" :end-val="2036" :duration="2600" class="card-panel-num"/>
  40. </div>
  41. </div>
  42. </el-col>
  43. </el-row>
  44. <el-row :gutter="40">
  45. <el-col :xs="24" :sm="24" :lg="8">
  46. <div class="bz-card">
  47. <el-card shadow="never">
  48. <div slot="header" class="clearfix">
  49. <span>消费监测</span>
  50. </div>
  51. <div id="chart1" style="height: 150px;width: 100%"></div>
  52. </el-card>
  53. </div>
  54. </el-col>
  55. <el-col :xs="24" :sm="24" :lg="8">
  56. <div class="bz-card">
  57. <el-card shadow="never">
  58. <div slot="header" class="clearfix">
  59. <span>舆情监测</span>
  60. </div>
  61. <div id="chart2" style="height: 150px;width: 100%"></div>
  62. </el-card>
  63. </div>
  64. </el-col>
  65. <el-col :xs="24" :sm="24" :lg="8">
  66. <div class="bz-card">
  67. <el-card shadow="never">
  68. <div slot="header" class="clearfix">
  69. <span>应急指挥调度</span>
  70. </div>
  71. <div id="chart3" style="height: 150px;width: 100%"></div>
  72. </el-card>
  73. </div>
  74. </el-col>
  75. </el-row>
  76. <div style="height: 32px"/>
  77. <div class="bz-card">
  78. <el-card shadow="never">
  79. <div slot="header" class="clearfix">
  80. <span>消费监测</span>
  81. </div>
  82. <div id="chart4" style="height: 150px;width: 100%"></div>
  83. </el-card>
  84. </div>
  85. </div>
  86. </template>
  87. <script>
  88. import CountTo from 'vue-count-to'
  89. import * as echarts from 'echarts'
  90. export default {
  91. components: { CountTo },
  92. data() {
  93. return {}
  94. },
  95. computed: {},
  96. created() {
  97. },
  98. mounted() {
  99. const xAxis = []
  100. for (let i = 7; i > 0; i--) {
  101. console.log(this.addDays(new Date(), i * -1))
  102. xAxis.push(this.addDays(new Date(), i * -1))
  103. }
  104. this.buildBar('chart1', xAxis, [{ type: 'line', stack: 'Total', data: [0, 0, 0, 0, 0, 0, 0] }])
  105. this.buildBar('chart2', xAxis, [{ type: 'line', stack: 'Total', data: [0, 0, 0, 0, 0, 0, 0] }])
  106. this.buildBar('chart3', xAxis, [{ type: 'line', stack: 'Total', data: [0, 0, 0, 0, 0, 0, 0] }])
  107. this.buildBar('chart4', xAxis, [{ type: 'line', stack: 'Total', data: [0, 0, 0, 0, 0, 0, 0] }])
  108. },
  109. methods: {
  110. addDays(nd, days) {
  111. nd = nd.valueOf()
  112. nd = nd + days * 24 * 60 * 60 * 1000
  113. nd = new Date(nd)
  114. var y = nd.getFullYear()
  115. var m = nd.getMonth() + 1
  116. var d = nd.getDate()
  117. if (m <= 9) m = '0' + m
  118. if (d <= 9) d = '0' + d
  119. return y + '-' + m + '-' + d
  120. },
  121. buildBar(elementId, xAxis, seriesData) {
  122. const chart = echarts.init(document.getElementById(elementId))
  123. chart.setOption({
  124. tooltip: {
  125. trigger: 'axis',
  126. axisPointer: {
  127. type: 'shadow'
  128. }
  129. },
  130. legend: { top: '0', right: '1%' },
  131. grid: { left: 25, right: 0, bottom: 35, top: 25 },
  132. xAxis: { type: 'category', data: xAxis },
  133. yAxis: { type: 'value' },
  134. series: seriesData
  135. })
  136. }
  137. }
  138. }
  139. </script>