108 lines
3.6 KiB
JavaScript
108 lines
3.6 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports["default"] = exports.GlobalHeaderProps = void 0;
|
|
|
|
require("./index.less");
|
|
|
|
var _debounce = _interopRequireDefault(require("lodash/debounce"));
|
|
|
|
var _vueTypes = _interopRequireDefault(require("ant-design-vue/es/_util/vue-types"));
|
|
|
|
var _util = require("../../utils/util");
|
|
|
|
require("ant-design-vue/es/icon/style");
|
|
|
|
var _icon = _interopRequireDefault(require("ant-design-vue/es/icon"));
|
|
|
|
var _SiderMenu = require("../SiderMenu/SiderMenu");
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
|
|
var GlobalHeaderProps = {
|
|
collapsed: _vueTypes["default"].bool,
|
|
handleCollapse: _vueTypes["default"].func,
|
|
isMobile: _vueTypes["default"].bool.def(false),
|
|
fixedHeader: _vueTypes["default"].bool.def(false),
|
|
logo: _vueTypes["default"].any,
|
|
menuRender: _vueTypes["default"].any,
|
|
collapsedButtonRender: _vueTypes["default"].any,
|
|
headerContentRender: _vueTypes["default"].any,
|
|
rightContentRender: _vueTypes["default"].any
|
|
};
|
|
exports.GlobalHeaderProps = GlobalHeaderProps;
|
|
|
|
var defaultRenderCollapsedButton = function defaultRenderCollapsedButton(h, collapsed) {
|
|
return h(_icon["default"], {
|
|
attrs: {
|
|
type: collapsed ? 'menu-unfold' : 'menu-fold'
|
|
}
|
|
});
|
|
};
|
|
|
|
var GlobalHeader = {
|
|
name: 'GlobalHeader',
|
|
props: GlobalHeaderProps,
|
|
render: function render(h) {
|
|
var _this = this;
|
|
|
|
var _this$$props = this.$props,
|
|
isMobile = _this$$props.isMobile,
|
|
logo = _this$$props.logo,
|
|
rightContentRender = _this$$props.rightContentRender,
|
|
headerContentRender = _this$$props.headerContentRender;
|
|
|
|
var toggle = function toggle() {
|
|
var _this$$props2 = _this.$props,
|
|
collapsed = _this$$props2.collapsed,
|
|
handleCollapse = _this$$props2.handleCollapse;
|
|
if (handleCollapse) handleCollapse(!collapsed);
|
|
|
|
_this.triggerResizeEvent();
|
|
};
|
|
|
|
var renderCollapsedButton = function renderCollapsedButton() {
|
|
var _this$$props3 = _this.$props,
|
|
collapsed = _this$$props3.collapsed,
|
|
_this$$props3$collaps = _this$$props3.collapsedButtonRender,
|
|
collapsedButtonRender = _this$$props3$collaps === void 0 ? defaultRenderCollapsedButton : _this$$props3$collaps,
|
|
menuRender = _this$$props3.menuRender;
|
|
|
|
if (collapsedButtonRender !== false && menuRender !== false) {
|
|
return h("span", {
|
|
"class": "ant-pro-global-header-trigger",
|
|
on: {
|
|
"click": toggle
|
|
}
|
|
}, [(0, _util.isFun)(collapsedButtonRender) && collapsedButtonRender(h, collapsed) || collapsedButtonRender]);
|
|
}
|
|
|
|
return null;
|
|
};
|
|
|
|
var headerCls = 'ant-pro-global-header';
|
|
return h("div", {
|
|
"class": headerCls
|
|
}, [isMobile && h("a", {
|
|
"class": "".concat(headerCls, "-logo"),
|
|
key: "logo",
|
|
attrs: {
|
|
href: '/'
|
|
}
|
|
}, [(0, _SiderMenu.defaultRenderLogo)(h, logo)]), renderCollapsedButton(), headerContentRender && h("div", {
|
|
"class": "".concat(headerCls, "-content")
|
|
}, [(0, _util.isFun)(headerContentRender) && headerContentRender(h, this.$props) || headerContentRender]), (0, _util.isFun)(rightContentRender) && rightContentRender(h, this.$props) || rightContentRender]);
|
|
},
|
|
methods: {
|
|
triggerResizeEvent: (0, _debounce["default"])(function () {
|
|
_util.inBrowser && (0, _util.triggerEvent)(window, 'resize');
|
|
})
|
|
},
|
|
beforeDestroy: function beforeDestroy() {
|
|
this.triggerResizeEvent.cancel && this.triggerResizeEvent.cancel();
|
|
}
|
|
};
|
|
var _default = GlobalHeader;
|
|
exports["default"] = _default; |