381 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			HTML
		
	
	
		
		
			
		
	
	
			381 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			HTML
		
	
	
|  | {layout name="layout1" /} | |||
|  | <style> | |||
|  |     .layui-border-box { | |||
|  |         margin-left: 40px; | |||
|  |         margin-right: 40px; | |||
|  | 
 | |||
|  |     } | |||
|  | 
 | |||
|  |     .record { | |||
|  |         display: none; | |||
|  |         margin-top: 20px; | |||
|  |     } | |||
|  | </style> | |||
|  | 
 | |||
|  | <div class="wrapper"> | |||
|  |     <div class="layui-form"> | |||
|  |         <div class="layui-card"> | |||
|  |             <div class="layui-card-body"> | |||
|  |                 <div class="layui-collapse like-layui-collapse" lay-accordion="" style="border:1px dashed #c4c4c4"> | |||
|  |                     <div class="layui-colla-item"> | |||
|  |                         <h2 class="layui-colla-title like-layui-colla-title" style="background-color: #fff">操作提示</h2> | |||
|  |                         <div class="layui-colla-content layui-show"> | |||
|  |                             <p>*用户每天签到一次可获得每天签到奖励,包括积分和成长值。</p> | |||
|  |                             <p>*点击新增连续签到奖励可以设置满足连续签到天数时的额外奖励,连续天数规则不能重复。</p> | |||
|  |                             <p>*用户签到中断会重新计算连续天数;超过设置的最大连续签到奖励天数后,也会重新计算连续天数,循环发放连续奖励。</p> | |||
|  |                         </div> | |||
|  |                     </div> | |||
|  |                 </div> | |||
|  |             </div> | |||
|  |             <div class="layui-tab layui-tab-card" lay-filter="tab-all"> | |||
|  |                 <ul class="layui-tab-title"> | |||
|  |                     <li data-type=1 class="layui-this">签到设置</li> | |||
|  |                     <li data-type=2>签到记录</li> | |||
|  |                 </ul> | |||
|  |                 <div class="layui-card-header"></div> | |||
|  |                 <div class="layui-form-item record"> | |||
|  |                     <div class="layui-inline"> | |||
|  |                         <label class="layui-form-label">会员信息:</label> | |||
|  |                         <div class="layui-input-inline"> | |||
|  |                             <select name="type" id="type"> | |||
|  |                                 <option value=""></option> | |||
|  |                                 <option value="sn">会员编号</option> | |||
|  |                                 <option value="nickname">会员昵称</option> | |||
|  |                                 <option value="mobile">手机号码</option> | |||
|  |                             </select> | |||
|  |                         </div> | |||
|  |                         <div class="layui-input-inline"> | |||
|  |                             <input type="text" name="keyword" id="keyword" placeholder="请输入关键词" autocomplete="off" | |||
|  |                                    class="layui-input"> | |||
|  |                         </div> | |||
|  |                         <div class="layui-inline"> | |||
|  |                             <button class="layui-btn layui-btn-sm  {$view_theme_color}"lay-submit lay-filter="record-search">查询</button> | |||
|  |                             <button class="layui-btn layui-btn-sm layui-btn-primary " lay-submit lay-filter="record-clear-search">清空查询</button> | |||
|  |                         </div> | |||
|  |                     </div> | |||
|  |                 </div> | |||
|  |                 <!--每天签到奖励--> | |||
|  |                 <div class="layui-form-item sigh"> | |||
|  |                     <label class="layui-form-label " style="margin-left: 20px;width: 100px">每天签到奖励:</label> | |||
|  |                     <div class="layui-input-inline " style="margin-right: 0px;width: 110px"> | |||
|  |                         <input type="checkbox" name="integral_status" title="赠送积分"  min="0" lay-skin="primary" {if | |||
|  |                                condition="$config['dailySign']['integral_status'] eq 1" }checked{/if}> | |||
|  |                     </div> | |||
|  |                     <div class="layui-input-inline"> | |||
|  |                         <input type="number" name="integral" value="{$config.dailySign.integral}" lay-verType="tips" placeholder="请输入积分" autocomplete="off" class="layui-input"> | |||
|  |                     </div> | |||
|  |                     <div class="layui-input-inline"> | |||
|  |                         <label class="layui-form-mid">积分</label> | |||
|  |                     </div> | |||
|  |                 </div> | |||
|  | 
 | |||
|  |                 <div class="layui-form-item sigh"> | |||
|  |                     <label class="layui-form-label" style="margin-left: 20px;width: 100px"></label> | |||
|  |                     <div class="layui-input-inline" style="margin-right: 0px;width: 110px"> | |||
|  |                         <input type="checkbox" name="growth_status" title="赠送成长值" min="0" lay-skin="primary" | |||
|  |                                {if condition="$config['dailySign']['growth_status'] eq 1" }checked{/if}> | |||
|  |                     </div> | |||
|  | 
 | |||
|  |                     <div class="layui-input-inline"> | |||
|  |                         <input type="number" name="growth" value="{$config.dailySign.growth}" lay-vertype="tips" placeholder="请输入成长值" autocomplete="off" class="layui-input"> | |||
|  |                     </div> | |||
|  |                     <div class="layui-input-inline"> | |||
|  |                         <label class="layui-form-mid">成长值</label> | |||
|  |                     </div> | |||
|  |                 </div> | |||
|  | 
 | |||
|  |                 <div class="layui-form-item sigh"> | |||
|  |                     <div class="layui-inline"> | |||
|  |                         <label class="layui-form-label" style="margin-left: 20px;width: 100px">连续签到奖励:</label> | |||
|  |                         <div class=" layui-form-mid layui-word-aux">连续签到奖励断签后会重新计算连续签到天数,达到连续天数后即可获得连续奖励</div> | |||
|  |                     </div> | |||
|  |                 </div> | |||
|  |                 <!--新增连续签到奖励--> | |||
|  |                 <div class="layui-form-item sigh"> | |||
|  |                     <div class="layui-inline " style="margin-left: 15px;width: 100px"> | |||
|  |                         <button class="layui-btn layui-btn-sm layEvent {$view_theme_color}" lay-event="add">新增连续签到奖励</button> | |||
|  |                     </div> | |||
|  |                 </div> | |||
|  | 
 | |||
|  | 
 | |||
|  |                 <div class="layui-card-body" style="margin-top: -20px"> | |||
|  |                     <div class="layui-card"> | |||
|  |                         <table id="like-table-lists" class="layui-border-box" lay-filter="like-table-lists"></table> | |||
|  | 
 | |||
|  |                         <script type="text/html" id="status"> | |||
|  |                             <input type="checkbox" lay-filter="switch-status" data-id={{d.id}} data-field='is_recommend' | |||
|  |                                    lay-skin="switch" | |||
|  |                                    lay-text="是|否" {{# if(d.is_recommend){ }} checked {{# } }}/> | |||
|  |                         </script> | |||
|  | 
 | |||
|  |                         <!--连续天数--> | |||
|  |                         <script type="text/html" id="daysTpl"> | |||
|  |                             {{#  if( d.days == null || d.days == 0 || d.days == ''){ }} | |||
|  |                             ---- | |||
|  |                             {{#  } else { }} | |||
|  |                             {{d.days}}天 | |||
|  |                             {{#  } }} | |||
|  |                         </script> | |||
|  | 
 | |||
|  |                         <script type="text/html" id="table-operation"> | |||
|  |                             <a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="edit">编辑</a> | |||
|  |                             <a class="layui-btn layui-btn-danger layui-btn-sm" lay-event="del">删除</a> | |||
|  |                         </script> | |||
|  | 
 | |||
|  |                         <!--会员信息--> | |||
|  |                         <script type="text/html" id="user"> | |||
|  |                             <img src="{{d.avatar}}" style="height:80px;width: 80px" class="image-show"> | |||
|  |                             <div class="layui-input-inline" style="text-align: left"> | |||
|  |                                 <p>会员编号:{{d.user_id}}</p> | |||
|  |                                 <p>昵称:{{d.nickname}}</p> | |||
|  |                                 <p>手机号:{{d.mobile}}</p> | |||
|  |                                 <p>性别:{{d.sex}}</p> | |||
|  |                                 <p>注册时间:{{d.create_time}}</p> | |||
|  |                             </div> | |||
|  |                         </script> | |||
|  | 
 | |||
|  |                         <!--签到奖励--> | |||
|  |                         <script type="text/html" id="integral"> | |||
|  |                             赠送{{d.integral}}积分;赠送{{d.growth}}成长值 | |||
|  |                         </script> | |||
|  | 
 | |||
|  |                         <!--连续奖励--> | |||
|  |                         <script type="text/html" id="continuous_integral"> | |||
|  |                             赠送{{d.continuous_integral}}积分;赠送{{d.continuous_growth}}成长值 | |||
|  |                         </script> | |||
|  |                     </div> | |||
|  |                 </div> | |||
|  |                 <!--签到规则说明--> | |||
|  |                 <div class="layui-form-item sigh"> | |||
|  |                     <div class="layui-card"> | |||
|  |                         <label class="layui-form-label" style="margin-left: 20px;width: 100px">签到规则说明:</label> | |||
|  |                         <div class="layui-input-inline" style="width: 500px"> | |||
|  |                             <textarea name="instructions" id="instructions" placeholder="请输入签到规则说明" | |||
|  |                                       class="layui-textarea" style="width: 500px;height: 200px">{$config.instructions| default=''}</textarea> | |||
|  | 
 | |||
|  |                         </div> | |||
|  |                         <div class="layui-input-inline"> | |||
|  |                             <button class="layui-btn layui-btn-primary " id="default">使用默认说明 | |||
|  |                             </button> | |||
|  |                         </div> | |||
|  |                     </div> | |||
|  |                 </div> | |||
|  | 
 | |||
|  |                 <div class="layui-form-item sigh"> | |||
|  |                     <label class="layui-form-label" style="width: 100px"></label> | |||
|  |                     <div class="layui-input-block" style="text-align: center; width: 950px;height: 60px"> | |||
|  |                         <button class="layui-btn layui-btn-sm {$view_theme_color}" lay-submit lay-filter="formSign"> | |||
|  |                             确认保存 | |||
|  |                         </button> | |||
|  |                     </div> | |||
|  |                 </div> | |||
|  |             </div> | |||
|  |         </div> | |||
|  |     </div> | |||
|  | </div> | |||
|  | 
 | |||
|  | <script> | |||
|  |     layui.use(['table'], function () { | |||
|  |         var $ = layui.$ | |||
|  |             , form = layui.form | |||
|  |             , table = layui.table | |||
|  |             , element = layui.element; | |||
|  | 
 | |||
|  |         //监听搜索 | |||
|  |         form.on('submit(record-search)', function (data) { | |||
|  |             var field = data.field; | |||
|  |             //执行重载 | |||
|  |             table.reload('like-table-lists', { | |||
|  |                 where: field, | |||
|  |                 page: {curr: 1} | |||
|  |             }); | |||
|  |         }); | |||
|  | 
 | |||
|  |         //清空记录查询 | |||
|  |         form.on('submit(record-clear-search)', function () { | |||
|  |             $('#keyword').val(''); | |||
|  |             $('#type').val(''); | |||
|  |             form.render('select'); | |||
|  |             table.reload('like-table-lists', { | |||
|  |                 where: [], | |||
|  |                 page: {curr: 1} | |||
|  |             }); | |||
|  |         }); | |||
|  | 
 | |||
|  |         //图片放大 | |||
|  |         $(document).on('click', '.image-show', function () { | |||
|  |             var src = $(this).attr('src'); | |||
|  |             like.showImg(src, 600); | |||
|  |         }); | |||
|  | 
 | |||
|  |         getList(1); | |||
|  |         //切换列表 | |||
|  |         element.on('tab(tab-all)', function (data) { | |||
|  |             var type = $(this).attr('data-type'); | |||
|  |             if (type == 1) { | |||
|  |                 $('.sigh').show(); | |||
|  |                 $('.record').hide(); | |||
|  |             } | |||
|  | 
 | |||
|  |             if (type == 2) { | |||
|  |                 $('.sigh').hide(); | |||
|  |                 $('.record').show(); | |||
|  |             } | |||
|  |             getList(type); | |||
|  |         }); | |||
|  | 
 | |||
|  |         //签到规则默认说明 | |||
|  |         $('#default').click(function () { | |||
|  |             $('#instructions').val('1.每天签到可以获得每天签到奖励;\n' + | |||
|  |                 '2.每日最多可签到1次,断签则会重新计算连签天数,达到连续天数后即可获得连续奖励;\n' + | |||
|  |                 '3.活动以及奖励最终解释权归商家所有。') | |||
|  |         }) | |||
|  | 
 | |||
|  | 
 | |||
|  |         //确定保存按钮 | |||
|  |         form.on('submit(formSign)', function (data) { | |||
|  |             set(data, "{:url('sign_daily.SignDaily/signRule')}"); | |||
|  |         }); | |||
|  | 
 | |||
|  |         function set(data, url) { | |||
|  |             like.ajax({ | |||
|  |                 url: url | |||
|  |                 , data: data.field | |||
|  |                 , type: "post", | |||
|  |                 success: function (res) { | |||
|  |                     if (res.code == 1) { | |||
|  |                         layui.layer.msg(res.msg, { | |||
|  |                             offset: '15px' | |||
|  |                             , icon: 1 | |||
|  |                             , time: 1000 | |||
|  |                         }, function () { | |||
|  |                             location.href = location.href; | |||
|  |                         }); | |||
|  |                     } | |||
|  |                 } | |||
|  |             }); | |||
|  |         } | |||
|  | 
 | |||
|  |         function getList(type) { | |||
|  |             var tablecols = [ | |||
|  |                 {field: 'days', title: '连续天数', templet: '#daysTpl',width:300} | |||
|  |                 , {field: 'award_tips', title: '连续奖励',width:400} | |||
|  |                 , {title: '操作', align: 'center', fixed: 'right', toolbar: '#table-operation',width:350} | |||
|  |             ]; | |||
|  |             var page = false; | |||
|  |             var url = '{:url("sign_daily.SignDaily/lists")}'; | |||
|  | 
 | |||
|  |             if (type == 2) { | |||
|  |                 tablecols = [ | |||
|  |                     {type:'numbers',title:'序号'} | |||
|  |                     , {field: 'user', title: '会员信息', align: 'center',templet:'#user',width:400} | |||
|  |                     , {field: 'days', title: '连续天数',width:100} | |||
|  |                     , {field: 'reward_tips', title: '签到奖励',templet:'#integral',width:250} | |||
|  |                     , {field: 'continuous_reward', title: '连续奖励',templet:'#continuous_integral',width:250} | |||
|  |                     , {fixed: 'right', field:'sign_time',title:'签到时间',width:250} | |||
|  |                 ]; | |||
|  |                 page = true; | |||
|  |                 url = '{:url("sign_daily.SignDaily/record")}'; | |||
|  |             } | |||
|  |             like.tableLists("#like-table-lists", url, tablecols, {}, page); | |||
|  |         } | |||
|  | 
 | |||
|  |         //事件 | |||
|  |         var active = { | |||
|  |             add: function () { | |||
|  |                 layer.open({ | |||
|  |                     type: 2 | |||
|  |                     , title: '新增连续签到奖励' | |||
|  |                     , content: '{:url("sign_daily.SignDaily/add",["type"=>2])}' | |||
|  |                     , area: ['60%', '60%'] | |||
|  |                     , btn: ['确定', '取消'] | |||
|  |                     , yes: function (index, layero) { | |||
|  |                         var iframeWindow = window['layui-layer-iframe' + index] | |||
|  |                             , submitID = 'addSubmit' | |||
|  |                             , submit = layero.find('iframe').contents().find('#' + submitID); | |||
|  |                         //监听提交 | |||
|  |                         iframeWindow.layui.form.on('submit(' + submitID + ')', function (data) { | |||
|  |                             var field = data.field; | |||
|  |                             like.ajax({ | |||
|  |                                 url: '{:url("sign_daily.SignDaily/add")}', | |||
|  |                                 data: field, | |||
|  |                                 type: "post", | |||
|  |                                 success: function (res) { | |||
|  |                                     if (res.code == 1) { | |||
|  |                                         layui.layer.msg(res.msg, { | |||
|  |                                             offset: '15px' | |||
|  |                                             , icon: 1 | |||
|  |                                             , time: 1000 | |||
|  |                                         }); | |||
|  |                                         layer.close(index); | |||
|  |                                         table.reload('like-table-lists'); | |||
|  |                                     } | |||
|  |                                 } | |||
|  |                             }); | |||
|  |                         }); | |||
|  |                         submit.trigger('click'); | |||
|  |                     } | |||
|  |                 }); | |||
|  |             }, | |||
|  |             edit: function (obj) { | |||
|  |                 var id = obj.data.id; | |||
|  |                 layer.open({ | |||
|  |                     type: 2 | |||
|  |                     , title: '编辑连续签到奖励' | |||
|  |                     , content: '{:url("sign_daily.SignDaily/edit")}?id=' + id | |||
|  |                     , area: ['60%', '60%'] | |||
|  |                     , btn: ['确定', '取消'] | |||
|  |                     , yes: function (index, layero) { | |||
|  |                         var iframeWindow = window['layui-layer-iframe' + index] | |||
|  |                             , submitID = 'edit-sign_daily-submit' | |||
|  |                             , submit = layero.find('iframe').contents().find('#' + submitID); | |||
|  |                         //监听提交 | |||
|  |                         iframeWindow.layui.form.on('submit(' + submitID + ')', function (data) { | |||
|  |                             var field = data.field; | |||
|  |                             like.ajax({ | |||
|  |                                 url: '{:url("sign_daily.SignDaily/edit")}', | |||
|  |                                 data: field, | |||
|  |                                 type: "post", | |||
|  |                                 success: function (res) { | |||
|  |                                     if (res.code == 1) { | |||
|  |                                         layui.layer.msg(res.msg, { | |||
|  |                                             offset: '15px' | |||
|  |                                             , icon: 1 | |||
|  |                                             , time: 1000 | |||
|  |                                         }); | |||
|  |                                         layer.close(index); | |||
|  |                                         table.reload('like-table-lists'); | |||
|  |                                     } | |||
|  |                                 } | |||
|  |                             }); | |||
|  |                         }); | |||
|  |                         submit.trigger('click'); | |||
|  |                     } | |||
|  |                 }) | |||
|  |             }, | |||
|  |             del:  function (obj) { | |||
|  |                 var id = obj.data.id; | |||
|  |                 var day = obj.data.days; | |||
|  |                 layer.confirm('确定移除连续签到奖励:' + '<span style="color: red">' + day + '天</span>', function (index) { | |||
|  |                     like.ajax({ | |||
|  |                         url: '{:url("sign_daily.SignDaily/del")}', | |||
|  |                         data: {'id': id}, | |||
|  |                         type: "post", | |||
|  |                         success: function (res) { | |||
|  |                             if (res.code == 1) { | |||
|  |                                 obj.del(); | |||
|  |                                 layui.layer.msg(res.msg, { | |||
|  |                                     offset: '15px' | |||
|  |                                     , icon: 1 | |||
|  |                                     , time: 1000 | |||
|  |                                 }); | |||
|  |                                 layer.close(index); | |||
|  |                             } | |||
|  |                         }, | |||
|  |                     }); | |||
|  |                 }); | |||
|  |             } | |||
|  |         } | |||
|  |         like.eventClick(active); | |||
|  |     }); | |||
|  | </script> |