"use strict";
layui.extend({
    common    :   'js/common',
    orgTree    :   'layui/lay/mymodules/org-tree',
    dropdown    :   'layui/lay/modules/dropdown'
}).use(['jquery','layer','common','table','orgTree','form','dropdown'],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'),
        cardNum : $('#card_num'),
        orgName : $('#org_name'),
        cardStatus : $('#card_status'),
        operator : $('#operator')
    };

    //  数据
    var Data = {
        //  当前用户机构Id
        myOrgId     :   parseInt($('#user_org_id').val()),
        //  当前用户机构Id
        deviceOrgId     :   $('#device_org_id').val(),
        //  表格Id
        tableId     :   'data_table',
        //  选中的Id列表
        selectedIdSet   :   new Set(),

        deviceId : $('#device_id')
    };

    //  初始化表单
    var layuiTable = common.layuiTable.render(layui.table,{
        id: Data.tableId
        ,elem: '#data_entity_table'
        ,url: '/flowCard/manage/pagingQuery?isFlowCardDevice=true'
        ,cellMinWidth: 80 //全局定义常规单元格的最小宽度，
        , cols: [[
            { field: 'cardNum', title: '流量卡号',align:'center' }
            , { field: 'orgName', title: '所属机构',align:'center' }
            , { field: 'operator', title: '运营商',align:'center',templet:'#device_flowCard_operator',sort:true }
            , { field: 'cardStatus', title: '绑定状态',align:'center',templet:'#device_flowCard_cardStatus',sort:true }
            , { field: 'packName', title: '套餐名称',align:'center' }
            , { field: 'packFlow', title: '套餐总流量（MB）',align:'center' }
            , { field: 'createDate', title: '创建时间',align:'center',sort:true }
            , { field: 'endDate', title: '卡有效期',align: 'center',width:160,sort:true,templet:function(d){
                    if (d.beginDate && d.endDate){
                        return layui.util.toDateString(d.beginDate)+" 至 "+layui.util.toDateString(d.endDate);
                    }else{
                        return "";
                    }
                }}
            , { title: '操作', align: 'center',width:180,toolbar: '#table-operate'}
        ]]
        , page: true
        ,done   :   function(result){
            initFlowCardFn();
        }
    });

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

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

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

    //监听流量卡添加
    form.on('submit(add)', function(){
        common.openDefaultIframe({
            title   :   '添加流量卡',
            content :   '/device/flowCard/add',
            maxmin  :   true
        });
    });

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

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

    //  操作栏事件绑定
    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 : obj.data.id,
                            deviceId : Data.deviceId.val(),
                        },
                        type : 'POST',
                        success: function (result) {
                            if(result.data){
                                layer.msg('绑定成功');
                                layuiTable.reload();
                            }else {
                                layer.msg('绑定失败')
                            }
                        }
                    });
                    layer.close(index);
                });
                break;
            case 'updateBind' :
                layer.confirm('是否更换绑定该流量卡?', {icon: 7, title:'提示'},function(index) {
                    $.ajax({
                        url : '/device/flowCard/updateBind',
                        data : {
                            id : obj.data.id,
                            deviceId : Data.deviceId.val(),
                        },
                        type : 'POST',
                        success: function (result) {
                            if(result.data){
                                layer.msg('更换绑定成功');
                                layuiTable.reload();
                            }else {
                                layer.msg('更换绑定失败')
                            }
                        }
                    });
                    layer.close(index);
                });
                break;
            default:
                break;
        }
    });

    //加载绑定流量卡
    var initFlowCardFn = function () {
        common.sendSyncRequest('/flowCard/manage/getOneFlowCard','get',{deviceId : Data.deviceId.val()},function(result){
            if(result.data) {
                $('#card_id').val(result.data.id);
                $('#card_number').text(result.data.cardNum);
                $('#card_operator').text(result.data.operator);
                $('#card_date').text(result.data.beginDate + '-' + result.data.endDate);
                $('#bind_btn').get('0').hidden = false;
            }else {
                $('#card_number').text("该设备尚未绑定流量卡");
                $('#card_operator').text("该设备尚未绑定流量卡");
                $('#card_date').text("该设备尚未绑定流量卡");
                $('#bind_btn').get('0').hidden = true;
            }
        });
    };

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