layui.extend({
    common    :   'js/common',
    region    :   'layui/lay/mymodules/region',
    xmSelect    :   'layui/dist/xm-select',
}).use(['table', 'jquery','layer','common','region','form','xmSelect','laydate'], function () {
    //  弹窗插件
    var layer = layui.layer;
    //  Jquery插件
    var $ = layui.jquery;
    //  引入公共模块
    var common = layui.common;
    //  引入表格
    var table = layui.table;
    //  引入表单
    var form = layui.form;
    //  引入下拉列表组件
    var xmSelect = layui.xmSelect;

    var laydate = layui.laydate;

    var layuiTable = null;

    // 查询框表单
    var $node = {
        //退款单号
        refundNoInput : $('input[name = "refundNo"]'),
        //订单号
        orderNoInput : $('input[name = "orderNo"]'),
        //申请人姓名
        nameInput : $('input[name = "name"]'),
        //申请手机号
        phoneInput : $('input[name = "phone"]'),
        //支付方式
        payType : $('#pay_type'),
        //审核状态
        checkStatus : $('#check_status'),
        //退款状态
        refundStatus : $('#refund_status'),
        //单元搜索
        unitName: $('#un_name'),
        //房间搜索
        roomName: $('#ro_name'),
        //申请时间
        applyDate : $('#apply_date'),
        beginDate: $('#begin_date'),
        endDate: $('#end_date')
    };

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

    //tableId集合
    var table_data = [];

    //  重新加载表格
    var reloadTable = function(obj){
        //重新加载表格
        layuiTable.reload({
            where:{
                refundNo : $node.refundNoInput.val(),
                orderNo: $node.orderNoInput.val(),
                name : $node.nameInput.val(),
                phone : $node.phoneInput.val(),
                payType : $('#pay_type option:selected').val(),
                checkStatus : $('#check_status option:selected').val(),
                refundStatus : $('#refund_status option:selected').val(),
                residentialName: $node.residentialName.val(),
                unitName: $node.unitName.val(),
                roomName: $node.roomName.val(),
                startDateCondition: $node.beginDate.val(),
                endDateCondition: $node.endDate.val(),
                //排序
                sortField   :   obj?obj.field:'',
                sortOrder   :   obj?obj.type:'',
            }
            //重新从第1页开始
            ,page: {
                curr: 1
            },
            initSort:obj
        });
    };

    //日期时间范围
    laydate.render({
        elem: '#apply_date'
        ,type: 'datetime'
        ,range: true
        ,min: '1990-1-1 00:00:00'
        ,max: 0 //最大日期为当天
        ,done: function(value, date, endDate){
            var dateArray = value.split(" - ");
            $("#begin_date").val(dateArray[0]);
            $("#end_date").val(dateArray[1]);
        }
    });

    //  初始化
    (function(){
        //  初始化表格
        layuiTable = common.layuiTable.render(layui.table,{
            elem: '#table_id'
            ,url: '/estate/applyPayRefund/showApplyPayRefundPage?residentialId=' + pageData.residentialId
            ,cellMinWidth: 80 //全局定义常规单元格的最小宽度，
            , cols: [[

                { field: 'refundNo', title: '内部退款单号',align: 'center'}
                ,{ field: 'orderNo', title: '订单号',align: 'center'}
                ,{ field: 'name', title: '申请人姓名',align:'center'}
                ,{ field: 'phone', title: '申请手机号',align:'center'}
                ,{ field: 'residentialName', title: '所在小区名',align:'center'}
                ,{ field: 'unitName', title: '所在单元名',align:'center'}
                ,{ field: 'roomName', title: '所在房间名',align:'center'}
                ,{ field: 'payType', title: '支付方式',align: 'center',sort:true,templet:function (d) {
                        if (d.payType == "wxPay"){
                            return "微信"
                        }else if (d.payType == "aliPay"){
                            return "支付宝"
                        }else {
                            return "未知"
                        }
                    }}
                ,{ field: 'actualPayFee',title: '实际付款金额',align: 'center'}
                ,{ field: 'refundFee', title: '申请退款金额',align: 'center'}
                ,{ field: 'checkStatus', title: '审核状态',align: 'center',sort:true,templet:'#checkStatus'}
                ,{ field: 'refundStatus', title: '退款状态',align:'center',sort:true,templet:'#refundStatus' }
                ,{ field: 'applyDate', title: '申请时间',align: 'center',sort:true}

                // ,{ field: 'checkDate', title: '审核时间',align:'center'}
                // ,{ field: 'updateDate', title: '更新时间',align:'center'}
                // ,{ field: 'refundRecvAccout', title: '退款入账账户',align: 'center'}
                // ,{ field: 'thridRefundId', title: '第三方退款单号',align: 'center'}
                // ,{ field: 'orgPosition', title: '存储位置',align:'center'}
                // ,{ field: 'estatePosition', title: '物业存储位置',align:'center'}
                // ,{ field: 'thirdRefundApply', title: '第三方退款申请提交信息',align:'center'}
                // ,{ field: 'thirdRefundNotify', title: '第三方退款申请结果通知信息',align:'center'}
                ,{ title: '操作',align: 'center', toolbar: '#table-useradmin-webuser',width:180 }
            ]]
            //  开启分页功能
            , page: true
            ,done:function(res,curr,count){}
        });
    })();

    //排序
    layui.table.on('sort(table_event)',function (obj) {
        reloadTable(obj);
    });

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

    //监听重置查询
    form.on('submit(reset)', function(){
        residentialSelect.setValue([]);
        unitSelect.update({data:[],disabled:true});
        roomSelect.update({data:[],disabled:true});
        $node.residentialName.val('');
        $node.unitName.val('');
        $node.roomName.val('');

        $node.refundNoInput.val('');
        $node.nameInput.val('');
        $node.phoneInput.val('');
        $('#pay_type').val('');
        $('#check_status').val(''),
        $('#refund_status').val(''),
        $node.beginDate.val('');
        $node.endDate.val('');
        $node.applyDate.val('');
        form.render('select');
        reloadTable();
    });

    //监听行工具事件 lay-filter="table_event"
    table.on('tool(table_event)', function(obj){
        var data = obj.data; //获得当前行数据
        switch (obj.event) {
            case 'detail'://详情
                common.openDefaultIframe({
                    title: '详情',
                    content:  '/estate/applyPayRefund/detail/'+data.id
                });
                break;
            case 'edit'://审核
                common.openDefaultIframe({
                    title: '审核',
                    content:  '/estate/applyPayRefund/check/'+data.id
                });
                break;
                // layer.confirm('是否确认通过审核？',{icon: 7, title:'提示'}, function(index){
                //     common.sendAsyncRequest("/estate/residential/deleteResidential",'POST',{
                //         id  :  data.id
                //     },function (result){
                //         if(result.data){
                //             //  刷新表格
                //             layuiTable.reload();
                //             layer.msg("删除成功");
                //             layer.close(index);
                //         }else{
                //             layer.msg("删除失败");
                //         }
                //     });
                // });
                // break;
            default:
                break;
        };
    });

    //单元查询下拉列表
    var unitSelect = xmSelect.render({
        el: '#unit_name',
        radio: true,
        prop: {
            name: 'name',
            value: 'id',
        },
        toolbar: {
            show: true,
            list: [{
                name: '清空',
                method(){
                    unitSelect.setValue([]);
                    $node.unitName.val('');
                    roomSelect.update({disabled:true}).setValue([]);
                    $node.roomName.val('');
                }
            }]
        },
        clickClose: true,
        filterable: true,
        remoteSearch: true,
        remoteMethod: function (val, cb, show) {
            $.ajax({
                type: 'GET',
                url: '/estate/unit/getListByLikeName',
                data: {
                    name : val,
                    residentialId : pageData.residentialId,
                    isSelect : true
                },
                success: function (result) {
                    cb(result.list);
                },
                error: function () {
                    cb([]);
                }
            });
        },
        //监听选择
        on: function (data) {
            var change = data.change;
            if (change.length > 0) {
                $node.unitName.val(change[0].name);
                roomSelect.update({data : initRoomFn({residentialName : $node.residentialName.val(),unitName : change[0].name}) , disabled : false});
            }
            if (!data.isAdd) {
                $node.unitName.val('');
                roomSelect.update({data : [] , disabled : true});
            }
            $node.roomName.val('');
        },
        //显示方式
        model: {
            label: {
                type: 'text',
                text: {
                    //左边拼接的字符
                    left: '',
                    //右边拼接的字符
                    right: '',
                    //中间的分隔符
                    separator: ', ',
                },
            }
        },
    });

    //房间查询下拉列表
    var roomSelect = xmSelect.render({
        el: '#room_name',
        radio: true,
        prop: {
            name: 'name',
            value: 'id',
        },
        toolbar: {
            show: true,
            list: [{
                name: '清空',
                method(){
                    roomSelect.setValue([]);
                    $node.roomName.val('');
                }
            }]
        },
        clickClose: true,
        filterable: true,
        remoteSearch: true,
        remoteMethod: function (val, cb, show) {
            $.ajax({
                type: 'GET',
                url: '/estate/room/getListByLikeName',
                data: {
                    name : val,
                    residentialId : pageData.residentialId,
                    unitName : $node.unitName.val(),
                    isSelect : true
                },
                success: function (result) {
                    cb(result.list);
                },
                error: function () {
                    cb([]);
                }
            });
        },
        //监听选择
        on: function (data) {
            var change = data.change;
            if (change.length > 0) {
                $node.roomName.val(change[0].name)
            }
            if (!data.isAdd) {
                $node.roomName.val('');
            }
        },
        //显示方式
        model: {
            label: {
                type: 'text',
                text: {
                    //左边拼接的字符
                    left: '',
                    //右边拼接的字符
                    right: '',
                    //中间的分隔符
                    separator: ', ',
                },
            }
        },
    });

    function initRoomFn(data) {
        var roomList;
        common.sendSyncRequest("/estate/room/getListByLikeName", 'get', {residentialId : data.residentialId,unitId : data.unitId,id : data.id,isSelect : true}, function (result) {
            roomList = result.list;
        });
        return roomList;
    }
});
