index.vue 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  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/016527@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="2854247" :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/016528@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="762084" :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/016529@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="2090736" :duration="2600" class="card-panel-num"/>
  40. </div>
  41. </div>
  42. </el-col>
  43. <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
  44. <div class="card-panel" @click="gotoPage(`/statistics/file`)">
  45. <div class="card-panel-icon-wrapper icon-message">
  46. <el-image src="/images/016530@2x.png" class="card-panel-icon" style="height: 60px"/>
  47. </div>
  48. <div class="card-panel-description">
  49. <div class="card-panel-text">
  50. 境外访客人数
  51. </div>
  52. <count-to :start-val="0" :end-val="4416" :duration="2600" class="card-panel-num"/>
  53. </div>
  54. </div>
  55. </el-col>
  56. </el-row>
  57. <el-row :gutter="40">
  58. <el-col :xs="24" :sm="24" :lg="12">
  59. <div class="bz-card">
  60. <el-card shadow="never">
  61. <div slot="header" class="clearfix">
  62. <span>访客来源省份TOP10</span>
  63. </div>
  64. <div id="chart1" style="height: 200px;width: 100%"></div>
  65. </el-card>
  66. </div>
  67. </el-col>
  68. <el-col :xs="24" :sm="24" :lg="12">
  69. <div class="bz-card">
  70. <el-card shadow="never">
  71. <div slot="header" class="clearfix">
  72. <span>访客来源城市TOP10</span>
  73. </div>
  74. <div id="chart2" style="height: 200px;width: 100%"></div>
  75. </el-card>
  76. </div>
  77. </el-col>
  78. </el-row>
  79. </div>
  80. </template>
  81. <script>
  82. import CountTo from 'vue-count-to'
  83. import * as echarts from 'echarts'
  84. export default {
  85. components: { CountTo },
  86. data() {
  87. return {}
  88. },
  89. computed: {},
  90. created() {
  91. },
  92. mounted() {
  93. const xAxis = []
  94. for (let i = 7; i > 0; i--) {
  95. xAxis.push(this.addDays(new Date(), i * -1))
  96. }
  97. this.buildBar('chart1', xAxis, [{ type: 'line', stack: 'Total', data: [0, 0, 0, 0, 0, 0, 0] }])
  98. this.buildBar('chart2', xAxis, [{ type: 'line', stack: 'Total', data: [0, 0, 0, 0, 0, 0, 0] }])
  99. },
  100. methods: {
  101. addDays(nd, days) {
  102. nd = nd.valueOf()
  103. nd = nd + days * 24 * 60 * 60 * 1000
  104. nd = new Date(nd)
  105. var y = nd.getFullYear()
  106. var m = nd.getMonth() + 1
  107. var d = nd.getDate()
  108. if (m <= 9) m = '0' + m
  109. if (d <= 9) d = '0' + d
  110. return y + '-' + m + '-' + d
  111. },
  112. buildBar(elementId, xAxis, seriesData) {
  113. const chart = echarts.init(document.getElementById(elementId))
  114. chart.setOption({
  115. tooltip: {
  116. trigger: 'axis',
  117. axisPointer: {
  118. type: 'shadow'
  119. }
  120. },
  121. legend: { top: '0', right: '1%' },
  122. grid: { left: 25, right: 0, bottom: 35, top: 25 },
  123. xAxis: { type: 'category', data: xAxis },
  124. yAxis: { type: 'value' },
  125. series: seriesData
  126. })
  127. }
  128. }
  129. }
  130. </script>