311 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			HTML
		
	
	
			
		
		
	
	
			311 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			HTML
		
	
	
| {layout name="layout1" /}
 | |
| <div class="wrapper">
 | |
|     <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>
 | |
|                         <p>*默认回复用于用户输入内容未匹配时回复;</p>
 | |
|                     </div>
 | |
|                 </div>
 | |
|             </div>
 | |
|         </div>
 | |
|         <div class="layui-tab layui-tab-card" lay-filter="tab-all">
 | |
|         <!-- 选项卡头部-->
 | |
|             <ul class="layui-tab-title">
 | |
|                 {foreach $type_list as $type =>  $name}
 | |
|                 <li data-type={$type}  {if 'subscribe' == $type } class="layui-this" {/if} >{$name}</li>
 | |
|                 {/foreach}
 | |
|             </ul>
 | |
| 
 | |
|             <div class="layui-tab-item layui-show">
 | |
|                 <div class="layui-card">
 | |
|                     <div class="layui-card-body">
 | |
|                         <div style="padding-bottom: 10px;">
 | |
|                             <button class="layui-btn layui-btn-sm layuiadmin-btn-reply {$view_theme_color}" data-type="add">新增回复</button>
 | |
|                         </div>
 | |
|                         <table id="reply-lists" lay-filter="reply-lists"></table>
 | |
|                         <script type="text/html" id="status">
 | |
|                             <input type="checkbox"  lay-filter="switch-status" data-id={{d.id}} data-field='status'  lay-skin="switch"
 | |
|                                    lay-text="显示|隐藏" {{#  if(d.status){ }} checked  {{#  } }} />
 | |
|                         </script>
 | |
|                         <script type="text/html" id="reply-operation">
 | |
|                             <a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="edit"><i class="layui-icon"></i>编辑</a>
 | |
|                             <a class="layui-btn layui-btn-danger layui-btn-sm"  lay-event="del" ><i class="layui-icon"></i>删除</a>
 | |
|                         </script>
 | |
| 
 | |
|                     </div>
 | |
|                 </div>
 | |
|             </div>
 | |
|         </div>
 | |
|     </div>
 | |
| </div>
 | |
| <style>
 | |
|     .layui-table-cell {
 | |
|         height: auto;
 | |
|     }
 | |
| </style>
 | |
| <script>
 | |
|     // 初始回复类型
 | |
|     var type = 'subscribe';
 | |
| 
 | |
|     layui.config({
 | |
|         version:"{$front_version}",
 | |
|         base: '/static/lib/' //静态资源所在路径
 | |
|     }).use(['table', 'element'], function(){
 | |
|         var $ = layui.$
 | |
|             ,form = layui.form
 | |
|             ,table = layui.table
 | |
|             ,element = layui.element;
 | |
| 
 | |
|         // 初始获取列表数据
 | |
|         getList()
 | |
| 
 | |
|         // 事件处理函数
 | |
|         var active = {
 | |
|             add: function(){
 | |
|                 var add = layer.open({
 | |
|                     type: 2
 | |
|                     ,title: '新增回复 '
 | |
|                     ,content: '{:url("wechat.reply/add")}?type='+type
 | |
|                     ,area: ['90%','90%']
 | |
|                     ,btn: ['确定', '取消']
 | |
|                     ,yes: function(index, layero){
 | |
|                         var iframeWindow = window['layui-layer-iframe'+ index]
 | |
|                             ,submitID = 'add-reply-submit'
 | |
|                             ,submit = layero.find('iframe').contents().find('#'+ submitID);
 | |
|                         //监听提交
 | |
|                         iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
 | |
|                             var field = data.field;
 | |
|                             field['reply_type'] = type;
 | |
|                             like.ajax({
 | |
|                                 url:'{:url("wechat.reply/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('reply-lists'); //数据刷新
 | |
|                                     }
 | |
|                                 },
 | |
|                             });
 | |
|                         });
 | |
|                         submit.trigger('click');
 | |
|                     }
 | |
|                 });
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         // 监听文本框编辑
 | |
|         table.on('edit(reply-lists)', function (obj) {
 | |
|             var ids = [];
 | |
|             var id = obj.data.id;
 | |
|             var fields = obj.field;
 | |
|             var field_value = obj.value;
 | |
|             ids.push(id);
 | |
|             if(isNaN(field_value)){
 | |
|                 var old_value=$(this).prev().text();
 | |
| 
 | |
|                 layer.tips('请输入数字', $(this), {tips: [1, '#FF5722']});
 | |
|                 $(this).val(old_value);
 | |
| 
 | |
|                 return false;
 | |
|             }
 | |
| 
 | |
|             changeFields(ids,fields,field_value)
 | |
| 
 | |
|         });
 | |
| 
 | |
|         // 新增回复
 | |
|         $('.layui-btn.layuiadmin-btn-reply').on('click', function(){
 | |
|             var type = $(this).data('type');
 | |
|             active[type] ? active[type].call(this) : '';
 | |
|         });
 | |
| 
 | |
|         // 监听启用状态开关
 | |
|         form.on('switch(switch-status)',function (obj) {
 | |
|             var ids = [];
 | |
|             var id = obj.elem.attributes['data-id'].nodeValue
 | |
|             var fields = obj.elem.attributes['data-field'].nodeValue
 | |
|             var field_value = 0;
 | |
|             ids.push(id);
 | |
|             if(this.checked){
 | |
|                 field_value = 1;
 | |
|             }
 | |
|             changeFields(ids,fields,field_value)
 | |
| 
 | |
|         })
 | |
| 
 | |
|         // 监听选项卡切换
 | |
|         element.on('tab(tab-all)', function (data) {
 | |
|             type = $(this).attr('data-type');
 | |
|             getList();
 | |
|         });
 | |
| 
 | |
|         // 加载列表数据
 | |
|         function getList() {
 | |
|             switch (type) {
 | |
|                 case "subscribe":
 | |
|                     var cols = [
 | |
|                         {field: 'name', title: '规则名称', align: 'center'}
 | |
|                         , {field: 'content_type', title: '回复类型', align: 'center'}
 | |
|                         , {field: 'content', title: '回复内容', align: 'center'}
 | |
|                         , {title:'启用状态',  align: 'center', toolbar: '#status'}
 | |
|                         , {title: '操作',  align: 'center', toolbar: '#reply-operation'}
 | |
|                     ];
 | |
|                     break;
 | |
|                 case "text":
 | |
|                     var cols = [
 | |
|                         {field: 'keyword', title: '关键词', align: 'center'}
 | |
|                         , {field: 'matching_type', title: '匹配方式', align: 'center'}
 | |
|                         , {field: 'content_type', title: '回复类型', align: 'center'}
 | |
|                         , {field: 'content', title: '回复内容', align: 'center'}
 | |
|                         , {title: 'status', title:'启用状态',  align: 'center', toolbar: '#status'}
 | |
|                         , {field: 'sort', title: '排序', align: 'center',edit:'text'}
 | |
|                         , {title: '操作',  align: 'center', toolbar: '#reply-operation'}
 | |
|                     ];
 | |
|                     break;
 | |
|                 case "default":
 | |
|                     var cols = [
 | |
|                         {field: 'name', title: '规则名称', align: 'center'}
 | |
|                         , {field: 'content_type', title: '回复类型', align: 'center'}
 | |
|                         , {field: 'content', title: '回复内容', align: 'center'}
 | |
|                         , {title: 'status', title:'启用状态',  align: 'center', toolbar: '#status'}
 | |
|                         , {title: '操作',  align: 'center', toolbar: '#reply-operation'}
 | |
|                     ];
 | |
|                     break;
 | |
|             }
 | |
| 
 | |
|             //管理员管理
 | |
|             table.render({
 | |
|                 elem: '#reply-lists'
 | |
|                 , url: '{:url("wechat.reply/lists")}?type='+type
 | |
|                 , cols: [
 | |
|                     cols
 | |
|                 ]
 | |
|                 , page: true
 | |
|                 , text: {none: '暂无数据!'}
 | |
|                 , response: {
 | |
|                     'statusCode': 1
 | |
|                 }
 | |
|                 , parseData: function (res) { //将原始数据解析成 table 组件所规定的数据
 | |
|                     return {
 | |
|                         "code": res.code,
 | |
|                         "msg": res.msg,
 | |
|                         "count": res.data.count, //解析数据长度
 | |
|                         "data": res.data.list, //解析数据列表
 | |
|                     };
 | |
|                 }
 | |
|             });
 | |
|         }
 | |
| 
 | |
|         //监听工具条
 | |
|         table.on('tool(reply-lists)', function(obj){
 | |
|             if(obj.event === 'del'){
 | |
|                 var id = obj.data.id;
 | |
|                 var attr = obj.data.attr;
 | |
|                 var name = obj.data.name;
 | |
|                 layer.confirm('确认删除回复:'+'<span style="color: red">'+name+'</span>', function(index){
 | |
|                     like.ajax({
 | |
|                         url:'{:url("wechat.reply/del")}',
 | |
|                         data:{id:id},
 | |
|                         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('reply-lists'); //数据刷新
 | |
|                             }
 | |
|                         },
 | |
|                     });
 | |
|                 });
 | |
|             }else if(obj.event === 'edit'){
 | |
|                 var id = obj.data.id;
 | |
|                 var edit = layer.open({
 | |
|                     type: 2
 | |
|                     ,title: '编辑回复'
 | |
|                     ,content: '{:url("wechat.reply/edit")}?id='+id
 | |
|                     ,area: ['90%','90%']
 | |
|                     ,btn: ['确定', '取消']
 | |
|                     ,yes: function(index, layero){
 | |
|                         var iframeWindow = window['layui-layer-iframe'+ index]
 | |
|                             ,submitID = 'edit-reply-submit'
 | |
|                             ,submit = layero.find('iframe').contents().find('#'+ submitID);
 | |
| 
 | |
|                         //监听提交
 | |
|                         iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
 | |
|                             var field = data.field;
 | |
|                             field['reply_type'] = type;
 | |
|                             like.ajax({
 | |
|                                 url:'{:url("wechat.reply/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('reply-lists'); //数据刷新
 | |
|                                     }
 | |
|                                 },
 | |
|                             });
 | |
|                         });
 | |
|                         submit.trigger('click');
 | |
|                     }
 | |
|                 })
 | |
|             }
 | |
|         });
 | |
|     });
 | |
| 
 | |
|     function changeFields(ids,fields,value) {
 | |
|         like.ajax({
 | |
|             url:'{:url("wechat.reply/changeFields")}',
 | |
|             data:{id:ids,field:fields,value:value,reply_type:type},
 | |
|             type:'post',
 | |
|             dataType:'json',
 | |
|             success:function (res) {
 | |
|                 if(res.code == 1) {
 | |
|                     layui.layer.msg(res.msg, {
 | |
|                         offset: '15px'
 | |
|                         , icon: 1
 | |
|                         , time: 1000
 | |
|                     }, function(){
 | |
|                             location.href = location.href;
 | |
|                     });
 | |
| 
 | |
|                 } else {
 | |
|                     layui.layer.msg(res.msg, {
 | |
|                         offset: '15px'
 | |
|                         , icon: 2
 | |
|                         , time: 1000
 | |
|                     }, function(){
 | |
|                         location.href = location.href;
 | |
|                     });
 | |
|                 }
 | |
|             }
 | |
|         })
 | |
| 
 | |
|     }
 | |
| </script> |