user-healthy.vue 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. <template>
  2. <view class="content">
  3. <scroll-view v-if="true" scroll-y class="data_body" :style="{height:scrollHeight}">
  4. <!--数据进度条-->
  5. <view class="progress">
  6. <data-progress :progressList="userHealthyLineBar" :borderRadius="20" padMiddle="true"></data-progress>
  7. </view>
  8. <view class="split_line"></view>
  9. <!-- 新增小程序会员趋势-->
  10. <view class="friend_operate">
  11. <text-block :content="baseData"></text-block>
  12. <view class="trend_title">新增小程序会员趋势</view>
  13. <view class="charts-box">
  14. <qiun-data-charts
  15. type="mix"
  16. canvasId="three_a"
  17. :canvas2d="isCanvas2d"
  18. :reshow="delayload"
  19. :opts="{yAxis:{data:[{position: 'left',title: '销售额/万',max:userTrand?userTrand.yAxis[0].max:0,min:userTrand?userTrand.yAxis[0].min:0},{position: 'right',title: '',max:userTrand?userTrand.yAxis[1].max:0,min:userTrand?userTrand.yAxis[1].min:0,unit:'%'}]}}"
  20. :chartData="userTrand"/>
  21. </view>
  22. </view>
  23. <view class="split_line"></view>
  24. <!-- 会员扫码率趋势-->
  25. <view class="friend_operate">
  26. <text-block :content="scanTrand"></text-block>
  27. <view class="trend_title">会员扫码率趋势</view>
  28. <view class="charts-box">
  29. <qiun-data-charts
  30. type="mix"
  31. canvasId="three_b"
  32. :canvas2d="isCanvas2d"
  33. :reshow="delayload"
  34. :opts="{yAxis:{data:[{position: 'left',title: '',max:scanTrandPrecent?scanTrandPrecent.yAxis[0].max:0,min:scanTrandPrecent?scanTrandPrecent.yAxis[0].min:0,unit:'%'}]}}"
  35. :chartData="scanTrandPrecent"/>
  36. </view>
  37. </view>
  38. <view class="split_line"></view>
  39. <!-- 小程序活跃会员占比-->
  40. <view class="friend_operate">
  41. <text-block :content="miniActive"></text-block>
  42. <view class="charts-box">
  43. <qiun-data-charts
  44. type="mix"
  45. canvasId="three_c"
  46. :canvas2d="isCanvas2d"
  47. :reshow="delayload"
  48. :opts="{yAxis:{data:[{position: 'left',title: '销售额/万',max:miniActivePrecent?miniActivePrecent.yAxis[0].max:0,min:miniActivePrecent?miniActivePrecent.yAxis[0].min:0},{position: 'right',title: '',max:miniActivePrecent?miniActivePrecent.yAxis[1].max:0,min:miniActivePrecent?miniActivePrecent.yAxis[1].min:0,unit:'%'}]}}"
  49. :chartData="miniActivePrecent"
  50. />
  51. </view>
  52. </view>
  53. </scroll-view>
  54. <view v-else class="container padding_stand-big normal_color">
  55. <li class="iconfont icon-cry cry"></li>暂无数据
  56. </view>
  57. </view>
  58. </template>
  59. <script>
  60. import DataProgress from "../data-progress/data-progress.vue"
  61. import userHealthyLineBar from '../../static/json/user-healthy/1.json';
  62. import baseData from '../../static/json/user-healthy/2.json';
  63. import userTrand from '../../static/json/user-healthy/3.json';
  64. import scanTrand from '../../static/json/user-healthy/4.json';
  65. import scanTrandPrecent from '../../static/json/user-healthy/5.json';
  66. import miniActive from '../../static/json/user-healthy/6.json';
  67. import miniActivePrecent from '../../static/json/user-healthy/7.json';
  68. import Config from '../../static/js/config'
  69. var _self;
  70. export default {
  71. name:'user-healthy',
  72. props: {
  73. scrollHeight:{
  74. type:String,
  75. default:"600px"
  76. }
  77. },
  78. components:{
  79. DataProgress
  80. },
  81. data() {
  82. return {
  83. userHealthyLineBar,
  84. baseData,
  85. userTrand,
  86. scanTrand,
  87. scanTrandPrecent,
  88. miniActive,
  89. miniActivePrecent,
  90. delayload:false,
  91. isCanvas2d:Config.ISCANVAS2D,
  92. }
  93. },
  94. mounted() {
  95. this.getData();
  96. },
  97. methods:{
  98. async getData(){
  99. uni.showLoading();
  100. await setTimeout(() => {
  101. this.delayload = true;
  102. uni.hideLoading();
  103. }, 1000)
  104. }
  105. }
  106. }
  107. </script>
  108. <style scoped lang="less">
  109. .content{
  110. padding-top: 10rpx;
  111. .progress,.firend_operate{
  112. padding: 0 10rpx;
  113. }
  114. .progress{
  115. margin-bottom: 20rpx;
  116. }
  117. .friend_operate{
  118. padding: 30rpx 10rpx;
  119. .title{
  120. text-align:left;
  121. margin-bottom: 20rpx;
  122. }
  123. .trend_title{
  124. text-align: right;
  125. font-size: 22rpx;
  126. color: #ff9900;
  127. margin-top: 20rpx;
  128. }
  129. }
  130. }
  131. </style>