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> |