2025-04-02 21:57:33 +08:00

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;