marketing-chart.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8"/>
  5. <meta name="author" content=""/>
  6. <meta name="description" content=""/>
  7. <meta name="keywords" content="扫码支付,线上投币,运营数据,物联网"/>
  8. <meta name="format-detection" content="telephone=no,email=no"/>
  9. <meta name="viewport"
  10. content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"/>
  11. <meta http-equiv="pragma" content="no-cache">
  12. <meta http-equiv="cache-control" content="no-cache">
  13. <meta http-equiv="expires" content="0">
  14. <title>活动效果报表</title>
  15. <link rel="stylesheet" href="https://cdn.washpayer.com/components/lib/mui.min.css"/>
  16. <link rel="stylesheet" href="https://cdn.washpayer.com/components/lib/mui.picker.min.css"/>
  17. <link rel="stylesheet" href="../components/custom/css/common.css"/>
  18. <link rel="stylesheet" href="css/xyf.common.min.css">
  19. <style>
  20. .index-hd .hd-cell {
  21. position: relative;
  22. }
  23. .item-title {
  24. white-space: normal;
  25. }
  26. </style>
  27. </head>
  28. <body class="income-trend">
  29. <div class="mui-table-view mui-reset">
  30. <div class="mui-row">
  31. <div class="mui-col-xs-9 mui-col-sm-9">
  32. <span class="font-b-14-6 filter-blank" id="topTitle">营销活动效果</span>
  33. </div>
  34. <div class="mui-col-xs-3 mui-col-sm-3 mui-text-right">
  35. <div class="filter-btn"><span>筛选</span><i class="iconfont icon-triangle-up"></i></div>
  36. </div>
  37. </div>
  38. </div>
  39. <div class="filter-panel datepickerSelecter" style="display: none" id="options">
  40. <div class="input-group-vertical mui-table-view clear-b-border datepicker">
  41. <div class="mui-button-row">
  42. <button class="mui-btn mui-btn-outlined" range="1">今天</button>
  43. <button class="mui-btn mui-btn-outlined" range="7">近7天</button>
  44. <button class="mui-btn mui-btn-outlined" range="15">近15天</button>
  45. <button class="mui-btn mui-btn-outlined" range="30">近30天</button>
  46. </div>
  47. <div class="or-border-fir mui-input-row input-clear or-order-status select-date" id="start-date">
  48. <label class="or-label-text">开始日期</label>
  49. <span class="mui-icon mui-icon-arrowright"></span>
  50. <span class="or-order-status-font selected-text" id="beginDate"></span>
  51. </div>
  52. <div class=" mui-input-row input-clear or-order-status select-date" id="end-date">
  53. <label class="or-label-text">结束日期</label>
  54. <span class="mui-icon mui-icon-arrowright"></span>
  55. <span class="or-order-status-font selected-text" id="endDate"></span>
  56. </div>
  57. <div class="mui-input-row filter-panel-btn flexbox">
  58. <span class="cancel-btn flex">取消</span>
  59. <span class="ok-btn flex">确定</span>
  60. </div>
  61. </div>
  62. </div>
  63. <div id="pullrefresh" class="mui-content mui-scroll-wrapper" style="margin-top: 44px">
  64. <div class="mui-scroll">
  65. <div class="mui-content ">
  66. <div class="mui-control-content mui-active">
  67. <div class="index-hd">
  68. <i class="iconfont icon-purse purse-logo-back"></i>
  69. <div class="mui-table hd-cell">
  70. <div class="mui-table-cell mui-ellipsis mui-hidden">
  71. <span>领币总数</span><em id="coinsTotal">0</em>个
  72. </div>
  73. <div class="mui-table-cell mui-ellipsis mui-hidden">
  74. <span>总时长</span><em id="durationTotal">0</em>分钟
  75. </div>
  76. <div class="mui-table-cell mui-ellipsis">
  77. <span>总数</span><em id="tableTotal">0</em>
  78. </div>
  79. </div>
  80. </div>
  81. </div>
  82. </div>
  83. <div class="group-wrap mui-table-view"></div>
  84. </div>
  85. </div>
  86. <script type="text/html" id="modal">
  87. <li class="mui-table-view-cell">
  88. <a class="mui-navigate-right-todo" href="#">
  89. <p>
  90. <span class="font-b-14 item-title"></span>
  91. <span class="mui-pull-right font-16"><em class="c-red item-income"></em></span>
  92. </p>
  93. <p><span class="item-time font-12"></span></p></a>
  94. </li>
  95. </script>
  96. <script src="https://cdn.washpayer.com/components/lib/mui.min.js"></script>
  97. <script src="https://cdn.washpayer.com/components/lib/mui.picker.min.js"></script>
  98. <script src="https://cdn.washpayer.com/components/lib/moment.min.js"></script>
  99. <script src="https://cdn.washpayer.com/components/lib/jquery.min.js"></script>
  100. <script src="/components/custom/js/common.js"></script>
  101. <script src="js/xyf.common.js"></script>
  102. <script>
  103. var onsaleId = getQueryString("onsaleId");
  104. var startTime = "";
  105. var endTime = "";
  106. var pageIndex = 0;
  107. var total = 0;
  108. FilterComponent({
  109. ok: function () {
  110. /*合法性验证*/
  111. if (startTime > endTime) {
  112. mui.alert('开始日期不能大于结束日期', '温馨提示', '确定');
  113. return false;
  114. }
  115. pageIndex = 0;
  116. listNowMonth = '';//重置列表当前循环到的月份
  117. setTimeTitle();//显示刚刚选择的时间
  118. mui('#pullrefresh').pullRefresh().refresh(true);//重置上拉加载
  119. $('.group-wrap').empty(); // 清空数据
  120. pullupRefresh();
  121. }
  122. });
  123. function setTimeTitle() {
  124. if (startTime == endTime) {
  125. $("#topTitle").html(startTime + "的效果");
  126. } else {
  127. $("#topTitle").html(startTime + "至" + endTime + "的效果");
  128. }
  129. $('#beginDate').text(startTime);
  130. $('#endDate').text(endTime);
  131. }
  132. function setTimeRange(range) {
  133. endTime = moment().format("YYYY-MM-DD");
  134. if (range && range > 0) {
  135. startTime = moment().add(-(range - 1), "day").format("YYYY-MM-DD");
  136. }
  137. setTimeTitle();
  138. $('.datepicker .mui-button-row button').removeClass('active');
  139. $('.datepicker .mui-button-row button[range=' + range + ']').addClass('active');
  140. }
  141. //日期筛选条件
  142. $(function () {
  143. setTimeRange(30);// 默认为30天
  144. //可选日期范围
  145. var pickerBegin = moment().add(-5, "year").toDate();//控件可选最小时间
  146. var pickerEnd = new Date();//控件可选最大时间
  147. var options = {
  148. type: "date",
  149. beginDate: pickerBegin,
  150. endDate: pickerEnd
  151. };
  152. var startTimeBtn = $('#start-date');
  153. var startTimePicker = new mui.DtPicker(options);
  154. startTimePicker.setSelectedValue(startTime);
  155. startTimeBtn[0].addEventListener('tap', function () {
  156. startTimePicker.show(function (time) {
  157. startTime = time.y.text + '-' + time.m.text + '-' + time.d.text + '';
  158. $('#beginDate').text(startTime);
  159. });
  160. }, false);
  161. var endTimeBtn = $('#end-date');
  162. var endTimePicker = new mui.DtPicker(options);
  163. endTimePicker.setSelectedValue(endTime);
  164. endTimeBtn[0].addEventListener('tap', function () {
  165. endTimePicker.show(function (time) {
  166. endTime = time.y.text + '-' + time.m.text + '-' + time.d.text + '';
  167. $('#endDate').text(endTime);
  168. });
  169. }, false);
  170. $('.datepicker .mui-button-row button').tap(function () {
  171. $(this).addClass('active').siblings().removeClass('active');
  172. var range = $(this).attr('range');
  173. setTimeRange(range);//快速日期选择
  174. startTimePicker.setSelectedValue(startTime);
  175. endTimePicker.setSelectedValue(endTime);
  176. });
  177. });
  178. mui.init({
  179. pullRefresh: {
  180. container: '#pullrefresh',
  181. up: {
  182. contentrefresh: '正在加载...',
  183. contentnomore: '没有更多数据了...',
  184. callback: pullupRefresh
  185. }
  186. }
  187. });
  188. var listNowMonth = "";//列表当前的月份
  189. function pullupRefresh() {
  190. pageIndex++;
  191. var url = "/dealer/getOnsaleRecord";
  192. var data = {
  193. "pageIndex": pageIndex,
  194. "pageSize": 10,
  195. "onsaleId": onsaleId,
  196. "startTime": startTime,
  197. "endTime": endTime,
  198. };
  199. sendRequest({
  200. url: url,
  201. type: "GET",
  202. data: data,
  203. mask: "正在加载数据...",
  204. success: function (res) {
  205. if (res.result == 1) {
  206. if (pageIndex == 1) {
  207. total = res.payload.total;
  208. $("#total").text(total);
  209. if (total == 0) {
  210. $("body").append('<div class="nomore"></div>');
  211. }
  212. var durationTotal = res.payload.countDict.durationTotal;
  213. var coinsTotal = res.payload.countDict.coinsTotal;
  214. if (durationTotal) {
  215. $("#durationTotal").text(durationTotal).parent().removeClass("mui-hidden");
  216. }
  217. if (coinsTotal) {
  218. $("#coinsTotal").text(coinsTotal).parent().removeClass("mui-hidden");
  219. }
  220. $("#tableTotal").text(total);
  221. }
  222. mui('#pullrefresh').pullRefresh().endPullupToRefresh((pageIndex * 10 >= total));
  223. var groupWrap = $('.group-wrap');
  224. var length = res.payload.dataList.length;
  225. if (length == 0) {
  226. var dataDom = '<li class="month-row"><div class="month-text">' + moment(endTime || new Date()).format("YY年MM月") + '</div>' +
  227. '<div class="month-income">无记录</div></li>';
  228. groupWrap.append(dataDom);
  229. }
  230. for (var i = 0; i < length; i++) {
  231. var item = res.payload.dataList[i];
  232. //新的月份准备放在列表中间
  233. var month = moment(item.clickTime).format("YY年MM月");
  234. if (month == listNowMonth) {
  235. //nothing
  236. } else {
  237. listNowMonth = month;
  238. var monthDom = '<li class="month-row"><div class="month-text">' + listNowMonth + '</div><div class="month-income"></div></li>';
  239. //上一个月底部加线条
  240. groupWrap.find(".mui-table-view-cell:last-child").addClass("last-child");
  241. groupWrap.append(monthDom);
  242. }
  243. var html = $($("#modal").html());
  244. html.find(".item-title").text(item.description);
  245. html.find(".item-time").text(item.clickTime);
  246. groupWrap.append(html);
  247. }
  248. } else {
  249. mui.toast(res.description);
  250. }
  251. }
  252. })
  253. }
  254. if (mui.os.plus) {
  255. mui.plusReady(function () {
  256. setTimeout(function () {
  257. mui('#pullrefresh').pullRefresh().pullupLoading();
  258. }, 1000);
  259. });
  260. } else {
  261. mui.ready(function () {
  262. mui('#pullrefresh').pullRefresh().pullupLoading();
  263. });
  264. }
  265. </script>
  266. </body>
  267. </html>