index.vue 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <template>
  2. <view>
  3. <view v-if="echartsType==='pie'">
  4. <view class="title" v-if="echartsData">
  5. {{echartsData.chartName}}
  6. </view>
  7. <pieEcharts :echartsData="echartsData" />
  8. </view>
  9. <view v-if="echartsType==='bar'">
  10. <view class="title" v-if="echartsData">
  11. {{echartsData.chartName}}
  12. </view>
  13. <barEcharts :echartsData="echartsData" />
  14. </view>
  15. <view v-if="echartsType==='line'">
  16. <view class="title" v-if="echartsData">
  17. {{echartsData.chartName}}
  18. </view>
  19. <lineEcharts :echartsData="echartsData" v-if="echartsData" />
  20. </view>
  21. <u-empty text="暂无数据" icon="../../static/data.png" v-if="!echartsData"></u-empty>
  22. </view>
  23. </template>
  24. <script>
  25. import lineEcharts from '../../components/ecahrts/line-echarts.vue'
  26. import pieEcharts from '../../components/ecahrts/pie-echarts.vue'
  27. import barEcharts from '../../components/ecahrts/bar-echarts.vue'
  28. export default {
  29. components: {
  30. lineEcharts,
  31. pieEcharts,
  32. barEcharts
  33. },
  34. data() {
  35. return {
  36. queryParams: {
  37. page: 1,
  38. limit: 999
  39. },
  40. //图表数据
  41. echartsData: null,
  42. //图表类型
  43. echartsType: null
  44. }
  45. },
  46. onShow() {
  47. this.temperature()
  48. },
  49. methods: {
  50. //用户图表数据
  51. temperature() {
  52. uni.$http.get('/chart/getAllOkChart', this.queryParams).then(res => {
  53. const data = res.data
  54. if (data.code === 200) {
  55. this.getChartData(data.data.reportTableList[0].id)
  56. }
  57. })
  58. },
  59. getChartData(id) {
  60. uni.$http.get('/chart/getChartById', {
  61. id: id
  62. }).then(res => {
  63. const data = res.data
  64. if (data.code === 200) {
  65. this.echartsData = data.data
  66. this.echartsType = data.data.chartType
  67. }
  68. })
  69. }
  70. }
  71. };
  72. </script>
  73. <style scoped>
  74. .title {
  75. margin-left: 24rpx;
  76. font-size: 36rpx;
  77. color: #666666;
  78. }
  79. </style>