index.js 1.72 KB
Newer Older
wanli's avatar
wanli committed
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
import './index.less'
import GridContent from './GridContent';
import PageHeader from '@/components/PageHeader';
import { mapGetters } from "vuex";
const PageHeaderWrapper = {
    props: ["wrapperClassName","loading","content","extraContent","breadcrumbList","title","tabList", "tabActiveKey", "tabBarExtraContent","tabChange"],
    computed: {
        ...mapGetters({
            settings: "global/settings"
        })
    },
    render(){
        const {$slots,wrapperClassName,content,extraContent,breadcrumbList,title,tabList,tabActiveKey,tabBarExtraContent,tabChange} = this
        const children = $slots.default;
        const top = $slots.top;
        return (
            <div style={{ margin: '-24px -24px 0' }} class={wrapperClassName}>
                {top}
                <PageHeader
                wide={this.settings.contentWidth === 'Fixed'}
                home={this.$t('menu.home')}
                content={content}
                extraContent={extraContent}
                breadcrumbList={breadcrumbList}
                title={title}
                linkElement={'router-link'}
                tabList={tabList}
                tabActiveKey={tabActiveKey}
                tabBarExtraContent={tabBarExtraContent}
                tabChange={tabChange}
                itemRender={item => {
                  if (item.locale) {
                    return this.$t(item.locale);
                  }
                  return item.name;
                }}
                />
                {children?(
                    <div class="pageheaderwrapper-content">
                        <GridContent>{children}</GridContent>
                    </div>
                ):null}
            </div>
        )
    }

}
export default PageHeaderWrapper