"use strict";
layui.extend({
    common    :   'js/common',
    orgTree    :   'layui/lay/mymodules/org-tree',
}).use(['jquery','layer','common','table','orgTree','form',],function () {
    //  弹窗插件
    var layer = layui.layer;
    //  Jquery插件
    var $ = layui.jquery;
    //  引入公共模块
    var common = layui.common;
    //引入表单
    var form = layui.form;
    var dropdown = layui.dropdown;
    var $node = {
        nameInput           :   $('#name'),
        serialNumberInput   :   $('#serial_number'),
        onLineStatusSelect  :   $('#on_line_status'),

        id : $('input[name="id"]'),
    };

    //  数据
    var Data = {
        //  当前用户机构Id
        myOrgId     :   parseInt($('#user_org_id').val()),
    };

    //  初始化表单
    var layuiTable = common.layuiTable.render(layui.table,{
        elem: '#data_table'
        ,url: '/device/manage/pagingQuery?isFlowCardDevice=true&orgId=' + Data.myOrgId
        ,cellMinWidth: 80 //全局定义常规单元格的最小宽度，
        , cols: [[
            { field: 'name', title: '设备名称',align:'center' }
            ,{ field: 'alias', title: '设备别名',align:'center' }
            , { field: 'serialNumber', title: '设备序列号',align:'center',minWidth:130 }
            , { title: '设备类型',align:'center',templet:'#device_type',width:100 }
            , { field: 'installPath', title: '安装位置',align:'center',width:100}
            , { field: 'isOut',title: '朝向',align:'center',templet:'#device_is_out',width:60,sort: true}
            , { title: '状态',align:'center',width:80,templet: function (entity) {
                    if (entity['onlineStatus'] === 1){
                        return '<span class="layui-badge layui-bg-green">在线</span>';
                    } else {
                        return '<span class="layui-badge layui-bg-cyan">离线</span>';
                    }
                }
            }
            , { title: '最后通信时间',align:'center',width:160,templet:function (entity) {
                    return null == entity['lastHeartbeat'] ? '' : layui.util.toDateString(new Date(parseInt(entity['lastHeartbeat'])), 'yyyy-MM-dd HH:mm:ss');
                }
            }
            , { field: 'versionNumber', title: '版本号',align:'center',sort: true }
            , { title: '操作',width:180, align: 'center',toolbar: '#table-operate'}
        ]]
        , page: true
        ,done   :   function(result){
            initBindDeviceFn();
        }
    });

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

    //  重新加载表格
    var selectedItem = undefined;
    var reloadTable = function(obj){
        //  重新加载表格
        layuiTable.reload({
            //  设定异步数据接口的额外参数
            where: {
                name            :   $node.nameInput.val(),
                serialNumber    :   $node.serialNumberInput.val(),
                onlineStatus    :   $node.onLineStatusSelect.val(),
                selectedId      :   selectedItem ? selectedItem.id : '',
                //排序
                sortField   :   obj?obj.field:'',
                sortOrder   :   obj?obj.type:'',
            }
            //  重新从第1页开始
            ,page: {
                curr: 1
            },
            initSort: obj,
        });
    };

    //  加载树形列表
    layui.orgTree({
        //  点击路径的回调函数
        pathClickFn     :   function(item){
            selectedItem = item;
            reloadTable();
        },
        //  点击树的回调函数
        treeClickFn     :   function(item){
            selectedItem = item;
            reloadTable();
        },
        //  当前用户的机构Id
        orgId   :   Data.myOrgId,
        //  截至级别（不包含）
        isShowFlag : 2
    });

    //  操作栏事件绑定
    layui.table.on('tool(data_table_event)',function (obj) {
        switch (obj.event) {
            case 'bind' :
                layer.confirm('是否确认绑定该设备?', {icon: 7, title:'提示'},function(index) {
                    $.ajax({
                        url : '/device/flowCard/bind',
                        data : {
                            id : $node.id.val(),
                            deviceId : obj.data.id,
                        },
                        type : 'POST',
                        success: function (result) {
                            if(result.data){
                                layer.alert('绑定成功');
                                layuiTable.reload();
                            }else {
                                layer.alert('绑定失败')
                            }
                        }
                    });
                    layer.close(index);
                    initBindDeviceFn();
                });
                break;
            default:
                break;
        }
    });

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

    //监听重置
    form.on('submit(reset)', function(){
        $node.nameInput.val("");
        $node.serialNumberInput.val("");
        $node.onLineStatusSelect.val("");
        // 刷新select标签
        form.render('select');
        reloadTable();
    });

    //监听取消绑定
    $(document).on('click','#re_bind',function () {
        layer.confirm('是否确认解除绑定?', {icon: 7, title:'提示'},function(index) {
            $.ajax({
                url : '/device/flowCard/reBind',
                data : {
                    id : $node.id.val(),
                    deviceId : $('input[name="deviceId"]').val()
                },
                type : 'POST',
                success: function (result) {
                    if(result.data){
                        layer.alert('解除成功');
                        layui.use('element', function() {
                            var element = layui.element;
                            element.init();
                        });
                        layuiTable.reload();
                    }else {
                        layer.alert('解除失败')
                    };
                }
            });
            layer.close(index);
            initBindDeviceFn();
        });
    });


    //加载绑定设备
    var initBindDeviceFn = function () {
        common.sendSyncRequest('/flowCardDevice/getDeviceByCardId','get',{flowCardId : $node.id.val()},function(result){
            if(result.data) {
                $('input[name="deviceId"]').val(result.data.id);
                $('#device_name').text(result.data.name);
                $('#device_alias').text(result.data.alias);
                $('#device_serial_number').text(result.data.serialNumber);
                $('#bind_btn').get('0').hidden = false;
            }else {
                $('#device_name').text("该流量卡尚未绑定设备");
                $('#device_alias').text("该流量卡尚未绑定设备");
                $('#device_serial_number').text("该流量卡尚未绑定设备");
                $('#bind_btn').get('0').hidden = true;
            }
        });
    };
});
