UNPKG

fastlion-amis

Version:

一种MIS页面生成工具

65 lines (64 loc) 3.16 kB
"use strict"; /** * @file Layout * @description 页面布局,支持左边栏、顶部、内容区域布局。 * @author fex * * @param 参数说明: * * children 会渲染在内容区。 * * header 头部区域 * * aside 边栏 * * asideClassName 边栏附加样式class * * footer 页脚 * * folder 是否收起边栏 * * asideFixed 边栏是否为固定模式,如果是会用 position:fixed 来定位. * * className 附件的样式名 * * contentClassName 内容区域附加样式名称 */ Object.defineProperty(exports, "__esModule", { value: true }); exports.Layout = void 0; var tslib_1 = require("tslib"); var react_1 = (0, tslib_1.__importDefault)(require("react")); var theme_1 = require("../theme"); function Layout(_a) { var _b; var header = _a.header, headerClassName = _a.headerClassName, aside = _a.aside, asideClassName = _a.asideClassName, children = _a.children, className = _a.className, contentClassName = _a.contentClassName, folded = _a.folded, asideFixed = _a.asideFixed, headerFixed = _a.headerFixed, footer = _a.footer, offScreen = _a.offScreen, size = _a.size, boxed = _a.boxed, cx = _a.classnames, bodyClassName = _a.bodyClassName; var body = (react_1.default.createElement("div", { className: cx("Layout-body", contentClassName) }, children)); if (aside) { body = (react_1.default.createElement("div", { className: cx('Layout-content'), role: "main" }, body)); } react_1.default.useEffect(function () { bodyClassName && document.body.classList.add(bodyClassName); return function () { bodyClassName && document.body.classList.remove(bodyClassName); }; }, [bodyClassName]); return (react_1.default.createElement("div", { className: cx("Layout", className, (_b = { 'Layout--boxed': boxed, 'Layout--withAside': !!aside, 'Layout--headerFixed': header ? headerFixed : false, 'Layout--asideFixed': aside ? asideFixed : false, 'Layout--folded': folded, 'Layout--offScreen': offScreen }, _b["Layout--" + size] = size, _b['Layout--noFooter'] = !footer, _b)) }, header ? (react_1.default.createElement("div", { className: cx('Layout-header', headerClassName) }, header)) : null, aside ? (react_1.default.createElement("div", { className: cx("Layout-aside", asideClassName) }, react_1.default.createElement("div", { className: cx('Layout-asideWrap') }, react_1.default.createElement("div", { id: "asideInner", className: cx('Layout-asideInner') }, aside)))) : null, body, footer ? (react_1.default.createElement("footer", { className: cx('Layout-footer'), role: "footer" }, footer)) : null)); } exports.Layout = Layout; Layout.defaultProps = { // asideWide: false, asideFixed: true, asideClassName: '', headerFixed: true, offScreen: false, footer: false }; exports.default = (0, theme_1.themeable)(Layout); //# sourceMappingURL=./components/Layout.js.map