layui.extend({
    common    :   'js/common'
}).use(['jquery','table','layer','form','common','util','form','laydate'], function () {
    var $ = layui.jquery;
    var table = layui.table;
    //  弹窗插件
    var layer = layui.layer;
    //时间模块
    var laydate = layui.laydate;
    var common = layui.common;

    var form = layui.form;

    //选中id集合
    var ids = [];

    //清空选中集合
    var clearCheckbox = function(){
        ids=[];
    }

    //tableId集合
    var table_data = [];

    //数据
    var $node = {
        expirationTime : $("#expirationTime"),
        beginDate : '',
        endDate : ''
    }



    //过期时间范围
    laydate.render({
        elem: '#expirationTime',
        type: 'datetime',
        range: true,
        theme: 'molv'
    })

    //表格对象
    var layuiTable = common.layuiTable.render(table,{
        elem: '#table-id'    //页面table的id
        , url: '/ad/push/app/showList' //后台接口
        ,method: 'post'
        , cellMinWidth: 80 //全局定义常规单元格的最小宽度，
        , cols: [[
            { type: 'checkbox' }
            , { field: 'adTitle', title: '广告名称', align: 'center'}
            , { field: 'adCode', title: '广告编号' , align: 'center'}
            , { field: 'adTypeName', title: '广告类型', align: 'center'}
            , { field: 'videoUri', title: '图片 | 视频' ,templet: '#videoUri', align: 'center'}
            , { field: 'sort', title: '广告排序' , align: 'center'}
            , { field: 'isEnable', title: '状态',align:'center',templet: '#entity_is_enable' }
            ,{ field: 'createAccountName', title: '创建人', align: 'center' }
            ,{ field: 'createDate', align: 'center', title: '创建时间' ,templet:'<div>{{ layui.util.toDateString(d.createDate) }}</div>'}
            ,{ field: 'expirationTime', align: 'center', title: '过期时间'}
            , { field: 'edit',title: '操作', toolbar: '#table-operate-id', align: 'center',width:180 }
        ]]
        //  开启分页功能
        , page: true
        ,done:function(res,curr,count){
            // 设置换页勾选之前的
            table_data = res.data;
            for(var i=0;i<res.data.length;i++){
                for(var j=0;j<ids.length;j++){
                    if(res.data[i].id==ids[j]){
                        //这里才是真正的有效勾选
                        res.data[i]["LAY_CHECKED"]='true';
                        //找到对应数据改变勾选样式，呈现出选中效果
                        var index= res.data[i]['LAY_TABLE_INDEX'];
                        $('.layui-table tr[data-index=' + index + '] input[type="checkbox"]').prop('checked', true);
                        $('.layui-table tr[data-index=' + index + '] input[type="checkbox"]').next().addClass('layui-form-checked');
                    }
                }
            }
            //设置全选checkbox的选中状态，只有改变LAY_CHECKED的值， table.checkStatus才能抓取到选中的状态
            var checkStatus = table.checkStatus('table-id');
            if(checkStatus.isAll){
                $(' .layui-table-header th[data-field="0"] input[type="checkbox"]').prop('checked', true);
                $('.layui-table-header th[data-field="0"] input[type="checkbox"]').next().addClass('layui-form-checked');
            }

            //图片放大
            layer.photos({
                photos: '#layPhotosTbImg',
                shade: .1,
                closeBtn: true
            });
        }
    });

    //复选框选中监听,将选中的id 设置到缓存数组,或者删除缓存数组
    table.on('checkbox(table-id)', function (obj) {
        if(obj.checked==true){
            if(obj.type=='one'){
                ids.push(obj.data.id)
            }else{
                for(var i=0;i<table_data.length;i++){
                    ids.push(table_data[i].id);
                }
            }
        }else{
            if(obj.type=='one'){
                for(var i=0;i<ids.length;i++){
                    if(ids[i]==obj.data.id){
                        ids.splice(i,1);
                        return;
                    }
                }
            }else{
                for(var i=0;i<ids.length;i++){
                    for(var j=0;j<table_data.length;j++){
                        if(ids[i]==table_data[j].id){
                            ids.splice(i,1);
                            i--;
                            break;
                        }
                    }
                }
            }
        }
    });

    //  重新加载表格
    var reloadTable = function(){
        if ($node.expirationTime.val() != null){
            //需要带空格
            var dates = $node.expirationTime.val().split(" - ");
            if(dates.length>1){
                var beginDate = dates[0];
                var endDate = dates[1];
                $node.beginDate = beginDate;
                $node.endDate = endDate;
            }
        }
        //重新加载表格
        layuiTable.reload({
            where:{
                adTitle    :   $('#selectedAdTitle').val(),
                adCode    :   $('#selectedAdCode').val(),
                isEnable    :   $('#isEnable').val(),
                beginDate : $node.beginDate,
                endDate : $node.endDate
            }
            //重新从第1页开始
            ,page: {
                curr: 1
            }
        });
    };

    //监听行工具事件  lay-filter="table-id"
    table.on('tool(table-id)', function(obj){
        var data = obj.data;
        if(obj.event === 'del'){
            layer.confirm('是否确认删除？',{icon: 7, title:'提示'}, function(index){
                common.sendAsyncRequest("/ad/push/app/delete/"+data.id,'GET',"",function (result){
                    //刷新表格
                    layuiTable.reload();
                    layer.msg("删除成功");
                    layer.close(index);//关闭弹窗提示
                });
            });
        } else if(obj.event === 'edit'){ //编辑
            common.openDefaultIframe({
                title   :   '修改',
                content :   '/ad/push/app/edit/view?id='+data.id
            });
        }
    });

    //  监听禁用状态
    layui.form.on('switch(switch_is_enable)', function(obj) {
        //  获取选中行数据
        var data = JSON.parse(decodeURIComponent($(this).data('json')));
        //  发送请求
        common.sendAsyncRequest("/ad/push/app/updateIsEnable", "POST", {
            id: data.id,
            isEnable: obj.elem.checked ? 0 : -1
        }, function(result){
            if (!result.data) {
                obj.othis.click();
            }
        });
    });

    //监听查询
    form.on('submit(query)', function(){
        reloadTable();
    });

    //监听重置
    form.on('submit(reset)', function(){
        $('#selectedAdTitle').val('');
        $('#selectedAdCode').val('');
        $('#isEnable').val('');
        $('#expirationTime').val('');
        reloadTable();
    });

    //监听公告发布
    form.on('submit(add)', function(){
        common.openDefaultIframe({
            title   :   '添加',
            content :   '/ad/push/app/add/view'
        });
    });

    //监听批量删除
    form.on('submit(batchdel)', function(){
        if(ids.length == 0 ){
            layer.msg("请选择要删除的数据。");
            return;
        }
        layer.confirm('是否确认删除？',{icon: 7, title:'提示'}, function(index){
            common.sendAsyncRequest("/ad/type/deleteAdType/"+ids,'GET',"",function (result){
                //刷新表格
                layuiTable.reload();
                clearCheckbox();
                layer.msg("删除成功");
                layer.close(index);//关闭弹窗提示
            });
        });
    });


});

