balance.html 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. {extend name="base"/}
  2. {block name="resources"}
  3. <style>
  4. /* 提示弹出框 */
  5. .card-common:first-of-type{margin-top: 0;}
  6. .layui-card-body{display: flex;padding-bottom: 0 !important;padding-right: 50px !important;padding-left: 50px !important;flex-wrap: wrap;}
  7. .layui-card-body .content{width: 50%;display: flex;flex-direction: column;margin-bottom: 30px;justify-content: center;}
  8. .layui-card-body .content .title{color: #909399;font-size: 14px;}
  9. .layui-card-body .money{color: #303133;font-size: 26px;margin-top: 10px;max-width: 250px;}
  10. .layui-card-body .bottom-title{color: #909399;font-size: 14px;margin-top: 5px;}
  11. .layui-laydate-content tr{border: none;}
  12. .layui-table-body .layui-none{height: 56px;line-height: 56px;padding: 0;}
  13. .table-bottom .layui-table-page {position: inherit;text-align: right}
  14. .table-tab .layui-tab-content{margin-bottom: 0;}
  15. .screen {margin-top: 15px}
  16. .table-title {cursor: pointer}
  17. .layui-layout-admin.admin-style-2 .screen{margin-bottom: 15px;}
  18. .layui-layout-admin.admin-style-2 .layui-form-item .layui-input-inline{background-color: #fff;}
  19. </style>
  20. {/block}
  21. {block name="main"}
  22. <div class="layui-card card-common card-brief">
  23. <div class="layui-card-header">
  24. <div>
  25. <span class="card-title">余额概况</span>
  26. </div>
  27. </div>
  28. <div class="layui-card-body">
  29. <div class="content">
  30. <p class="title">总余额</p>
  31. <p class="money">{$total_balance + $total_balance_money}</p>
  32. <p class="bottom-title">
  33. <span>现金余额:{$total_balance_money}</span>
  34. <span>储值余额:{$total_balance}</span>
  35. </p>
  36. </div>
  37. <div class="content">
  38. <p class="title">累计消费余额</p>
  39. <p class="money">{$total_consume_money}</p>
  40. <p class="bottom-title">
  41. <span>&nbsp;</span>
  42. <span>&nbsp;</span>
  43. </p>
  44. </div>
  45. </div>
  46. </div>
  47. <div class="screen layui-collapse" lay-filter="selection_panel">
  48. <div class="layui-colla-item">
  49. <form class="layui-colla-content layui-form layui-show">
  50. <div class="layui-form-item">
  51. <div class="layui-inline">
  52. <label class="layui-form-label">昵称/手机号</label>
  53. <div class="layui-input-inline">
  54. <input type="text" name="search_text" placeholder="请输入会员昵称/手机号" autocomplete="off" class="layui-input">
  55. </div>
  56. </div>
  57. <div class="layui-inline">
  58. <label class="layui-form-label">发生方式</label>
  59. <div class="layui-input-inline">
  60. <select name="from_type">
  61. <option value="">全部</option>
  62. {foreach $from_type as $k => $val}
  63. <option value="{$k}">{$val.type_name}</option>
  64. {/foreach}
  65. </select>
  66. </div>
  67. </div>
  68. </div>
  69. <div class="layui-form-item">
  70. <div class="layui-inline">
  71. <label class="layui-form-label">发生时间</label>
  72. <div class="layui-input-inline">
  73. <input type="text" class="layui-input" name="start_time" placeholder="开始时间" id="start_time" readonly>
  74. <i class=" iconrili iconfont calendar"></i>
  75. </div>
  76. <div class="layui-form-mid">-</div>
  77. <div class="layui-input-inline">
  78. <input type="text" class="layui-input" name="end_time" placeholder="结束时间" id="end_time" readonly>
  79. <i class=" iconrili iconfont calendar"></i>
  80. </div>
  81. <button class="layui-btn layui-btn-primary date-picker-btn date-picker-btn-seven" onclick="datePick(7, this);return false;">近7天</button>
  82. <button class="layui-btn layui-btn-primary date-picker-btn date-picker-btn-thirty" onclick="datePick(30, this);return false;">近30天</button>
  83. </div>
  84. </div>
  85. <div class="form-row">
  86. <button class="layui-btn" lay-submit="" id="search" lay-filter="search">筛选</button>
  87. </div>
  88. </form>
  89. </div>
  90. </div>
  91. <table id="account_detail" lay-filter="account_detail"></table>
  92. {/block}
  93. {block name="script"}
  94. <script type="text/html" id="memberInfo">
  95. <div class='table-title'>
  96. <div class='title-pic'>
  97. <img layer-src src="{{ns.img(d.headimg)}}" onerror="this.src = '{:img('public/static/img/default_img/head.png')}' ">
  98. </div>
  99. <div class='title-content' onclick="location.href = ns.url('shop/member/editmember?member_id={{d.member_id}}')">
  100. <p class="layui-elip">{{d.nickname}}</p>
  101. <p class="layui-elip">{{d.mobile}}</p>
  102. </div>
  103. </div>
  104. </script>
  105. <script>
  106. var form, laydate;
  107. layui.use(['laydate','form', 'element'], function(){
  108. form = layui.form;
  109. laydate = layui.laydate;
  110. form.on('submit(search)', function(data) {
  111. if ($('#start_time').val() != '' && $('#end_time').val() != '' && (new Date($('#end_time').val()).getTime() <= new Date($('#start_time').val()).getTime() )) {
  112. layer.msg('结束时间不能小于开始时间');
  113. return false;
  114. }
  115. data.field.account_type = 'balance,balance_money';
  116. table.reload({
  117. page: {
  118. curr: 1
  119. },
  120. where: data.field
  121. });
  122. return false;
  123. });
  124. laydate.render({
  125. elem: '#start_time',
  126. type: 'datetime',
  127. max: 0,
  128. change: function(value, date, endDate){
  129. $(".date-picker-btn").removeClass("selected");
  130. }
  131. });
  132. laydate.render({
  133. elem: '#end_time',
  134. type: 'datetime',
  135. max: 0,
  136. change: function(value, date, endDate){
  137. $(".date-picker-btn").removeClass("selected");
  138. }
  139. });
  140. table = new Table({
  141. elem: '#account_detail',
  142. url: ns.url("shop/memberaccount/accountdetail"),
  143. where: {
  144. account_type: 'balance,balance_money'
  145. },
  146. cols: [
  147. [{
  148. templet: '#memberInfo',
  149. title: '会员信息',
  150. width: '20%',
  151. unresize: 'false'
  152. }, {
  153. title: '金额变化',
  154. width: '10%',
  155. unresize: 'false',
  156. align: 'right',
  157. templet: function (d) {
  158. if (d.account_data > 0) return '+' + parseFloat(d.account_data).toFixed(2);
  159. return parseFloat(d.account_data).toFixed(2);
  160. }
  161. }, {
  162. title: '账户类型',
  163. width: '10%',
  164. unresize: 'false',
  165. templet: function (data) {
  166. return data.account_type == 'balance' ? '储值余额' : '现金余额';
  167. }
  168. }, {
  169. field: 'type_name',
  170. title: '发生方式',
  171. width: '15%',
  172. unresize: 'false'
  173. }, {
  174. field: 'create_time',
  175. title: '发生时间',
  176. width: '20%',
  177. unresize: 'false',
  178. templet: function(data) {
  179. return ns.time_to_date(data.create_time);
  180. }
  181. }, {
  182. field: 'remark',
  183. title: '备注',
  184. width: '25%',
  185. unresize: 'false'
  186. }]
  187. ]
  188. });
  189. })
  190. /**
  191. * 七天时间
  192. */
  193. function datePick(date_num,event_obj){
  194. $(".date-picker-btn").removeClass("selected");
  195. $(event_obj).addClass('selected');
  196. // alert(new Date().format("yyyy-MM-dd hh:mm"));
  197. var now_date = new Date();
  198. Date.prototype.Format = function (fmt,date_num) { //author: meizz
  199. this.setDate(this.getDate()-date_num);
  200. var o = {
  201. "M+": this.getMonth() + 1, //月份
  202. "d+": this.getDate(), //日
  203. "H+": this.getHours(), //小时
  204. "m+": this.getMinutes(), //分
  205. "s+": this.getSeconds(), //秒
  206. "q+": Math.floor((this.getMonth() + 3) / 3), //季度
  207. "S": this.getMilliseconds() //毫秒
  208. };
  209. if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
  210. for (var k in o)
  211. if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
  212. return fmt;
  213. };
  214. // var now_time = new Date().Format("yyyy-MM-dd HH:mm:ss",0);//当前日期
  215. var now_time = new Date().Format("yyyy-MM-dd 23:59:59",0);//当前日期
  216. var before_time = new Date().Format("yyyy-MM-dd 00:00:00",date_num-1);//前几天日期
  217. $("input[name=start_time]").val(before_time,0);
  218. $("input[name=end_time]").val(now_time,date_num-1);
  219. }
  220. </script>
  221. {/block}