stat.html 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. {extend name="app/shop/view/base.html" /}
  2. {block name="resources"}
  3. <link rel="stylesheet" href="WEAPP_CSS/wx_access_statistics.css">
  4. <script src="WEAPP_JS/echarts.min.js"></script>
  5. {/block}
  6. {block name="main"}
  7. <div class="layui-card card-common card-brief">
  8. <div class="layui-card-header">
  9. <span class="card-title">昨日分析</span>
  10. </div>
  11. <div class="layui-card-body access-statistics">
  12. <ul class="access-api-list">
  13. <li class="access-api-item">
  14. <div class="access-api-item-title">
  15. <h3>打开次数</h3>
  16. </div>
  17. <p class="access-api-itme-content" id="session_cnt">0</p>
  18. </li>
  19. <li class="access-api-item">
  20. <div class="access-api-item-title">
  21. <h3>访问次数/人数</h3>
  22. </div>
  23. <p class="access-api-itme-content" id="visit_pv_visit_uv">0/0</p>
  24. </li>
  25. <li class="access-api-item">
  26. <div class="access-api-item-title">
  27. <h3>新访问用户数</h3>
  28. </div>
  29. <p class="access-api-itme-content" id="visit_uv_new">0</p>
  30. </li>
  31. <li class="access-api-item">
  32. <div class="access-api-item-title">
  33. <h3>人均/次均停留时长(秒)</h3>
  34. </div>
  35. <p class="access-api-itme-content" id="stay_time_uv_stay_time_session">0/0</p>
  36. </li>
  37. </ul>
  38. </div>
  39. </div>
  40. <div class="layui-card card-common card-brief">
  41. <div class="layui-card-header">
  42. <span class="card-title">上月概况</span>
  43. </div>
  44. <div class="layui-card-body access-statistics">
  45. <ul class="access-api-list ">
  46. <li class="access-api-item">
  47. <div class="access-api-item-title">
  48. <h3>打开次数</h3>
  49. </div>
  50. <p class="access-api-itme-content" id="month_session_cnt">0</p>
  51. </li>
  52. <li class="access-api-item">
  53. <div class="access-api-item-title">
  54. <h3>访问次数/人数</h3>
  55. </div>
  56. <p class="access-api-itme-content" id="month_visit_pv_visit_uv">0/0</p>
  57. </li>
  58. <li class="access-api-item">
  59. <div class="access-api-item-title">
  60. <h3>新访问用户数</h3>
  61. </div>
  62. <p class="access-api-itme-content" id="month_visit_uv_new">0</p>
  63. </li>
  64. <li class="access-api-item">
  65. <div class="access-api-item-title">
  66. <h3>人均/次均停留时长(秒)</h3>
  67. </div>
  68. <p class="access-api-itme-content" id="month_stay_time_uv_stay_time_session">0/0</p>
  69. </li>
  70. </ul>
  71. </div>
  72. </div>
  73. <div class="layui-card card-common card-brief">
  74. <div class="layui-card-body access-statistics">
  75. <div class="layui-tab-content-time">
  76. <span>时间</span>
  77. <div class="layui-input-inline daterange-input-wrap">
  78. <input type="text" class="layui-input daterange-input" id="daterange" placeholder=" - ">
  79. </div>
  80. </div>
  81. <div class="info-img">
  82. <div id="main" style="width: 100%;height:400px;"></div>
  83. </div>
  84. </div>
  85. </div>
  86. {/block}
  87. {block name="script"}
  88. <script>
  89. var daterange = '{:date("Y-m-d", strtotime("-6 days"))} 至 {:date("Y-m-d")}';
  90. layui.use('laydate', function(){
  91. var laydate = layui.laydate;
  92. //日期范围
  93. laydate.render({
  94. elem: '#daterange'
  95. ,format: 'yyyy-MM-dd'
  96. ,range: '至'
  97. ,value:daterange //必须遵循format参数设定的格式
  98. ,done: function(value, date, endDate){
  99. daterange = value;
  100. visitStatistics();
  101. }
  102. });
  103. visitData("yesterday");
  104. visitData("month");
  105. visitStatistics();
  106. });
  107. //折线图
  108. var chart = echarts.init(document.getElementById('main'));
  109. //获取微信小程序访问统计数据(按日)
  110. function visitStatistics(){
  111. chart.showLoading();//加载视图
  112. $.ajax({
  113. type: "post",
  114. url: "{:addon_url('weapp://shop/stat/visitStatistics')}",
  115. dataType: "JSON",
  116. data: {daterange : daterange},
  117. success: function (result) {
  118. var chart_data = result.data;
  119. var option = {
  120. legend: {
  121. data:['打开次数','访问次数','访问人数','新用户数','人均停留时长','次均停留时长','平均访问深度'],
  122. x: 'right',
  123. right: '20',
  124. },
  125. tooltip: {
  126. trigger: 'axis'
  127. },
  128. grid: {
  129. left: '20',
  130. right: '20',
  131. bottom: '20',
  132. containLabel: true
  133. },
  134. xAxis: {
  135. type: 'category',
  136. data: chart_data.date
  137. },
  138. yAxis: {
  139. type: 'value'
  140. },
  141. series: [
  142. {
  143. data: chart_data.data.session_cnt_data,
  144. type: 'line',
  145. smooth: true,
  146. name: "打开次数"
  147. },
  148. {
  149. data: chart_data.data.visit_pv_data,
  150. type: 'line',
  151. smooth: true,
  152. name: "访问次数"
  153. },
  154. {
  155. data: chart_data.data.visit_uv_data,
  156. type: 'line',
  157. smooth: true,
  158. name: "访问人数"
  159. },
  160. {
  161. data: chart_data.data.visit_uv_new_data,
  162. type: 'line',
  163. smooth: true,
  164. name: "新用户数"
  165. },
  166. {
  167. data: chart_data.data.stay_time_uv_data,
  168. type: 'line',
  169. smooth: true,
  170. stack: '秒',
  171. name: "人均停留时长"
  172. },
  173. {
  174. data: chart_data.data.stay_time_session_data,
  175. type: 'line',
  176. smooth: true,
  177. stack: '秒',
  178. name: "次均停留时长"
  179. },
  180. {
  181. data: chart_data.data.visit_depth_data,
  182. type: 'line',
  183. smooth: true,
  184. name: "平均访问深度"
  185. },
  186. ]
  187. };
  188. chart.setOption(option);
  189. chart.hideLoading();
  190. }
  191. });
  192. }
  193. /**
  194. *统计数据
  195. */
  196. function visitData(date_type){
  197. $.ajax({
  198. type: "post",
  199. url: "{:addon_url('weapp://shop/stat/visitdata')}",
  200. dataType: "JSON",
  201. data: {date_type : date_type},
  202. success: function (res) {
  203. var data = res.data;
  204. if(data.length > 0){
  205. if(date_type == "month"){
  206. $("#month_session_cnt").text(data.data.session_cnt);
  207. $("#month_visit_pv_visit_uv").text(data.data.visit_pv +"/"+data.data.visit_uv);
  208. $("#month_visit_uv_new").text(data.data.visit_uv_new);
  209. $("#month_stay_time_uv_stay_time_session").text(data.data.stay_time_uv +"/"+data.data.stay_time_session);
  210. }else{
  211. $("#session_cnt").text(data.data.session_cnt);
  212. $("#visit_pv_visit_uv").text(data.data.visit_pv +"/"+data.data.visit_uv);
  213. $("#visit_uv_new").text(data.data.visit_uv_new);
  214. $("#stay_time_uv_stay_time_session").text(data.data.stay_time_uv +"/"+data.data.stay_time_session);
  215. }
  216. }
  217. }
  218. });
  219. }
  220. </script>
  221. {/block}