todayData.vue 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. <template>
  2. <p class="title">今日数据 <label style="color: #909399; margin-left: 50px;">注: 以下数据为当日所有小程序的累计数据,如需查看各个小程序数据,可前往<span @click="go2tj" style="color: #29d;">数据统计</span>进行查看</label></p>
  3. <div class="data-line">
  4. <div class="box-card">
  5. <el-tooltip placement="top">
  6. <template #content> 新增用户的定义:不在其他推广链接染色时间范围内且被成功绑定到当前链接的用户,即为当前链接对应优化师的新增用户<br /> </template>
  7. <el-icon>
  8. <InfoFilled />
  9. </el-icon>
  10. </el-tooltip>
  11. <label class="text-sm">新增用户:</label>
  12. <p class="text-base">{{ todayChargeData.new_user_num || '0' }}</p>
  13. </div>
  14. <div class="box-card">
  15. <el-tooltip placement="top">
  16. <template #content> 新增用户中今日充值的人数<br /> </template>
  17. <el-icon>
  18. <InfoFilled />
  19. </el-icon>
  20. </el-tooltip>
  21. <label class="text-sm">新增用户充值人数:</label>
  22. <p class="text-base">{{ todayChargeData.new_user_recharge_num || '0' }}</p>
  23. <p class="text-pt">普通:{{ todayChargeData.new_user_recharge_coin_num || '0' }}</p>
  24. <p class="text-pt">会员:{{ todayChargeData.new_user_recharge_vip_num || '0' }}</p>
  25. </div>
  26. <div class="box-card">
  27. <el-tooltip placement="top">
  28. <template #content> 新用户充值人数/新增用户<br /> </template>
  29. <el-icon>
  30. <InfoFilled />
  31. </el-icon>
  32. </el-tooltip>
  33. <label class="text-sm">新增用户付费率:</label>
  34. <p class="text-base">{{ todayChargeData.new_user_recharge_rate || '0' }}</p>
  35. </div>
  36. <div class="box-card">
  37. <el-tooltip placement="top">
  38. <template #content> 当日新增用户的充值总额<br /> </template>
  39. <el-icon>
  40. <InfoFilled />
  41. </el-icon>
  42. </el-tooltip>
  43. <label class="text-sm">新增用户充值金额:</label>
  44. <p class="text-base">{{ todayChargeData.new_user_recharge_total || '0' }}</p>
  45. <p class="text-pt">普通:{{ todayChargeData.new_user_recharge_coin_total || '0' }}</p>
  46. <p class="text-pt">会员:{{ todayChargeData.new_user_recharge_coin_total || '0' }}</p>
  47. </div>
  48. <div class="box-card">
  49. <el-tooltip placement="top">
  50. <template #content> 新用户充值总额/新用户充值人数<br /> </template>
  51. <el-icon>
  52. <InfoFilled />
  53. </el-icon>
  54. </el-tooltip>
  55. <label class="text-sm">新增用户人均充值:</label>
  56. <p class="text-base">{{ todayChargeData.new_user_mean || '0' }}</p>
  57. </div>
  58. <div class="box-card">
  59. <el-tooltip placement="top">
  60. <template #content> 当日累计充值总金额<br /> </template>
  61. <el-icon>
  62. <InfoFilled />
  63. </el-icon>
  64. </el-tooltip>
  65. <label class="text-sm">充值金额:</label>
  66. <p class="text-base">{{ todayChargeData.recharge_total || '0' }}</p>
  67. <p class="text-pt">普通:{{ todayChargeData.recharge_coin_total || '0' }}</p>
  68. <p class="text-pt">会员:{{ todayChargeData.recharge_coin_total || '0' }}</p>
  69. </div>
  70. <div class="box-card">
  71. <el-tooltip placement="top">
  72. <template #content> 当日累计充值笔数<br /> </template>
  73. <el-icon>
  74. <InfoFilled />
  75. </el-icon>
  76. </el-tooltip>
  77. <label class="text-sm">充值笔数:</label>
  78. <p class="text-base">{{ todayChargeData.recharge_num || '0' }}</p>
  79. </div>
  80. <div class="box-card">
  81. <el-tooltip placement="top">
  82. <template #content> 充值金额/充值笔数<br /> </template>
  83. <el-icon>
  84. <InfoFilled />
  85. </el-icon>
  86. </el-tooltip>
  87. <label class="text-sm">充值单价:</label>
  88. <p class="text-base">{{ todayChargeData.recharge_mean || '0' }}</p>
  89. </div>
  90. </div>
  91. </template>
  92. <script lang="ts" setup>
  93. import { checkPermission } from '@/directives/permission';
  94. import { InfoFilled } from '@element-plus/icons-vue';
  95. import Cache from '@/support/cache';
  96. import { statisticHomeTodayData } from '@/api/dataStatistics/userStatistics';
  97. import router from '@/router';
  98. const todayChargeData = ref({});
  99. const miniprogram_idJ = ref(0);
  100. const init = () => {
  101. statisticHomeTodayData({ miniprogram_id: miniprogram_idJ.value }).then(
  102. res => {
  103. todayChargeData.value = res.data;
  104. }
  105. );
  106. };
  107. onMounted(() => {
  108. if (JSON.parse(Cache.get('nav_data'))?.app.id) {
  109. miniprogram_idJ.value = JSON.parse(Cache.get('nav_data'))?.app.id;
  110. }
  111. init();
  112. });
  113. const go2tj=()=>{
  114. router.push({ path: "/statistic/userStatistical" });
  115. }
  116. </script>
  117. <style>
  118. .data-line{
  119. display: flex; /* flex布局 */
  120. justify-content: space-between; /* 左对齐 */
  121. flex-wrap: wrap; /* 换行 */
  122. }
  123. .title{
  124. margin-left: 15px;
  125. }
  126. .box-card{
  127. margin-top: 20px;
  128. border-radius: 10px;
  129. margin-right: 10px;
  130. background-color: cornsilk;
  131. padding:15px 20px;
  132. height: 200px;
  133. width: calc((100% - 60px) / 4);
  134. justify-content: flex-start;
  135. }
  136. .box-card:nth-of-type(4n+0) {
  137. margin-right: 0;
  138. }
  139. .text-sm{
  140. }
  141. .text-base{
  142. font-size:40px;
  143. margin: 20px 0px;
  144. }
  145. .text-pt{
  146. font-size:10px;
  147. margin-top: 15px;
  148. }
  149. </style>