layui.extend({
    common    :   'js/common',
    orgTree    :   'layui/lay/mymodules/org-tree',
}).use(['tree','table', 'jquery','layer','common','orgTree','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 layuiTable = undefined;
    //引入时间
    var laydate=layui.laydate;

    // 查询框表单
    var $node = {
        // 楼盘名称
        residentialName  :  $('input[name="residentialName"]'),
        //  设备编号
        serialNumber  :  $('input[name="serialNumber"]'),
        //  检测人
        createName  :  $('input[name="createName"]'),
        //  检测时间
        createDate  :  $('input[name="createDate"]')
    };

    //  页面数据
    var pageData = {
        myOrgId     :   parseInt($('#org_id').val())
    };

    //选中树的Id
    var selectTreeId = undefined;
    //查询开始时间
    var beginDate;
    //查询结束时间
    var endDate;
    //  重新加载表格
    var reloadTable = function(){
        //获取时间
        var createDate=$node.createDate.val();
        if(createDate){
            var dates=createDate.split(" - ");
            beginDate=dates[0];
            endDate=dates[1];
        }else{
            beginDate="";
            endDate="";
        }
        //重新加载表格
        layuiTable.reload({
            where:{
                selectTreeId : selectTreeId,
                'deviceInstallation.residentialName'  :  $node.residentialName.val(),
                'deviceInstallation.serialNumber'  :  $node.serialNumber.val(),
                createName  :  $node.createName.val(),
                beginDate:beginDate,
                endDate:endDate
            }
            //重新从第1页开始
            ,page: {
                curr: 1
            }
        });
    };


    //  初始化
    (function(){
        //  加载树形列表
        layui.orgTree({
            //  点击路径的回调函数
            pathClickFn     :   function(item){
                selectTreeId = item.id;
                reloadTable();
            },
            //  点击树的回调函数
            treeClickFn     :   function(item){
                selectTreeId = item.id;
                reloadTable();
            },
            //  当前用户的机构Id
            orgId   :   pageData.myOrgId,
            //  截至级别（不包含）
            isShowFlag : 2
        });
        //  初始化表格
        layuiTable = common.layuiTable.render(layui.table,{
            elem: '#table_id'
            ,url: '/implement/device/test/showList'
            ,method: 'post'
            ,cellMinWidth: 80 //全局定义常规单元格的最小宽度，
            ,cols: [[
                { title: '检测时间',field: 'createDate', align: 'center'  }
                ,{ title: '设备编号', field: 'serialNumber', align: 'center' }
                ,{ title: '设备类型',field: 'deviceType',templet: '#deviceType', align: 'center' }
                ,{ title: '检测人',field: 'createName', align: 'center'  }
                ,{ title: '安装楼盘',field: 'residentialName', align: 'center' }
                ,{ title: '具体位置', align: 'center' ,templet:function (d) {
                        let unitName = d.unitName == null?'':d.unitName;
                        let installPath = d.installPath == null?'':d.installPath;
                        return unitName + installPath;
                    }}
                ,{ title: '审核状态',field: 'checkState',templet: '#checkState', align: 'center'  }
                ,{ title: '操作',width:180,align: 'center', toolbar: '#table-operation' }
            ]]
            //  开启分页功能
            , page: true
        });
    })();

    //监听行工具事件 lay-filter="table_event"
    table.on('tool(table_event)', function(obj){
        var data = obj.data; //获得当前行数据
        switch (obj.event) {
            case 'check'://审核
                layer.prompt({
                    formType: 2,
                    value: '请填写审核不通过原因',
                    title: '审核',
                    area: ['200px', '100px'], //自定义文本域宽高
                    btn: ['审核不通过','审核通过'],
                    btn2: function(index, layero){
                        common.sendAsyncRequest("/implement/device/test/checkState",'POST',{id:data.id,checkState:1},callbackFn);
                    }
                }, function(value, index, elem){
                    if(value=='请填写审核不通过原因'){
                        layer.msg("请填写审核不通过的原因")
                    }else{
                        common.sendAsyncRequest("/implement/device/test/checkState",'POST',{id:data.id,checkState:2,checkOpinion:value,},callbackFn);
                        layer.close(index);
                    }
                });
                break;
            case 'detail'://详情
                common.openDefaultIframe({
                    title: '详情',
                    content:  '/implement/device/test/detail/view/'+data.id
                });
                break;
            default:
                break;
        }
    });

    //回调函数
    function callbackFn(result) {
        if(result.data){
            layer.msg("审核成功",{
                time: 500
                ,shade : [0.1 , '#000' , true]
            },function () {
                //获取当前弹窗出层的名字
                var index = layer.getFrameIndex(window.name);
                //关闭弹窗层
                layer.close(index);
                // 父页面刷新
                location.reload();
            });
        }else {//添加失败
            layer.msg("审核失败");
        }
    }

    //日期时间范围选择
    laydate.render({
        elem: '#create-date-id',
        format:'yyyy-MM-dd HH:mm:ss',
        type: 'datetime',
        range:true, //或 range: '~' 来自定义分割字符
        done: function(value, date, endDate){
        }
    });

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

    //监听重置
    form.on('submit(reset)', function(){
        $node.residentialName.val('');
        $node.serialNumber.val('');
        $node.createName.val('');
        $node.createDate.val('');
        form.render('select');
        reloadTable();
    });

    //监听导出
    form.on('submit(export)', function(){
        window.location.href = "/implement/device/test/exportDeviceTest";
    });

});