nav-bar.js 3.92 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97

vatDongfengModule.directive('dongfengNavBar', ['$log', 'region', 'enums',
function ($log, region, enums) {
    'use strict';

    $log.debug('dongfengNavBar.ctor()...');

    return {
        restrict: 'E',
        templateUrl: '/app/vat/dongfengWrapper/nav-bar/nav-bar.html' + '?_=' + Math.random(),
        replace: true,
        scope: {
            type: '='
        },
        controller: 'navBarController',
        link: function ($scope, $element, $attr) {

            $scope.setFrameHeight = function () {
                var pageHeight = $(window).height();
                if ($scope.type !== 5) {
                    $('#dfiframe').css('height', (pageHeight - 120) + 'px')
                    if ($(window.frames["dfiframe"].document).find("#spreadjsDYS").length > 0) {
                        $(window.frames["dfiframe"].document).find("#spreadjsDYS").css('height', (pageHeight - 180) + 'px');
                        $(window.frames["dfiframe"].document).find("#ss").css('height', (pageHeight - 180) + 'px');
                        $(window.frames["dfiframe"].document).find('#page-wrapper').css('min-height', (pageHeight - 120) + 'px');
                    }
                }
                else
                {
                    $('#dfiframe').css('height', (pageHeight) + 'px');
                }
            };

            var ele = $(".datepicker");
            ele.datepicker({
                startDate: $scope.startDate,
                endDate: $scope.endDate,
                language: region,
                viewMode: 1,
                minViewMode: 1,
                autoclose: true,//选中之后自动隐藏日期选择框
                clearBtn: false,//清除按钮
                todayBtn: false,//今日按钮
                format: $scope.dateFormat//日期格式,详见 http://bootstrap-datepicker.readthedocs.org/en/release/options.html#format
            }).on('changeDate', function (e) {
                $scope.changeDate(e);
            });
            ele.datepicker("setDate", $scope.selectedDate);
            $scope.elePicker = ele;

            $scope.menuStates = enums.vatMenuStates;
            $scope.menuState = enums.vatMenuStates.expanded;

            // Click to collapse the top menu
            // Param collapseMenu should be 1 to collapse, and 2 to expand.
            // 0: Expanded; 1: Collapsing, 2: Expanding, 3: Collapsed
            $scope.collapseMenu = function (collapseMenu) {
                $scope.menuState = collapseMenu;
            };

            // Handle css for top menu while collapse animation ended
            $scope.headerAnimationEnd = function ($event) {
                // Here we have to add class `collapsed` with JQuery grammar, because we want
                // it work immediately.
                if ($scope.menuState === enums.vatMenuStates.collapsing) {
                    angular.element('.vat-header').addClass('collapsed');
                }

                $scope.$apply(function () {
                    if ($scope.menuState === enums.vatMenuStates.collapsing) {
                        $scope.menuState = enums.vatMenuStates.collapsed;
                    }
                    else if ($scope.menuState === enums.vatMenuStates.expanding) {
                        $scope.menuState = enums.vatMenuStates.expanded;
                    }
                });
            }

            // Repaint spreadJS while spreadJS control expanded already
            $scope.contentAnimationEnd = function ($event) {
                $scope.$broadcast(enums.vatEvent.layoutChanged);
            };

            $scope.hideLeftSubMenus = function () {
                var iframeid = document.getElementById("dfiframe"); //iframe id

                var obj = iframeid.contentWindow;
                var ifmObj = obj.document.getElementById("page-wrapper");
            };

            $(window).on('resize', function () {
                $scope.setFrameHeight();
            });
        }
    };
}
]);