total.js 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  1. layui.use(['table', 'jquery', 'madmin', 'mhttp', 'layer', 'form', 'common', 'laydate'], function () {
  2. let table = layui.table;
  3. let $ = layui.jquery;
  4. let admin = layui.madmin;
  5. let layer = layui.layer;
  6. let form = layui.form;
  7. let laydate = layui.laydate;
  8. admin.getConfig();
  9. let authInfo = JSON.parse(localStorage.getItem(window._AUTH_INFO_));
  10. let authInfoDeductionSwitch = authInfo.detail.deduction_switch;
  11. laydate.render({
  12. elem: '#start_date',
  13. type: 'datetime',
  14. format: "yyyy-MM-dd HH:mm:ss"
  15. });
  16. laydate.render({
  17. elem: '#end_date',
  18. type: 'datetime',
  19. format: "yyyy-MM-dd HH:mm:ss"
  20. });
  21. let beginTime = null;
  22. if (GetQueryString('start_date')) {
  23. beginTime = GetQueryString('start_date');
  24. }
  25. let endTime = null;
  26. if (GetQueryString('end_date')) {
  27. endTime = GetQueryString('end_date');
  28. }
  29. let mom_app_uid = null;
  30. if (GetQueryString('mom_app_uid')) {
  31. mom_app_uid = GetQueryString('mom_app_uid');
  32. }
  33. let agent_uid = null;
  34. if (GetQueryString('agent_uid')) {
  35. agent_uid = GetQueryString('agent_uid');
  36. }
  37. form.on('submit(search-query)', function (data) {
  38. if (data.field.start_date !== '' || data.field.end_date !== '') {
  39. if (!data.field.start_date || !data.field.end_date) {
  40. layer.msg('请核对开始时间与结束时间!');
  41. return false;
  42. }
  43. let beginTime = new Date(data.field.start_date);
  44. let endTime = new Date(data.field.end_date);
  45. if (beginTime > endTime) {
  46. layer.msg('开始时间不能大于结束时间!');
  47. return false;
  48. }
  49. }
  50. });
  51. // 查询数据
  52. if (beginTime) {
  53. beginTime = beginTime.replace('+', ' ');
  54. }
  55. if (endTime) {
  56. endTime = endTime.replace('+', ' ');
  57. }
  58. $('#start_date').val(beginTime);
  59. $('#end_date').val(endTime);
  60. let getUrl = '';
  61. let cols = [];
  62. let search = {};
  63. if (authInfoDeductionSwitch === 2) {
  64. // cpa
  65. search = httpRequestPostData({
  66. start_date: beginTime,
  67. end_date: endTime,
  68. mom_app_uid: mom_app_uid,
  69. agent_uid: agent_uid,
  70. });
  71. cols = [
  72. [
  73. {
  74. title: '代理名称',
  75. field: 'agent_nick',
  76. align: 'center',
  77. },
  78. {
  79. title: '代理UID',
  80. field: 'agent_uid',
  81. align: 'center',
  82. },
  83. {
  84. title: '应用名称',
  85. field: 'app_name',
  86. align: 'center',
  87. },
  88. {
  89. title: '下载量',
  90. field: 'total',
  91. align: 'center',
  92. },
  93. {
  94. title: '代理等级',
  95. field: 'total',
  96. align: 'center',
  97. templet: function (d) {
  98. if (authInfo.detail.agent_level === d.agent_level) {
  99. return '本级代理';
  100. }
  101. return '子级代理';
  102. }
  103. },
  104. {
  105. title: '记录时间',
  106. field: 'created_at',
  107. align: 'center'
  108. }
  109. ]
  110. ];
  111. getUrl = '/total/cpa/lists';
  112. } else {
  113. // 其他的
  114. search = httpRequestPostData({
  115. start_date: beginTime,
  116. end_date: endTime
  117. });
  118. getUrl = '/total/lists';
  119. cols = [
  120. [
  121. {
  122. title: '日期',
  123. field: 'td_date',
  124. align: 'center'
  125. },
  126. {
  127. title: '用户抽成',
  128. field: 'user_commission_money',
  129. align: 'center'
  130. },
  131. {
  132. title: '下级抽成',
  133. field: 'child_commission_money',
  134. align: 'center'
  135. },
  136. {
  137. title: '下载量',
  138. field: 'users_deduction',
  139. align: 'center'
  140. },
  141. {
  142. title: '合计抽成',
  143. field: 'total_commission_money',
  144. align: 'center'
  145. }
  146. ]
  147. ];
  148. }
  149. // cpa添加的搜索
  150. function cpaSearch(data) {
  151. let html = '<div class="layui-form-item layui-inline"><label class="layui-form-label">应用</label><div class="layui-input-inline input-narrow"><select name="mom_app_uid" lay-search><option value=""></option>';
  152. // 应用
  153. for (let index in data.app_list) {
  154. let item = data.app_list[index];
  155. html += '<option class="app_' + item.uid + '" ' + (mom_app_uid === item.uid ? "selected" : "") + ' value="' + item.uid + '">' + item.name + '</option>';
  156. }
  157. html += '</select></div></div>';
  158. // 代理
  159. html += '<div class="layui-form-item layui-inline"><label class="layui-form-label">代理</label><div class="layui-input-inline input-narrow"><select name="agent_uid" lay-search><option value=""></option>';
  160. for (let index in data.agent_list) {
  161. let item = data.agent_list[index];
  162. let agent_level = '';
  163. if (authInfo.detail.agent_level === item.agent_level) {
  164. agent_level = '本级代理';
  165. } else {
  166. agent_level = '子级代理';
  167. }
  168. html += '<option ' + (agent_uid === item.uid ? "selected" : "") + ' class="agent_' + item.uid + '" value="' + item.uid + '">' + item.nick + ' (' + agent_level + ')</option>';
  169. }
  170. html += '</select></div></div>';
  171. $('#searchAdd').append(html);
  172. form.render();
  173. }
  174. table.render({
  175. elem: '#total-table',
  176. method: 'POST',
  177. request: {
  178. pageName: 'page',
  179. limitName: 'page_size'
  180. },
  181. where: search,
  182. async: false,
  183. headers: {
  184. "AUTH-TOKEN": localStorage.getItem('XSRF-TOKEN')
  185. },
  186. contentType: 'application/json',
  187. url: getMyApiUrl(getUrl),
  188. limit: 20,
  189. limits: [20, 30, 40, 50, 80, 100],
  190. parseData: function (res) {
  191. serviceLink = res.data.service_link;
  192. data_list = res.data.data_list;
  193. // cpa 数据处理
  194. if (authInfoDeductionSwitch === 2) {
  195. // cpa 要的搜索
  196. cpaSearch(res.data);
  197. let total = 0;
  198. if (res.data.total) {
  199. total = res.data.total;
  200. }
  201. return {
  202. "code": res.code,
  203. "msg": res.message,
  204. "data": res.data.data_list,
  205. "count": total
  206. };
  207. } else {
  208. return httpRequestPagesParseData(res);
  209. }
  210. },
  211. response: {
  212. "statusCode": 200,
  213. },
  214. done: function (data, page, total) {
  215. var intCode = parseInt(data.code);
  216. if (intCode === 403) {
  217. cbRespnseRedirectLogin(data);
  218. } else if (intCode === 401) {
  219. // 仅仅是过期了,这里可以有其他逻辑补偿.
  220. // 暂时跳到登陆页面
  221. cbRespnse401(data);
  222. }
  223. onloadRender();
  224. },
  225. error: function (obj, message) {
  226. cbRespnseReloadPage(obj, message);
  227. },
  228. page: true,
  229. cols: cols,
  230. skin: 'line',
  231. toolbar: '#total-toolbar'
  232. });
  233. $('.reset').click(function () {
  234. if (mom_app_uid) {
  235. $('.app_' + mom_app_uid).removeAttr('selected')
  236. }
  237. if (agent_uid) {
  238. $('.agent_' + agent_uid).removeAttr('selected')
  239. }
  240. form.render();
  241. });
  242. });