card.html 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343
  1. {template 'common/header'}
  2. <ul class="nav nav-tabs">
  3. <li {if $do == 'manage'} class="active"{/if}><a href="{php echo url('mc/card/manage');}">会员卡管理</a></li>
  4. {if $do == 'record'}<li class="active"><a href="{php echo url('mc/card/manage');}">消费记录</a></li>{/if}
  5. </ul>
  6. {if ($do == 'manage') && ($setting['status'] == 1)}
  7. <style>
  8. .label{line-height: 2}
  9. .danger{position: relative}
  10. </style>
  11. <div class="panel panel-info">
  12. <div class="panel-heading">筛选</div>
  13. <div class="panel-body">
  14. <form action="./index.php" method="get" class="form-horizontal" role="form" id="form">
  15. <input type="hidden" name="c" value="mc">
  16. <input type="hidden" name="a" value="card">
  17. <input type="hidden" name="do" value="manage">
  18. <input type="hidden" name="token" value="{$_W['token']}">
  19. <input type="hidden" name="status" value="{$status}">
  20. <input type="hidden" name="num" value="{$num}">
  21. <input type="hidden" name="endtime" value="{$endtime}">
  22. <div class="form-group">
  23. <label class="col-xs-12 col-sm-3 col-md-2 control-label">使用状态</label>
  24. <div class="col-sm-8 col-xs-12">
  25. <div class="btn-group">
  26. <a href="{php echo filter_url('status:-1');}" class="btn {if $status == '-1'}btn-primary{else}btn-default{/if}">不限</a>
  27. <a href="{php echo filter_url('status:1');}" class="btn {if $status == 1}btn-primary{else}btn-default{/if}">启用</a>
  28. <a href="{php echo filter_url('status:0');}" class="btn {if $status == 0}btn-primary{else}btn-default{/if}">禁用</a>
  29. </div>
  30. </div>
  31. </div>
  32. {if $setting['nums_status'] == 1}
  33. <div class="form-group">
  34. <label class="col-xs-12 col-sm-3 col-md-2 control-label">{$setting['nums_text']}</label>
  35. <div class="col-sm-8 col-xs-12">
  36. <div class="btn-group">
  37. <a href="{php echo filter_url('num:-1');}" class="btn {if $num == -1}btn-primary{else}btn-default{/if}">不限</a>
  38. <a href="{php echo filter_url('num:1');}" class="btn {if $num == 1}btn-primary{else}btn-default{/if}">未用完</a>
  39. <a href="{php echo filter_url('num:0');}" class="btn {if $num == 0}btn-primary{else}btn-default{/if}">已用完</a>
  40. </div>
  41. </div>
  42. </div>
  43. {/if}
  44. {if $setting['nums_status'] == 1}
  45. <div class="form-group">
  46. <label class="col-xs-12 col-sm-3 col-md-2 control-label">{$setting['times_text']}</label>
  47. <div class="col-sm-8 col-xs-12">
  48. <div class="btn-group">
  49. <a href="{php echo filter_url('endtime:-1');}" class="btn {if $endtime == -1}btn-primary{else}btn-default{/if}">不限</a>
  50. <a href="{php echo filter_url('endtime:0');}" class="btn {if $endtime == 0}btn-primary{else}btn-default{/if}">已到期</a>
  51. <a href="{php echo filter_url('endtime:7');}" class="btn {if $endtime == 7}btn-primary{else}btn-default{/if}">7天内到期</a>
  52. <a href="{php echo filter_url('endtime:14');}" class="btn {if $endtime == 14}btn-primary{else}btn-default{/if}">半月内到期</a>
  53. <a href="{php echo filter_url('endtime:30');}" class="btn {if $endtime == 30}btn-primary{else}btn-default{/if}">一月内到期</a>
  54. <a href="{php echo filter_url('endtime:90');}" class="btn {if $endtime == 90}btn-primary{else}btn-default{/if}">三月内到期</a>
  55. </div>
  56. </div>
  57. </div>
  58. {/if}
  59. <div class="form-group">
  60. <label class="col-xs-12 col-sm-3 col-md-2 control-label">卡号</label>
  61. <div class="col-sm-8 col-xs-12">
  62. <input type="text" class="form-control" name="cardsn" value="{$_GPC['cardsn']}" />
  63. </div>
  64. </div>
  65. <div class="form-group">
  66. <label class="col-xs-12 col-sm-3 col-md-2 control-label">姓名/手机号</label>
  67. <div class="col-sm-8 col-xs-12">
  68. <input type="text" class="form-control" name="keyword" value="{$_GPC['keyword']}" />
  69. </div>
  70. <div class="pull-right col-xs-12 col-sm-3 col-md-2 col-lg-2">
  71. <button class="btn btn-default"><i class="fa fa-search"></i> 搜索</button>
  72. </div>
  73. </div>
  74. </form>
  75. </div>
  76. </div>
  77. <div class="panel panel-default">
  78. <div class="panel-body table-responsive">
  79. <table class="table table-hover">
  80. <thead>
  81. <tr>
  82. <th width="150">卡号/所属用户组</th>
  83. <th width="150">姓名/手机号</th>
  84. <th width="150">积分/余额</th>
  85. {if $setting['nums_status'] == 1}
  86. <th width="80">{$setting['nums_text']}</th>
  87. {/if}
  88. {if $setting['times_status'] == 1}
  89. <th width="150">{$setting['times_text']}</th>
  90. {/if}
  91. <th width="150">领卡时间</th>
  92. <th width="140">是否开启</th>
  93. <th width="250" class="text-right">操作</th>
  94. </tr>
  95. </thead>
  96. {loop $list $row}
  97. <tr {if $row['is_birth'] == 1}class="danger"{/if}>
  98. <td>
  99. {$row['cardsn']}<br>
  100. {$_W['account']['groups'][$row['groupid']]['title']}
  101. </td>
  102. <td>
  103. {$row['realname']}
  104. <br>
  105. {$row['mobile']}
  106. </td>
  107. <td>
  108. <span class="label label-default">积分:{$row['credit1']}</span>
  109. <br>
  110. <span class="label label-info">余额:{$row['credit2']}</span>
  111. </td>
  112. {if $setting['nums_status'] == 1}
  113. <td>
  114. {if !$row['nums']}
  115. <span class="label label-danger">已用完</span>
  116. {else}
  117. <span class="label label-success">{$row['nums']}次</span>
  118. {/if}
  119. </td>
  120. {/if}
  121. {if $setting['times_status'] == 1}
  122. <td>
  123. {if $row['endtime'] < time()}
  124. <span class="label label-danger">{php echo date('Y-m-d', $row['endtime']);} 已到期</span>
  125. {else}
  126. <span class="label label-success">{php echo date('Y-m-d', $row['endtime']);}</span>
  127. {/if}
  128. </td>
  129. {/if}
  130. <td>{php echo date('Y-m-d H:i', $row['createtime']);}</td>
  131. <td class="switch">
  132. <input type="checkbox" value="1" {if intval($row['status'])==1} checked="checked" {/if} data="{$row['id']}"/>
  133. </td>
  134. <td class="text-right">
  135. <div class="btn-group" style="margin-bottom: 5px">
  136. <a href="javascript:;" title="改卡号" class="btn btn-default modal-trade-cardsn" data-type="cardsn" data-uid="{$row['uid']}">改卡号</a>
  137. <a href="javascript:;" title="积分" class="btn btn-default modal-trade-credit1" data-type="credit1" data-uid="{$row['uid']}">积分</a>
  138. <a href="javascript:;" title="余额" class="btn btn-default modal-trade-credit2" data-type="credit2" data-uid="{$row['uid']}">余额</a>
  139. <a href="javascript:;" title="消费" class="btn btn-default modal-trade-consume" data-type="consume" data-uid="{$row['uid']}">消费</a>
  140. </div>
  141. <br>
  142. <div class="btn-group">
  143. <a class="btn btn-default" href="{php echo url('mc/card/delete', array('cardid' => $row['id']));}" onclick="return confirm('此操作不可恢复,确认删除?');return false;">删除</a>
  144. <a class="btn btn-default" href="{php echo url('mc/card/record', array('uid' => $row['uid']));}">消费记录</a>
  145. {if $setting['times_status'] == 1 || $setting['nums_status'] == 1}
  146. <a class="btn btn-warning manage" href="javascript:;" data-uid="{$row['uid']}">充值/消费</a>
  147. {/if}
  148. </div>
  149. </td>
  150. </tr>
  151. {/loop}
  152. </table>
  153. </div>
  154. </div>
  155. {$pager}
  156. <div class="modal fade" id="manage-modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
  157. <div class="modal-dialog" role="document">
  158. <div class="modal-content">
  159. <div class="modal-header">
  160. <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  161. <ul class="nav nav-pills">
  162. {if $setting['nums_status'] == 1}
  163. <li role="presentation" data-id="nums_plus" class="active"><a href="#nums_plus" aria-controls="home" role="tab" data-toggle="tab">{$setting['nums_text']}充值</a></li>
  164. <li role="presentation" data-id="nums_times"><a href="#nums_times" aria-controls="profile" role="tab" data-toggle="tab">{$setting['nums_text']}消费</a></li>
  165. {/if}
  166. {if $setting['times_status'] == 1}
  167. <li role="presentation" data-id="times_plus"><a href="#times_plus" aria-controls="messages" role="tab" data-toggle="tab">{$setting['times_text']}充值</a></li>
  168. <li role="presentation" data-id="times_times"><a href="#times_times" aria-controls="messages" role="tab" data-toggle="tab">{$setting['times_text']}消费</a></li>
  169. {/if}
  170. </ul>
  171. </div>
  172. <div class="modal-body">
  173. </div>
  174. <div class="modal-footer">
  175. <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
  176. <button type="button" class="btn btn-primary">提交</button>
  177. </div>
  178. </div>
  179. </div>
  180. </div>
  181. <script type="text/javascript">
  182. require(['bootstrap.switch', 'util', 'trade'], function($, u, trade){
  183. trade.init();
  184. {if $setting['times_status'] == 1 || $setting['nums_status'] == 1}
  185. $('.manage').click(function(){
  186. var uid = $(this).data('uid');
  187. $.post("{php echo url('mc/card/modal');}", {'uid':uid}, function(data){
  188. if(data != 'error') {
  189. $('#manage-modal .modal-body').html(data);
  190. $('#manage-modal').modal('show');
  191. $('#manage-modal .btn-primary').unbind('click');
  192. $('#manage-modal .btn-primary').click(function(){
  193. var id = $('#manage-modal .modal-header li.active').data('id');
  194. $('#manage-modal #' + id + '>form').submit();
  195. return false;
  196. });
  197. } else {
  198. u.message('系统出错', '', 'error');
  199. return false;
  200. }
  201. });
  202. });
  203. {/if}
  204. $('.switch :checkbox').bootstrapSwitch();
  205. $('.switch :checkbox').on('switchChange.bootstrapSwitch', function(e, state){
  206. $this = $(this);
  207. var cardid = $this.attr('data');
  208. var status = this.checked ? 1 : 0;
  209. $.post(location.href, {cardid:cardid, status:status}, function(resp){
  210. if(resp != 'success') {
  211. util.message('操作失败, 请稍后重试.')
  212. }
  213. {if !empty($module)}
  214. else {
  215. window.setTimeout(function(){location.href = location.href;}, 300);
  216. }
  217. {else}
  218. if (status == 1) {
  219. $this.parent().parent().parent().prev().html('<span class="label label-success">可用</span>');
  220. } else {
  221. $this.parent().parent().parent().prev().html('<span class="label label-warning">禁用</span>');
  222. }
  223. {/if}
  224. });
  225. });
  226. });
  227. </script>
  228. {/if}
  229. {if $do == 'record'}
  230. <div class="panel panel-info">
  231. <div class="panel-heading">筛选</div>
  232. <div class="panel-body">
  233. <form action="./index.php" method="get" class="form-horizontal" role="form" id="form1">
  234. <input type="hidden" name="c" value="mc">
  235. <input type="hidden" name="a" value="card">
  236. <input type="hidden" name="do" value="record">
  237. <input type="hidden" name="type" value="{$type}">
  238. <input type="hidden" name="uid" value="{$uid}">
  239. <div class="form-group">
  240. <label class="col-xs-12 col-sm-3 col-md-2 control-label">类型</label>
  241. <div class="col-sm-8 col-xs-12">
  242. <div class="btn-group">
  243. <a href="{php echo filter_url('type:');}" class="btn {if $type == ''}btn-primary{else}btn-default{/if}">不限</a>
  244. {if $setting['nums_status'] == 1}
  245. <a href="{php echo filter_url('type:nums');}" class="btn {if $type == 'nums'}btn-primary{else}btn-default{/if}">{$setting['nums_text']}</a>
  246. {/if}
  247. {if $setting['times_status'] == 1}
  248. <a href="{php echo filter_url('type:times');}" class="btn {if $type == 'times'}btn-primary{else}btn-default{/if}">{$setting['times_text']}</a>
  249. {/if}
  250. <a href="{php echo url('stat/credit1',array('uid' => $_GPC['uid']));}" target="_blank" class="btn btn-default">积分消费记录</a>
  251. <a href="{php echo url('stat/credit2',array('uid' => $_GPC['uid']));}" target="_blank" class="btn btn-default">余额消费记录</a>
  252. <a href="{php echo url('stat/cash',array('uid' => $_GPC['uid']));}" target="_blank" class="btn btn-default">现金消费记录</a>
  253. </div>
  254. </div>
  255. </div>
  256. <div class="form-group">
  257. <label class="col-xs-12 col-sm-3 col-md-2 control-label">时间</label>
  258. <div class="col-sm-8 col-xs-12">
  259. {php echo tpl_form_field_daterange('endtime', array('start' => date('Y-m-d', $starttime), 'end' => date('Y-m-d', $endtime)));}
  260. </div>
  261. </div>
  262. </form>
  263. </div>
  264. </div>
  265. <div class="alert alert-warning">
  266. <i class="fa fa-info-circle"></i>
  267. {if $setting['nums_status'] == 1}{$setting['nums_text']}剩余:<strong>{$card['nums']}次</strong>{/if}
  268. {if $setting['times_status'] == 1}{$setting['times_text']}:<strong>{php echo date('Y-m-d', $card['endtime']);}到期</strong>{/if}
  269. </div>
  270. <div class="panel panel-default">
  271. <div class="panel-body table-responsive">
  272. <table class="table table-hover">
  273. <thead class="navbar-inner">
  274. <tr>
  275. <th>类型</th>
  276. <th>充值/消费</th>
  277. <th width="500">详情</th>
  278. <th width="250">备注</th>
  279. <th>时间</th>
  280. </tr>
  281. </thead>
  282. {loop $list $row}
  283. <tr>
  284. <td>
  285. {if $row['type'] == 'nums'}
  286. <span class="label label-default">{$setting['nums_text']}</span>
  287. {else}
  288. <span class="label label-info">{$setting['times_text']}</span>
  289. {/if}
  290. </td>
  291. <td>
  292. {if $row['type'] == 'nums'}
  293. {if $row['model'] == 1}
  294. <span class="label label-success">充值{$row['tag']}次</span>
  295. {else}
  296. <span class="label label-danger">消费{$row['tag']}次</span>
  297. {/if}
  298. {else}
  299. {if $row['model'] == 1}
  300. <span class="label label-success">服务延长{$row['tag']}天</span>
  301. {else}
  302. <span class="label label-danger">服务减少{$row['tag']}天</span>
  303. {/if}
  304. {/if}
  305. <br>
  306. <span class="label label-warning" style="line-height:2.5">收费{$row['fee']}元</span>
  307. </td>
  308. <td>
  309. <span style="cursor:pointer" data-toggle="popover" data-placement="bottom" data-content="{$row['note']}">{php echo cutstr($row['note'], 45);}</span>
  310. </td>
  311. <td>
  312. <span style="cursor:pointer" data-toggle="popover" data-placement="bottom" data-content="{$row['remark']}">{php echo cutstr($row['remark'], 30);}</span>
  313. </td>
  314. <td>{php echo date('Y-m-d H:i', $row['addtime']);}</td>
  315. </tr>
  316. {/loop}
  317. </table>
  318. </div>
  319. </div>
  320. {$pager}
  321. <script>
  322. require(['bootstrap'],function($){
  323. $('.daterange').on('apply.daterangepicker', function(ev, picker) {
  324. $('#form1')[0].submit();
  325. });
  326. $('[data-toggle="popover"]').hover(function(){
  327. $(this).popover('show');
  328. }, function(){
  329. $(this).popover('hide');
  330. });
  331. });
  332. </script>
  333. {/if}
  334. {template 'common/footer'}