main.js 5.8 KB

/* main js  */
var gb_main_ep = new EventProxy(),
    res_load_ep = EventProxy.create('load_data_basic', 'load_tab', 'load_home_layout', 'load_home_line_panel', function () {
        var eq = gb_main_ep;
        // basic data end
        eq.once('data-basic', g_emit('tab'));
        // tabs
        eq.once('tab', function () {
            gb_tabs.init(
                g_emit('home-layout')
            );
        });
        //home layout
        eq.once('home-layout', function () {
            gb_home_layout.layout(
                g_emit('home-line-panel')
            );
        });
        //home line panel
        eq.once('home-line-panel', function () {
            gb_home_line_panel.init(g_emit('gps-time-refresh'));
        });

        //start fixed time refresh gps
        eq.once('gps-time-refresh', function () {
            gb_data_gps.fixedTimeRefresh();
            g_emit('line-schedule-layout')();
        });

        //line schedule layout
        eq.once('line-schedule-layout', function () {
            gb_line_layout.layout(g_emit('render-sch-table'));
        });

        //render schedule table
        eq.once('render-sch-table', function () {
            gb_schedule_table.show(function () {
                //搜索框
                gb_sch_search.init();
                //加载信号状态
                gb_signal_state.init();
            });

            //初始化gps异常判定
            gb_gps_abnormal.initData();

            setTimeout(function () {
                //嵌入地图页面
                $('li.map-panel', '#main-tab-content').load('/real_control_v2/mapmonitor/real.html');
            }, 1000);
            //弹出更新说明
            //showUpdateDescription();
        });

        function g_emit(id) {
            console.log('g_emit [' + id + ']');
            return function () {
                console.log('eq.emitLater(' + id + ')');
                return eq.emitLater(id);
            };
        }
    });

//modal hide remove dom
$(document).on('hide.uk.modal', '.uk-modal', function () {
    $(this).remove();
});

$(document).on('click', '.ct-bottom-drawer-close', function () {
    $(this).parents('.ct-bottom-drawer').removeClass('open');
});

function connectArr(arr, separator, transFun) {
    var rs = '';
    $.each(arr, function (i, item) {
        if (transFun)
            item = transFun(item);
        rs += (separator + item);
    });
    return rs.substr(separator.length);
}

var gb_form_validation_opts = {
    framework: 'uikit',
    locale: 'zh_CN',
    icon: {
        valid: 'uk-icon-check',
        invalid: 'uk-icon-times',
        validating: 'uk-icon-refresh'
    }
};


var notify_wait = function (t) {
    UIkit.notify("<i class='uk-icon-spinner uk-icon-spin'></i> " + t, {
        status: 'info'
    });
};

var notify_succ = function (t) {
    UIkit.notify("<i class='uk-icon-check'></i> " + t, {
        status: 'success'
    });
};

var notify_err = function (t) {
    UIkit.notify("<i class='uk-icon-times'></i> " + t, {
        status: 'danger'
    });
};

var alt_confirm = function (content, succ, okBtn) {
    var modalEl = UIkit.modal.confirm(content, function () {
        succ && succ();
        modalEl.hide();
    }, {
        labels: {
            Ok: okBtn,
            Cancel: '取消'
        }
        , center: true
    });
};

var isArray = function (obj) {
    return Object.prototype.toString.call(obj) === '[object Array]';
};

var notify_err_form = function (t, form) {
    $('.uk-alert-danger', form).remove();
    $('.uk-modal-footer', form).before('<div class="uk-alert uk-alert-danger" data-uk-alert="">' +
        '<a href="" class="uk-alert-close uk-close"></a>' +
        '<p>' + t + '</p>' +
        '</div>');

    enable_submit_btn(form);
};

var enable_submit_btn = function (form) {
    var subBtn = $('button[type=submit]', form);
    if (subBtn) {
        subBtn.removeClass('disabled').removeAttr('disabled');
    }
};

var disabled_submit_btn = function (form) {
    var subBtn = $('button[type=submit]', form);
    if (subBtn) {
        subBtn.addClass('disabled').attr('disabled', 'disabled');
    }
};

var show_modal = function (id, dom) {
    $(document.body).append(dom);
    return UIkit.modal(id, {
        bgclose: false
    }).show();
};

var open_modal = function (pageUrl, data, opt) {
    $.get(pageUrl, function (dom) {
        if (!$(dom).hasClass('uk-modal')) {
            alert('无效的dom片段!');
            return;
        }
        var id = '#' + $(dom).attr('id');

        $(document.body).append(dom);

        UIkit.modal(id, opt).show();

        if (data)
            $(id).trigger('init', data);
    });
};


function showUpdateDescription() {
    //更新说明
    var updateDescription = {
        date: '2017-01-07',
        text: '<h5>1、出场子任务开放使用。</h5><h5>2、班次直放调整后可再次修改班次类型。</h5><h5>3、双击实发,可打开发车信息微调,发车信息微调界面可以直接烂班。</h5><h5>4、主页模拟图可以省略、重命名站点。</h5>'
    };

    var storage = window.localStorage
        , key = 'update_' + updateDescription.date;
    var text = storage.getItem(key);
    if (!text) {
        var modal = '<div class="uk-modal" id="update-description-modal">' +
            '    <div class="uk-modal-dialog">' +
            '    <a class="uk-modal-close uk-close"></a>' +
            '     <div class="uk-modal-header">' +
            '      <h2>' + updateDescription.date + ' 更新说明</h2></div>' + updateDescription.text +
            '    </div>';

        show_modal('#update-description-modal', modal);
        storage.setItem(key, updateDescription.text);
    }
}