index.html 10.1 KB
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>调派管理</title>
    <!-- font-awesome -->
    <link rel="stylesheet" href="/assets/fontawesome/css/font-awesome.min.css" />
    <link href="/assets/uikit-3.0.0/css/uikit.min.css" rel="stylesheet" type="text/css"/>
    <link href="/assets/css/main.css" rel="stylesheet" type="text/css"/>
    <link href="/assets/css/abnormal_monitor.css" rel="stylesheet" type="text/css"/>
    <link href="/assets/css/ct_autocompleter.css" rel="stylesheet" type="text/css"/>
    <link href="/assets/selectize/css/selectize.default.css" rel="stylesheet" type="text/css"/>
    <link href="/assets/plugins/simplePagination/simplePagination.css" rel="stylesheet" type="text/css"/>
    <link href="/assets/plugins/perfect-scrollbar/perfect-scrollbar.css" rel="stylesheet" type="text/css"/>
    <link href="/assets//plugins/formvalidation/formValidation.min.css" rel="stylesheet"/>

    <!-- flatpickr -->
    <link rel="stylesheet" href="/assets/plugins/flatpickr/flatpickr.min.css" >
    <link rel="stylesheet" href="/assets/plugins/flatpickr/themes/material_orange.css" >
    <!-- jquery contextMenu style -->
    <link rel="stylesheet" href="/assets/plugins/contextmenu/jquery.contextMenu.min.css" />
    <link href="/assets/plugins/toastr/toastr.min.css" rel="stylesheet">

</head>

<body>
<div class="ct-container">
    <div class="uk-card uk-card-default uk-card-body uk-width-1-1@m top_tools">
        <h3 class="uk-card-title"><img src="/assets/svg/park.svg"> 调派系统</h3>
        <div class="ct-btn-list">
            <span class="ct-btn-link lasting" data-name="b_p_manager" data-page="/pages/b_p_manager/b_p_main.html">停放监管</span>
            <span class="ct-btn-link lasting" data-name="abnormal_data" data-page="/pages/abnormal/main.html">异常监管</span>
            <span class="ct-btn-link" data-name="inout_data" data-page="/pages/inout/in_out_main.html">进出场</span>
            <span class="ct-btn-link" data-name="attendance_data" data-page="/pages/attendance/att_data_main.html">签到/退</span>
            <span class="ct-btn-link">计划/任务</span>
            <span class="ct-btn-link" data-name="basic_data" data-page="/pages/basic_data/main.html">基础数据</span>
            <span class="ct-btn-link">系统管理</span>

            <span class="ct-user-info">
                <i uk-icon="icon: user;"></i> admin,在线
            </span>
        </div>
    </div>

    <div class="ct-cont-body"></div>
</div>

<!-- simple pinyin -->
<script src="/assets/plugins/pinyin.js" merge="plugins"></script>
<script src="/assets/plugins/eventproxy.js"></script>
<script src="/assets/plugins/jquery.min.js"></script>
<script src="/assets/uikit-3.0.0/js/uikit.min.js"></script>
<script src="/assets/uikit-3.0.0/js/uikit-icons.min.js"></script>
<script src="/assets/plugins/jquery.serializejson.js"></script>
<script src="/assets/js/common.js"></script>
<script src="/assets/plugins/template.js"></script>
<script src="/assets/selectize/js/standalone/selectize.min.js"></script>
<script src="/assets/plugins/simplePagination/jquery.simplePagination.js"></script>
<script src="/assets/plugins/perfect-scrollbar/perfect-scrollbar.jquery.js"></script>
<script src="/assets/plugins/clipboard.min.js"></script>
<!-- formvalidation- -->
<script src="/assets/plugins/formvalidation/formValidation.min.js" ></script>
<script src="/assets/plugins/formvalidation/zh_CN.js" ></script>
<script src="/assets/plugins/formvalidation/uikit.min.js" ></script>
<!-- moment js -->
<script src="/assets/plugins/moment/moment.min.js" ></script>
<script src="/assets/plugins/moment/zh-cn.js" ></script>
<!-- flatpickr -->
<script src="/assets/plugins/flatpickr/flatpickr.min.js" ></script>
<script src="/assets/plugins/flatpickr/l10n/zh.js" ></script>
<!-- jquery contextMenu -->
<script src="/assets/plugins/contextmenu/jquery.contextMenu.min.js" ></script>
<script src="/assets/plugins/contextmenu/jquery.ui.position.min.js" ></script>
<script src="/assets/plugins/toastr/toastr.min.js"></script>
<script src="/assets/js/tts.js"></script>

<script src="/assets/js/ct_autocompleter.js"></script>
<!-- websocket -->
<script src="/assets/plugins/sockjs-client/sockjs.min.js"></script>
<script>

    var gb_inout_websocket = (function () {

        var schSock = null;
        var recInterval = null;
        var reConnSpace = 1500;//重连间隔
        var reConnCount; //重连次数
        var maxReConn = 6; //最多重连次数

        var new_conn = function () {
            schSock = new SockJS('/sockjs/inout');
            schSock.onopen = function (e) {
                if(reConnCount && reConnCount > 1)
                    console.log('重新连接websocket');
                reConnCount = 1;
                clearInterval(recInterval);
                console.log('webSocket[realcontrol] onopen');
                $('.top_tools').removeClass('scok-colse');
            };

            //接收消息
            schSock.onmessage = function (e) {
                try {
                    var jsonMsg = $.parseJSON(e.data);
                    console.log('websocket...', jsonMsg);
                    msgHandle[jsonMsg.fn](jsonMsg);
                } catch (e) {
                    console.log(e, e.data);
                }
            };

            //断开
            schSock.onclose = function (e) {
                console.log('和服务器连接断开....', e);
                $('.top_tools').addClass('scok-colse');
                //1.5秒后重新连接
                recInterval = setTimeout(function () {
                    reConnCount++;
                    if(reConnCount > maxReConn){
                        clearInterval(recInterval);
                        return;
                    }
                    new_conn();
                }, reConnSpace * reConnCount);
            };
        };

        //初始化websocket连接
        new_conn();

        var msgHandle = {
            carIn: carInFun,
            carOut: carOutFun
        };

        //子片段的进出场回调
        var inoutEventCallbacks = [];

        function carInFun(msg) {
            var text = msg['dataStr'] + " " +msg.nbbm + "进场" + (msg.berthName?(" 停泊位" + msg.berthName):"");
            toastr.info(text);
            gb_tts.speak(text);

            //CCCallFuncN
            $.each(inoutEventCallbacks, function (i, cb) {
                cb(msg);
            });
        }

        function carOutFun(msg) {
            var text = msg['dataStr'] + " " + msg.nbbm + " 出场";
            toastr.info(text);
            gb_tts.speak(text);

            //CCCallFuncN
            $.each(inoutEventCallbacks, function (i, cb) {
                cb(msg);
            });
        }


        var registerCallback = function (cb) {
            if (cb)
                inoutEventCallbacks.push(cb);
        };

        var cancelCallback = function (cb) {
            if(cb){
                removeByValue(inoutEventCallbacks, cb);
            }
        };

        return {
            registerCallback: registerCallback,
            cancelCallback: cancelCallback
        }
    })();
</script>

<script>
    var company_json, company_code_name={};
    var cont = $('.ct-container');
    var top_btn_list = $('.ct-btn-list', cont);
    var current_tcc_name, current_tcc_code;

    //按公司_分公司分组的线路数据
    var groupLineArrays;

    $('.ct-btn-link', top_btn_list).on('click', function () {
        var page = $(this).data('page');
        if(!page)
            return;
        var that = this;
        $('.ct-cont-body', cont).trigger('exit').empty().load(page, function () {
            $('.ct-btn-link.active', top_btn_list).removeClass('active');
            $(that).addClass('active');
        });
    });

    //停车场信息
    $.get('/company_json/curr_tcc_info', function (rs) {
        current_tcc_name = rs.name;
        current_tcc_code = rs.code;
    });

    //loading end...
    var ep = EventProxy.create('load_company', 'load_lines', function (companyData, linesData) {
        groupLineArrays = {};
        var key;
        $.each(linesData, function () {
            key = this['company']+'_'+this['brancheCompany'];
            if(!groupLineArrays[key])
                groupLineArrays[key] = [];

            groupLineArrays[key].push(this);
        });
        //默认显示
        $('.ct-btn-link[data-name=b_p_manager]').trigger('click');
    });

    //加载公司编码对照数据
    $.get('/company_json', function (rs) {
        company_json = JSON.parse(rs);
        for(var c in company_json){
            company_code_name[c] = company_json[c].name;
            for(var f in company_json[c]['fgs'])
                company_code_name[c+'_'+f]=company_json[c]['fgs'][f];
        }
        ep.emit('load_company', company_json);
    });

    //加载线路数据
    $.get('/line/all', function (rs) {
        ep.emit('load_lines', rs.list);
    });

    $(document).on('submit', 'form', function () {
        return false;
    });


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

    //switcher hidden stopPropagation
    $(document).on('hidden', '.uk-switcher', function (e) {
        e.stopPropagation();
    });

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

    var flatpickrDateTimeConfig = {
        enableTime: true,
        time_24hr: true,
        "locale": "zh",
        onOpen: function () {
            $(this.calendarContainer).addClass('showTimeInput');
        }
    };

    toastr.options = {
        "timeOut": "10000"
    };

    function removeByValue(arr, val) {
        for(var i=0; i<arr.length; i++) {
            if(arr[i] == val) {
                arr.splice(i, 1);
                break;
            }
        }
    }
</script>

<!-- 异常监管 JS -->
<script src="/pages/abnormal/js/o_s_card.js"></script>
<script src="/pages/abnormal/js/o_s_abnormal.js"></script>
<script src="/pages/abnormal/js/o_s_basic_data.js"></script>
</body>
</html>