Skip to main content

PageContainer

页面容器组件。

引入​

import {PageContainer} from '@baidu/acud-pro-components';

基本用法​

<PageContainer
backUrl='/'
title="详情页"
>
内容
</PageContainer>

副标题​

通过 custom 属性添加副标题。

<PageContainer
backUrl='/'
title="详情页"
custom={<span>这是自定义内容</span>}
>
内容
</PageContainer>

页面描述​

通过 description 属性添加页面描述。

<PageContainer
backUrl='/'
title="详情页"
description="页面描述"
>
内容
</PageContainer>

返回文本​

通过 backText 属性自定义返回文本。

<PageContainer
backUrl='/'
title="详情页"
backText="后退"
>
内容
</PageContainer>

扩展信息​

通过 extra 属性添加扩展信息。

<PageContainer
backUrl='/'
title="详情页"
extra={<span>扩展信息</span>}
>
内容
</PageContainer>

按钮配置​

通过 extra 属性添加扩展信息。

<PageContainer
backUrl='/'
title="详情页"
btnConfig={[
{
id: 'base-custom-btn-id',
text: '按钮1',
btnAction: () => console.log('click btn1')
},
{
text: '按钮2',
disabled: true,
tooltip: {
title: '提示信息'
},
btnAction: () => console.log('click btn2')
}
]}
>
内容
</PageContainer>

卡片模式​

通过 mode 属性设为 card 切换成卡片模式。

<PageContainer
backUrl='/'
title="详情页"
mode="card"
>
<Card style={{marginBottom: '20px'}}>内容1</Card>
<Card>内容2</Card>
</PageContainer>

标签页模式​

通过 mode 属性设为 tabs 切换成标签页模式。

<PageContainer
backUrl='/'
title="详情页"
mode="tabs"
>
<Tabs>
<Tabs.TabPane tab="组织概览" key="overview">
组织概览
</Tabs.TabPane>
<Tabs.TabPane tab="项目列表" key="list">
项目列表
</Tabs.TabPane>
</Tabs>
</PageContainer>

卡片标签模式​

通过 mode 属性设为 tabs-card 切换成卡片 + 标签页的混合模式。

<PageContainer
backUrl='/'
title="详情页"
mode="tabs-card"
>
<Tabs>
<Tabs.TabPane tab="组织概览" key="overview">
<Card style={{marginBottom: '20px'}}>内容1</Card>
<Card>内容2</Card>
</Tabs.TabPane>
<Tabs.TabPane tab="项目列表" key="list">
<Card style={{marginBottom: '20px'}}>内容3</Card>
<Card>内容4</Card>
</Tabs.TabPane>
</Tabs>
</PageContainer>

单个标题组件​

通过 PageContainer.PageTitle 可单独使用 PageTitle 组件。

<PageContainer.PageTitle
backText="返回"
backUrl='/'
title="标题"
custom={<span>这是自定义内容</span>}
description="页面描述"
extra={<span>扩展信息</span>}
btnConfig={[
{
id: 'base-custom-btn-id',
text: '按钮1',
btnAction: () => console.log('click btn1')
},
{
text: '按钮2',
disabled: true,
tooltip: {
title: '提示信息'
},
btnAction: () => console.log('click btn2')
}
]}
/>

单个列表组件​

通过 PageContainer.List 可单独使用 List 组件。

function App() {
const data = [
{
key: '1',
name: 'John Brown',
age: 32,
address: 'New York No. 1 Lake Park'
},
{
key: '2',
name: 'Jim Green',
age: 42,
address: 'London No. 1 Lake Park'
},
{
key: '3',
name: 'Joe Black',
age: 32,
address: 'Sidney No. 1 Lake Park'
}
];

const columns = [
{
title: 'Name',
dataIndex: 'name',
key: 'name',
render: text => <a>{text}</a>
},
{
title: 'Age',
dataIndex: 'age',
key: 'age'
},
{
title: 'Address',
dataIndex: 'address',
key: 'address'
}
];

const tabList = [
{
tab: '任务详情',
key: 'base',
content: <Table columns={columns} dataSource={data} />,
description: '任务详情的描述信息,这是任务详情的描述信息'
},
{
tab: '评估报告',
key: 'report',
content: <Table columns={columns} dataSource={data} />,
description: '评估报告的描述信息,这是评估报告的描述信息'
}
];

return (
<div className="acux-demo-container acux-demo-layout-background">
<PageContainer.List
title="可视化建模"
description="通过拖拉拽和拼接组件的⽅式,形成建模流程。⽤户配置组件参数后,即可训练模型。"
descLink={'/assistance/doc?path=/bml/可视化建模/概述'}
tabList={tabList}
tabInfo={{
defaultActiveKey: 'base'
}}
>
<Table columns={columns} dataSource={data} />
</PageContainer.List>
</div>
);
}

单个详情组件​

通过 PageContainer.Detail 可单独使用 Detail 组件。

function App() {
const tabList = [
{
tab: '任务信息',
key: 'baseInfo',
content: '测试内容1',
description: '任务详情的描述信息,这是任务详情的描述信息'
},
{
tab: '训练过程',
key: 'training-process',
content: '测试内容2',
description: '评估报告的描述信息,这是评估报告的描述信息'
}
];

const btnConfig = [
{
text: '复制',
btnAction: () => history.push('/admin/abc')
}
];

return (
<div className="acux-demo-container acux-demo-layout-background">
<PageContainer.Detail
title="数据详情"
backUrl="/"
btnConfig={btnConfig}
tabList={tabList}
tabInfo={{
defaultActiveKey: 'base'
}}
/>
</div>
);
}

API​

参数说明类型默认值
showPageTitle是否显示 header 部分boolean--
mode布局模式类型card〡tabs〡tabs-card--

PageTitle API​

参数说明类型默认值
idIDstring--
disabled不可点击boolean--
text按钮文本ReactNode--
tooltiphover 提示any--
className类名string--
btnAction操作方法() => void--

PageTitle 组件的定义:

export interface PageTitleProps {
title?: ReactNode; // 标题
backText?: string; // 返回的文本
backUrl?: string | object & {pathname: string}; // 返回的 url
defaultBackUrl?: string;
backParams?: any; // 返回的参数
className?: string; // class 名称
custom?: ReactNode; // 自定义 title 位置的文本
extra?: ReactNode; // title 右侧扩展信息
btnConfig?: PageTitleBtnProps[] // 按钮配置
description?: ReactNode; // 换行的描述信息
}