/*
 * title: room-manage
 *
*/
layui.extend({
    common    :   'js/common',
    autocomplete    :   'layui/lay/mymodules/autocomplete',
}).use(['table', 'jquery','layer','common','form'], function () {
    //  弹窗插件
    var layer = layui.layer;
    //  Jquery插件
    var $ = layui.jquery;
    //  引入公共模块
    var common = layui.common;
    //  引入表格
    var table = layui.table;
    //  引入表单
    var form = layui.form;

    var layuiTable = null;

    // 查询框表单
    var $node = {
        //  单元id
        unitId  :  $('#unit_id'),
        residentialId  :  $('#residential_id'),
    };

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

    //  重新加载表格
    var reloadTable = function(obj){
        //重新加载表格
        layuiTable.reload({
            where:{
                unitId  :  $node.unitId.val(),
                residentialId  :  $node.residentialId.val(),
                //排序
                sortField   :   obj?obj.field:'',
                sortOrder   :   obj?obj.type:'',
            }
            //重新从第1页开始
            ,page: {
                curr: 1
            },
            initSort:obj
        });
    };

    //  初始化
    (function(){
        //  初始化表格
        layuiTable = common.layuiTable.render(layui.table,{
            elem: '#table_id'
            , url: '/estate/room/showRoomList?unitId=' +$node.unitId.val() + '&residentialId=' + $node.residentialId.val()
            , method: 'GET'//  接口http请求类型，默认：get
            , cellMinWidth: 80//全局定义常规单元格的最小宽度，
            , cols: [[
                {field: 'name', title: '房间名称',width: 200, align: 'center'}
                , {field: 'houseNumber', title: '门牌号', align: 'center', sort: true}
                , {field: 'unitName', title: '所属单元', align: 'center'}
                , {field: 'residentialName', title: '所属小区', align: 'center'}
                , {field: 'userNumber', title: '住户总数', align: 'center'}
                , {field: 'serial', title: '排序', sort: true, edit: 'text', align: 'center'}
                , {title: '操作', width: 180, align: 'center', toolbar: '#table-useradmin-webuser'}
            ]]
            //  开启分页功能
            , page: true
        });
    })();

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

    //监听单元格编辑
    table.on('edit(table_event)', function(obj){
        var value = obj.value;
        if (value != null && value != ''){
            var pass = true;
            var message = '';
            if (value[0] == 0){
                pass = false;
                message = '【失败，请输入不以0开头的数字】';
            }
            if(!/(^$)|^\d+$/.test(value)){
                pass = false;
                message = '【失败，只能填写数字】';
            }
            if (pass){
                common.sendAsyncRequest('/estate/room/updateRoom','POST',obj.data,function (result) {
                    message = result.data?'【成功】':'【失败，请重新修改】';
                });
            }else {
                $(this).val($(this).prev().text());
            }
            layer.msg('修改【'+ obj.data.name +'】房间的序号为['+ value + ']</br>' + message);
        }else {
            $(this).val($(this).prev().text());
        }
    });

    //监听行工具事件
    table.on('tool(table_event)', function(obj){ //注：lay-filter="table-event""
        var data = obj.data; //获得当前行数据
        switch (obj.event) {
            case 'edit'://修改
                common.openDefaultIframe({
                    title: '修改房间',
                    content:  '/estate/room/edit/'+data.id
                });
                break;
            case 'del'://删除
                layer.confirm('是否确认删除？',{icon: 7, title:'提示'}, function(index){
                    common.sendAsyncRequest("/estate/room/deleteRoom",'POST',{
                        id  :  data.id
                    },function (result){
                        if(result.data){
                            //  刷新表格
                            layuiTable.reload();
                            layer.msg("删除成功");
                            layer.close(index);
                        }else{
                            layer.msg("删除失败");
                        }
                    });
                });
                break;
            case 'detail'://管理
                common.openMaxIframe({
                    title : '管理房间——' + data.name,
                    content :  '/estate/room/detail/' +data.id
                });
                break;
            default:
                break;
        };
    });

    //监听房间添加
    form.on('submit(add)', function(){
        common.openDefaultIframe({
            title: '添加房间',
            content:'/estate/room/add/'+$node.unitId.val()+'/'+4
        });
    });

});