app-layout.tsx 964 字节
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
import { Vue, Component } from 'vue-property-decorator';
import { VNode } from 'vue';
import './app-layout.less';

/**
 * 应用布局容器
 *
 * @export
 * @class AppLayout
 * @extends {Vue}
 */
@Component({})
export class AppLayout extends Vue {

    /**
     * 绘制内容
     *
     * @returns {VNode}
     * @memberof AppLayout
     */
    public render(): VNode {
        return (
            <div
                class={{
                    'app-layout': true,
                    [this.$uiState.layoutState.styleMode.toLowerCase()]:
                    this.$uiState.layoutState.styleMode !== 'DEFAULT',
                }}
            >
                <div class="app-layout-header-warp">{this.$slots.header}</div>
                <div class="app-layout-content-warp">{this.$slots.default}</div>
                <div class="app-layout-footer-warp">
                    {this.$slots.footer}
                </div>
            </div>
        );
    }
}