layui.extend({
    common    :   'js/common',
    orgTree    :   'layui/lay/mymodules/org-tree',
}).use(['tree','table', 'jquery','layer','common','orgTree','form','util'], 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 $node = {
        // 楼盘名称
        residentialName  :  $('input[name="residentialName"]'),
        //  提交人
        createName  :  $('input[name="createName"]'),
    };

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

    //选中树的Id
    var selectTreeId = undefined;
    //  重新加载表格
    var reloadTable = function(){

        //重新加载表格
        layuiTable.reload({
            where:{
                selectTreeId : selectTreeId,
                residentialName  :  $node.residentialName.val(),
                createName  :  $node.createName.val(),
            }
            //重新从第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/acceptance/showList'
            ,method: 'post'
            ,cellMinWidth: 80 //全局定义常规单元格的最小宽度，
            ,cols: [[
                { title: '提交时间',field: 'createDate', align: 'center' }
                ,{ title: '楼盘名字',field: 'residentialName', align: 'center'}
                ,{ title: '提交人',field: 'createName', align: 'center' }
                ,{ title: '立柱机',field: 'pillar', align: 'center' }
                ,{ title: '挂壁机',field: 'wallHung', align: 'center' }
                ,{ title: '雨罩挂壁机', align: 'center',field: 'rainCover'}
                ,{ title: '总台数', align: 'center',templet: function (data) {
                        var pillar=data.pillar?data.pillar:0;
                        var wallHung=data.wallHung?data.wallHung:0;
                        var rainCover=data.rainCover?data.rainCover:0;
                        return pillar+wallHung+rainCover;
                    }}
                ,{ title: '审核状态', align: 'center',field: 'checkState',templet: '#checkState' }
                ,{ title: '操作',width:180,align: 'center', toolbar: '#table-operation' }
            ]]
            //  开启分页功能
            , page: true
        });
    })();

    //头工具栏事件 lay-filter="table-id"
    table.on('toolbar(table_event)', function(obj){
        switch(obj.event){
            case 'query'://查询
                reloadTable();
                break;
            case 'reset'://重置查询
                $node.residentialName.val('');
                $node.serialNumber.val('');
                $node.createName.val('');
                $node.createDate.val('');
                form.render('select');
                reloadTable();
                break;
            case 'export'://重置查询
                window.location.href = "/implement/device/test/exportDeviceTest";
                break;
            default:
                break;
        };
    });

    //监听行工具事件 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/acceptance/checkState",'POST',{id:data.id,checkState:1},callbackFn);
                    }
                }, function(value, index, elem){
                    if(value=='请填写审核不通过原因'){
                        layer.msg("请填写审核不通过的原因")
                    }else{
                        common.sendAsyncRequest("/implement/acceptance/checkState",'POST',{id:data.id,checkState:2,checkOpinion:value,},callbackFn);
                        layer.close(index);
                    }
                });
                break;
            case 'detail'://详情
                common.openDefaultIframe({
                    title: '详情',
                    content:  '/implement/acceptance/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("审核失败");
        }
    }

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

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