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