market.html 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433
  1. {template 'common/header'}
  2. <ul class="nav nav-tabs">
  3. <li {if $do == 'list'}class="active"{/if}><a href="{php echo url('activity/market/list', array());}">卡券活动列表</a></li>
  4. <li {if $do == 'post' && !$id}class="active"{/if}><a href="{php echo url('activity/market/post', array());}">添加活动</a></li>
  5. {if $do == 'post' && $id}<li class="active"><a href="{php echo url('activity/market/post', array('id' => $id))}">查看活动</a></li>{/if}
  6. </ul>
  7. {if $do == 'list'}
  8. <div class="main">
  9. <div class="panel panel-info">
  10. <div class="panel-heading">筛选</div>
  11. <div class="panel-body">
  12. <form action="./index.php" method="get" class="form-horizontal" role="form">
  13. <input type="hidden" name="c" value="activity" />
  14. <input type="hidden" name="a" value="market" />
  15. <input type="hidden" name="do" value="{$do}" />
  16. <div class="form-group">
  17. <label class="col-xs-12 col-sm-2 col-md-2 col-lg-2 control-label">活动名称</label>
  18. <div class="col-sm-7 col-lg-8 col-xs-12">
  19. <input class="form-control" name="title" type="text" value="{$_GPC['title']}">
  20. </div>
  21. <div class="pull-right col-lg-2">
  22. <input type="submit" name="submit" class="btn btn-default" value="搜索">
  23. <input type="hidden" name="token" value="{$_W['token']}">
  24. </div>
  25. </div>
  26. </form>
  27. </div>
  28. </div>
  29. {if empty($list)}
  30. <div class="alert alert-info">
  31. 您当前没有活动
  32. </div>
  33. {else}
  34. <div class="panel panel-default">
  35. <div class="table-responsive panel-body">
  36. <table class="table table-hover">
  37. <thead class="navbar-inner">
  38. <tr>
  39. <th style="width:60px;">缩略图</th>
  40. <th style="width:100px;">活动名</th>
  41. <th style="width:100px;">发放用户</th>
  42. <th style="width:300px;">操作</th>
  43. </tr>
  44. </thead>
  45. <tbody>
  46. {loop $list $item}
  47. <tr>
  48. <td><img src="{php echo tomedia($item['thumb'])}" width="40"></td>
  49. <td>{$item['title']}</td>
  50. <td>
  51. {if in_array('new_member', $item['members'])}
  52. 新会员
  53. {elseif in_array('old_member', $item['members'])}
  54. 老会员
  55. {elseif in_array('activity_member', $item['members'])}
  56. 活跃会员
  57. {elseif in_array('quiet_member', $item['members'])}
  58. 沉寂会员
  59. {elseif in_array('group_member', $item['members'])}
  60. {$item['members']['group_name']}组会员
  61. {elseif in_array('cash_time', $item['members'])}
  62. {$item['members']['cash_time']['start']}-{$item['members']['cash_time']['end']}<br/>期间消费用户
  63. {elseif in_array('openids', $item['members'])}
  64. 指定会员
  65. {/if}
  66. </td>
  67. <td>
  68. <a href="{php echo url('activity/market/post', array('id' => $item['id']))}">查看详情</a>
  69. <a href="{php echo url('activity/market/delete', array('id' => $item['id']))}" onclick="return confirm('确定删除活动吗?');return false;">删除</a>
  70. </td>
  71. </tr>
  72. {/loop}
  73. </tbody>
  74. </table>
  75. </div>
  76. </div>
  77. {$pager}
  78. </div>
  79. {/if}
  80. {elseif $do == 'post'}
  81. <div class="clearfix">
  82. <form action="" method="post" class="form-horizontal form" enctype="multipart/form-data" id="form1" style="display: block">
  83. <div class="panel panel-default" id="step1">
  84. <div class="panel-heading">
  85. {if $id}活动详情{else}添加活动{/if}
  86. </div>
  87. <div class="panel-body">
  88. <div class="form-group">
  89. <label class="col-xs-12 col-sm-3 col-md-2 control-label"><span class="text-danger">*</span> 活动名称</label>
  90. <div class="col-sm-8 col-xs-12">
  91. {if !$id}
  92. <input type="text" class="form-control" name="title" value=""/>
  93. {else}
  94. <label class="radio-inline">{$item['title']}</label>
  95. {/if}
  96. </div>
  97. </div>
  98. {if COUPON_TYPE == SYSTEM_COUPON}
  99. <div class="form-group">
  100. <label class="col-xs-12 col-sm-3 col-md-2 control-label"> 活动状态</label>
  101. <div class="col-sm-8 col-xs-12">
  102. {if !$id}
  103. <label class="radio-inline"><input type="radio" name="status" {if empty($id) || $item['status'] == 1}checked{/if} value="1">开启</label>
  104. <label class="radio-inline" style="margin-left: 20px;"><input type="radio" name="status" value="0" {if $item['status'] == 0 && !empty($id)}checked{/if}>关闭</label>
  105. {else}
  106. <label class="radio-inline">{if $item['status'] == 1}开启{else}关闭{/if}</label>
  107. {/if}
  108. </div>
  109. </div>
  110. <div class="form-group">
  111. <label class="col-xs-12 col-sm-3 col-md-2 control-label"><span class="text-danger">*</span> 活动缩略图</label>
  112. <div class="col-sm-8 col-xs-12">
  113. {if !$id}
  114. {php echo tpl_form_field_image('thumb', $item['thumb'])}
  115. {else}
  116. <img src="{php echo tomedia($item['thumb'])}"/>
  117. {/if}
  118. </div>
  119. </div>
  120. {/if}
  121. <div class="form-group" {if $id}style="display: none;"{/if}>
  122. <label class="col-xs-12 col-sm-3 col-md-2 control-label"><span class="text-danger">*</span> 选择卡券</label>
  123. <div class="col-sm-8 col-xs-12">
  124. {if !$id}
  125. <button type="button" class="btn btn-default" data-toggle="modal" data-target="#myModal" id="add_coupon">添加卡券</button>
  126. {/if}
  127. </div>
  128. <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
  129. <div class="modal-dialog">
  130. <div class="modal-content">
  131. <div class="modal-header">
  132. <h4 class="modal-title">选择卡券</h4>
  133. </div>
  134. <div class="modal-body">
  135. <table class="table">
  136. <tr>
  137. <th style="width: 50px">选择</th>
  138. <th style="width: 120px">卡券名称</th>
  139. <th style="width: 180px">类型</th>
  140. <th>折扣</th>
  141. </tr>
  142. {loop $coupons $coupon}
  143. <tr>
  144. <td><input type="checkbox" name="coupons[]" id="coupon" class="coupon check" value="{$coupon['id']}" {if is_array($item['coupons']) && in_array($coupon['id'], array_keys($item['coupons']))}checked{/if} data-title="{$coupon['title']}" data-type="{$coupon['type']}"></td>
  145. <td>{$coupon['title']}</td>
  146. <td>{if $coupon['type'] == 1}折扣券
  147. {elseif $coupon['type'] == 2}代金券
  148. {elseif $coupon['type'] == 3}礼品券
  149. {elseif $coupon['type'] == 4}团购券
  150. {elseif $coupon['type'] == 5}优惠券
  151. {/if}
  152. </td>
  153. <td>{if $coupon['type'] == 1}打{php echo $coupon['extra']['discount']*0.1}折
  154. {elseif $coupon['type'] == 2}满{php echo $coupon['extra']['least_cost']*0.01}元 减 {php echo $coupon['extra']['reduce_cost']*0.01}元
  155. {elseif $coupon['type'] == 3}{$coupon['extra']['deal_detail']}
  156. {elseif $coupon['type'] == 4}{$coupon['extra']['gift']}
  157. {elseif $coupon['type'] == 5}{$coupon['extra']['default_detail']}
  158. {/if}
  159. </td>
  160. </tr>
  161. {/loop}
  162. </table>
  163. </div>
  164. <div class="modal-footer">
  165. <button type="button" class="btn btn-primary" id="save" data-dismiss="modal">保存</button>
  166. </div>
  167. </div><!-- /.modal-content -->
  168. </div><!-- /.modal-dialog -->
  169. </div>
  170. </div>
  171. <div class="form-group" id="coupon_table">
  172. <label class="col-xs-12 col-sm-3 col-md-2 control-label"><span class="text-danger"></span>{if $id}卡券列表{/if}</label>
  173. <div class="col-sm-8 col-xs-12">
  174. <table class="table" style="width: 380px">
  175. {if !empty($item['coupons'])}
  176. <tr>
  177. <th style="width: 50px">名称</th>
  178. <th style="width: 50px">类型</th>
  179. </tr>
  180. {/if}
  181. <tbody id="coupon_list">
  182. {loop $item['coupons'] $coup}
  183. <tr>
  184. <td style="width: 50px">{$coup['title']}</td>
  185. <td style="width: 50px">{if $coup['type'] == 1}折扣券{else}代金券{/if}</td>
  186. </tr>
  187. {/loop}
  188. </tbody>
  189. </table>
  190. </div>
  191. </div>
  192. {if !$id}
  193. <div class="form-group">
  194. <label class="col-xs-12 col-sm-3 col-md-2 control-label"><span class="text-danger"></span></label>
  195. <div class="col-sm-8 col-xs-12">
  196. 发放用户
  197. </div>
  198. </div>
  199. <div class="form-group">
  200. <label class="col-xs-12 col-sm-3 col-md-2 control-label"><span class="text-danger"></span>预定义</label>
  201. <div class="col-sm-8 col-xs-12">
  202. <div class="panel panel-default tab-content">
  203. <div class="panel-heading">
  204. <ul class="nav nav-pills">
  205. <li class="give_member" data-member="new_member"><a href="javascript:;" style="color: gray;">发放给新用户</a></li>
  206. <li class="give_member" data-member="old_member"><a href="javascript:;" style="color: gray;">发放给老用户</a></li>
  207. <li class="give_member" data-member="quiet_member"><a href="javascript:;" style="color: gray;">发放沉寂跃用户</a></li>
  208. <li class="give_member" data-member="activity_member"><a href="javascript:;" style="color: gray;">发放给活跃用户</a></li>
  209. </ul>
  210. </div>
  211. <div class="panel-body">
  212. <span class="help-block help" id="new_member">&nbsp;&nbsp;&nbsp;新用户: &nbsp;&nbsp;成为会员不超过一个月,并且只消费过一次或没消费的用户。<br/></span>
  213. <span class="help-block help" id="old_member">&nbsp;&nbsp;&nbsp;老用户: &nbsp;&nbsp;成为会员两个月以上的用户。<br/></span>
  214. <span class="help-block help" id="activity_member">活跃用户: &nbsp;&nbsp;一个月内消费超过2次的用户。<br/></span>
  215. <span class="help-block help" id="quiet_member">沉寂用户: &nbsp;&nbsp;一个月内没有消费的用户。<br/></span>
  216. <span class="help-block help" id="num">用户人数 :<span class="" id="member_num"></span></span>
  217. </div>
  218. </div>
  219. </div>
  220. </div>
  221. <div class="form-group">
  222. <label class="col-xs-12 col-sm-3 col-md-2 control-label"><span class="text-danger"></span>自定义</label>
  223. <div class="col-sm-8 col-xs-12">
  224. <div class="panel panel-default tab-content">
  225. <div class="panel-heading">
  226. <ul class="nav nav-pills">
  227. <li class="give_member" id="group" data-member="group_member"><a href="javascript:;" style="color: gray;">根据会员组</a></li>
  228. <li class="give_member" id="cash_time" data-member="cash_time"><a href="javascript:;" style="color: gray;">根据消费时间</a></li>
  229. <li class="give_member" id="openids" data-member="openids" data-toggle="modal" data-target="#myodal"><a href="javascript:;" style="color: gray;">发放给指定粉丝</a></li>
  230. </ul>
  231. </div>
  232. <div class="panel-body" id="type">
  233. <select name="group" class="form-control" id="group_list" {if !$item['members']['groupid']}style="display: none;"{/if}>
  234. {loop $groups $group}
  235. <option value="{$group['id']}">{if COUPON_TYPE == SYSTEM_COUPON}{$group['title']}{else}{$group['name']}{/if}</option>
  236. {/loop}
  237. </select>
  238. <div id="date" {if !$item['members']['cash_time']['start']}style="display: none;"{/if}>{php echo tpl_form_field_daterange('daterange', array('start' => date('Y-m-d', strtotime('-1 month', time())), 'end' => date('Y-m-d', time())))}</div>
  239. <div id="custom_help" class="help-block help" style="display: none">用户人数: <span id="custom_person"></span></div>
  240. </div>
  241. </div>
  242. <input type="hidden" name="members[]" value="" id="members">
  243. </div>
  244. {else}
  245. <div class="form-group">
  246. <label class="col-xs-12 col-sm-3 col-md-2 control-label"><span class="text-danger"></span> 发放用户</label>
  247. <div class="col-sm-8 col-xs-12">
  248. {if in_array('quiet_member', $item['members'])}
  249. <label class="radio-inline label-success"><span class="label label-success">发放给沉寂用户</span></label>
  250. {elseif in_array('old_member', $item['members'])}
  251. <label class="radio-inline"><span class="label label-success">发放给老用户</span></label>
  252. {elseif in_array('new_member', $item['members'])}
  253. <label class="radio-inline"><span class="label label-success">发放给新用户</span></label>
  254. {elseif in_array('activity_member', $item['members'])}
  255. <label class="radio-inline"><span class="label label-success">发放给活跃用户</span></label>
  256. {elseif in_array('group_member', $item['members'])}
  257. <label class="radio-inline"><span class="label label-success">发放给 “{$groups[$item['members']['groupid']]['title']}” 用户组的用户</span></label>
  258. {elseif in_array('cash_time', $item['members'])}
  259. <label class="radio-inline"><span class="label label-success">发放给在{$item['members']['cash_time']['start']} - {$item['members']['cash_time']['end']}期间消费的用户</span></label>
  260. {elseif in_array('openids', $item['members'])}
  261. <label class="radio-inline"><span class="label label-success">指定的粉丝</span></label>
  262. {/if}
  263. </div>
  264. </div>
  265. {/if}
  266. </div>
  267. {if COUPON_TYPE == SYSTEM_COUPON}
  268. <div class="form-group">
  269. <label class="col-xs-12 col-sm-3 col-md-2 control-label"><span class="text-danger"></span> 活动描述</label>
  270. <div class="col-sm-8 col-xs-12">
  271. <textarea name="description" class="form-control" cols="30" rows="3" >{$item['description']}</textarea>
  272. </div>
  273. </div>
  274. {/if}
  275. </div>
  276. </div>
  277. <div class="form-group col-sm-12">
  278. {if !empty($id)}
  279. <a class="btn btn-primary" href="{php echo url('activity/market')}">返回列表</a>
  280. {else}
  281. <input name="submit" id="submit" type="submit" value="提交" class="btn btn-primary col-lg-1" data-dismiss="modal">
  282. {/if}
  283. <input type="hidden" name="token" value="{$_W['token']}" />
  284. </div>
  285. </form>
  286. </div>
  287. <script>
  288. window.openidnum = $('#custom_person');
  289. $('.help').hide();
  290. $('.daterange-date').blur(function() {
  291. $('#cash_time').trigger('click');
  292. });
  293. $('#group_list').change(function() {
  294. $('#group').trigger('click');
  295. });
  296. $('.give_member').click(function() {
  297. var type = $(this).data('member');
  298. var param = '';
  299. if (type == 'group_member' || type == 'openids' || type == 'cash_time') {
  300. var param = {};
  301. if (type == 'group_member') {
  302. var groupid = $('[name="group"]').val();
  303. param = {'groupid' : groupid};
  304. }
  305. if (type == 'cash_time') {
  306. var start = $('[name="daterange[start]"]').val();
  307. var end = $('[name="daterange[end]"]').val();
  308. param = {
  309. 'start' : start,
  310. 'end' : end
  311. }
  312. }
  313. }
  314. $.post("{php echo url('activity/market/get_member_num')}", {'type' : type, 'param' : param}, function(data) {
  315. var data = $.parseJSON(data);
  316. $('.help').hide();
  317. if (param == '') {
  318. $('#'+type).show();
  319. $('#num').show();
  320. $('#member_num').html(data.message.message);
  321. } else {
  322. $('#custom_help').show();
  323. $('#custom_person').html(data.message.message);
  324. }
  325. });
  326. $('.give_member').attr('class', 'give_member');
  327. $('.give_member').children().css('color', 'gray');
  328. $(this).attr('class', 'give_member active');
  329. $(this).children().css('color', 'white');
  330. $('#members').val($(this).data('member'));
  331. var type = $(this).data('member');
  332. $('#date').hide();
  333. $('#group_list').hide();
  334. if (type == 'group_member') {
  335. $('#group_list').show();
  336. }
  337. if (type == 'cash_time') {
  338. $('#date').show();
  339. }
  340. if (type == 'openids') {
  341. }
  342. });
  343. $('#save').click(function() {
  344. {if COUPON_TYPE == WECHAT_COUPON}
  345. var coupon = $('#coupon:checked').val();
  346. $.post("{php echo url('activity/market/checkcoupon')}", {'coupon' : coupon}, function (data) {
  347. var data = $.parseJSON(data);
  348. if (data.message.errno != 0) {
  349. $('#coupon_list').html('');
  350. util.message(data.message.message+'不可用', '', 'info');
  351. }
  352. });
  353. {/if}
  354. });
  355. var page = 1;
  356. window.openids = new Array();
  357. {if !empty($item['members']['openids'])}
  358. {loop $item['members']['openids'] $opid}
  359. {if !empty($opid)}
  360. openids.push('{$opid}');
  361. {/if}
  362. {/loop}
  363. {/if}
  364. window.showFans= function(page, nickname) {
  365. nickname = nickname == undefined ? '' : nickname;
  366. var footer = '<button type="button" class="btn btn-primary" id="save" data-dismiss="modal">添加</button>';
  367. var modalobj = util.dialog('粉丝列表', ['./index.php?c=utility&a=fans&page='+ page+'&nickname='+nickname], footer, {containerName:'link-container'})
  368. modalobj.find('.modal-body').css({'overflow-y':'auto' });
  369. modalobj.modal('show');
  370. };
  371. $('#openids').click(function() {
  372. showFans(page);
  373. });
  374. var coupons = new Array();
  375. $('.member').click(function () {
  376. if ($(this).val() != 'group_member') {
  377. $('#group_list').hide();
  378. }
  379. if ($(this).val() != 'cash_time') {
  380. $('#date').hide();
  381. }
  382. });
  383. {if !empty($item['coupons']) && is_array($item['coupons'])}
  384. {loop $item['coupons'] $cou}
  385. var cid = {$cou['id']};
  386. var title = '{$cou['title']}';
  387. var type = {$cou['type']};
  388. coupons[cid] = [{'title' : title,'type': type}];
  389. {/loop}
  390. {/if}
  391. $('.check').click(function() {
  392. var check = $(this).prop('checked');
  393. if (check) {
  394. coupons[$(this).val()] = new Array();
  395. coupons[$(this).val()] = [{'couponid' : $(this).val(), 'title' : $(this).data('title'), 'type' : $(this).data('type')}]
  396. } else {
  397. delete coupons[$(this).val()];
  398. }
  399. });
  400. $('#save').click(function() {
  401. $('#coupon_list').html('');
  402. for (var key in coupons) {
  403. var type = coupons[key][0].type == 1? '折扣券' : '代金券';
  404. $('#coupon_list').append(
  405. '<tr>' +
  406. '<td style="width: 50px">'+coupons[key][0].title+'</td>' +
  407. '<td style="width: 50px">'+type+'</td>' +
  408. '</tr>');
  409. }
  410. });
  411. $('form').submit(function() {
  412. if ($('[name="title"]').val() == '') {
  413. util.message('请填写活动名称', '', 'info');
  414. return false;
  415. }
  416. if ($('#members').val() == '') {
  417. util.message('请选择发放用户', '', 'info');
  418. return false;
  419. }
  420. if ($('.member:checked').val() == 'openids' && openids.length == 0) {
  421. util.message('请选择发放粉丝', '', 'info');
  422. return false;
  423. }
  424. if ($('.coupon:checked').val() == undefined) {
  425. util.message('请选择卡券', '', 'info');
  426. return false;
  427. }
  428. });
  429. </script>
  430. {/if}
  431. {template 'common/footer'}