layui.extend({
    common    :   'js/common'
}).use(['table', 'jquery','layer','common','form','util','laydate'], function () {
    //  弹窗插件
    var layer = layui.layer;
    //  Jquery插件
    var $ = layui.jquery;
    //  引入公共模块
    var common = layui.common;
    //  引入表格
    var table = layui.table;
    //引入表单
    var form = layui.form;
    //引入工具
    var util=layui.util;
    //引入时间日期
    var laydate=layui.laydate;

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

        //选中时间条件
    var endTime,beginTime;
    var layuiTable=common.layuiTable.render(table,{
        elem: '#table-id'
        ,url: '/estate/estateRepair/showRepairList'
        ,method:'POST'//  接口http请求类型，默认：get
        ,cellMinWidth: 80//全局定义常规单元格的最小宽度，
        , cols: [[
            { type: 'checkbox' }
            ,{ field: 'residentialName', title: '报修小区',align: 'center'}
            ,{ field: 'reportPosition', title: '报修位置',align: 'center' }

            ,{ field: 'beginTime', title: '预约开始时间',align: 'center' }
            ,{ field: 'endTime', title: '预约结束时间',align: 'center' }
            ,{ field: 'reportDetail', title: '报修详情',align: 'center' }
            ,{ field: 'handleStatus', title: '处理状态',templet:"#handleStatusTemplet",align: 'center' }
            ,{ title: '操作',width:180,align: 'center', toolbar: '#table-useradmin-webuser' }
        ]]
        //  开启分页功能
        , 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');
            }
        }
    });

    //复选框选中监听,将选中的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;
                        }
                    }
                }
            }
        }
    });

    //工具条事件 lay-filter="table-id"
    table.on('tool(table-id)', function(obj){
        var data = obj.data;
        switch(obj.event){
            case 'edit':
                common.openDefaultIframe({
                    title   :   '修改物业报修',
                    content :   '/estate/estateRepair/findEstateRepairById/'+data.id //  打开内容
                });
                break;
            case 'delete':
                layer.confirm("是否确认删除？",{icon: 7, title:'提示'},function(){
                    common.sendAsyncRequest("/estate/estateRepair/deleteEstateRepair/"+data.id,'POST',null,function(result){
                        if(result.code=='200'){
                            if(result.data) {
                                layer.msg("删除成功", {
                                    time: 500
                                }, function () {
                                    // 父页面刷新
                                    location.reload();
                                });
                            }else {//删除失败
                                layer.msg("删除失败");
                            }
                        }else {//删除失败
                            layer.msg("删除失败");
                        }
                    });
                });
                break;
        }
    });
     /**
     * 查询加载
     */
     var queryTableFn = function(){
         var params = {
            residentialName  : $("input[name='residentialName']").val(),
             reportPosition  : $("input[name='reportPosition']").val(),
            beginTime:beginTime,
            endTime:endTime
        };

        //重新加载表格
        layuiTable.reload({
            where:{
                residentialName  : params.residentialName,
                reportPosition: params.reportPosition,
                beginTime:params.beginTime,
                endTime:params.endTime
            }
            //重新从第1页开始
            ,page: {
                curr: 1
            }
        });
    };

    //日期时间范围选择
    laydate.render({
        elem: '#laydate-yuyue-datetime'
        ,type: 'datetime'
        ,range:true //或 range: '~' 来自定义分割字符
        ,done: function(value, date, endDate){
            //date得到日期时间对象：{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0}
            if(date.year!=null){
                beginTime=date.year+"-";
                if(date.month<10){
                    beginTime = beginTime +"0"+date.month+ "-";
                }else{
                    beginTime = beginTime + date.month+ "-" ;
                }

                if(date.date<10){
                    beginTime = beginTime +"0"+date.date+ " ";
                }else{
                    beginTime = beginTime + date.date+ " " ;
                }

                if(date.hours<10){
                    beginTime = beginTime +"0"+date.hours+ ":";
                }else{
                    beginTime = beginTime + date.hours+ ":" ;
                }

                if(date.minutes<10){
                    beginTime = beginTime +"0"+date.minutes+ ":";
                }else{
                    beginTime = beginTime + date.minutes+ ":" ;
                }

                if(date.seconds<10){
                    beginTime = beginTime +"0"+date.seconds;
                }else{
                    beginTime = beginTime + date.seconds;
                }
            }else{
                beginTime="";
            }
            //endDate得结束的日期时间对象，开启范围选择（range: true）才会返回。对象成员同上。
            if(endDate.year!=null) {
                endTime = endDate.year + "-";
                if(endDate.month<10){
                    endTime = endTime +"0"+endDate.month+ "-";
                }else{
                    endTime = endTime + endDate.month+ "-" ;
                }

                if(endDate.date<10){
                    endTime = endTime +"0"+endDate.date+ " ";
                }else{
                    endTime = endTime + endDate.date+ " " ;
                }

                if(endDate.hours<10){
                    endTime = endTime +"0"+endDate.hours+ ":";
                }else{
                    endTime = endTime + endDate.hours+ ":" ;
                }

                if(endDate.minutes<10){
                    endTime = endTime +"0"+endDate.minutes+ ":";
                }else{
                    endTime = endTime + endDate.minutes+ ":" ;
                }

                if(endDate.seconds<10){
                    endTime = endTime +"0"+endDate.seconds;
                }else{
                    endTime = endTime + endDate.seconds;
                }

            }else{
                endTime="";
            }
        }
    });

    //监听搜索
    form.on('submit(query)', function(){
        queryTableFn();
    });

    //监听重置查询
    form.on('submit(reset)', function(){
        //清空条件输入框
        $("input[name='residentialName']").val("");
        $("input[name='reportPosition']").val("");
        $("#laydate-yuyue-datetime").val("");

        queryTableFn();
    });

    //监听公告添加
    form.on('submit(add)', function(){
        common.openDefaultIframe({
            title   :   '添加记录',
            content :   '/estate/estateRepair/add' //  打开内容
        });
    });

    //监听批量删除
    form.on('submit(batchdel)', function(){
        if(ids.length == 0 ){
            layer.msg("请选择要删除的数据。");
            return;
        }
        layer.confirm('是否确认删除？',{icon: 7, title:'提示'}, function(index){
            $.ajax({
                url :   '/estate/estateRepair/deleteEstateRepairList',
                type : 'POST',
                // contentType: "application/json;charset=utf-8",
                data :ids,
                success :  function(result){
                    if(result.code == '200'){
                        if(result.data){
                            //  刷新表格
                            layuiTable.reload();
                            clearCheckbox();
                            layer.msg("删除成功");
                            layer.close(index);
                        }else{
                            layer.msg("删除失败");
                        }
                    }else{
                        layer.msg(result.msg);
                    }
                }
            });
        });
    });

});