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
49
50
51
52
53
54
55
import { isDev } from '@/utils/tools';
import PageContainer from '@/components/BasePageContainer';
import { Tabs } from 'antd';
import React from 'react';
import styles from './index.less';
import SevenParams from '@/pages/mobileConfig/menuconfig/SevenParams';
const { TabPane } = Tabs;
/**
* 嵌套iframe的组件
* @param {*} props 可在路由配置里面配置url参数
*/
const FrameContainer = props => {
const { route } = props;
const { url = props.url, tabs = props.tabs, tabProps = {} } = route;
const renderedFrame = tabs ? (
<Tabs type="card" hideAdd {...tabProps}>
{tabs.map(({ url: iframeUrl, tabName, type = '' }) => (
<TabPane tab={tabName} key={tabName}>
{type && type === 'sevenParams' ? (
<SevenParams />
) : (
<iframe
title={tabName}
src={`${
isDev ? process.env.PROXY : window.location.origin
}${iframeUrl}`}
/>
)}
</TabPane>
))}
</Tabs>
) : (
<iframe
title="iframe"
src={`${isDev ? process.env.PROXY : window.location.origin}${url}`}
/>
);
return (
<PageContainer
className={styles.container}
title={false}
style={{
display: 'flex',
flexDirection: 'column',
height: 'calc(100% + 11px)',
}}
>
{renderedFrame}
</PageContainer>
);
};
export default FrameContainer;