content.jsx 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import React from 'react'
  2. import { connect } from 'dva'
  3. import { Layout, Tabs } from 'antd'
  4. import BaseConfig from './baseConfig'
  5. import ColumnConfig from './columnConfig'
  6. import AccessConfig from './accessConfig'
  7. import './content.less'
  8. const { Content } = Layout
  9. const TabPane = Tabs.TabPane
  10. class DataSourceDetailContent extends React.Component {
  11. constructor(props) {
  12. super(props);
  13. this.state = {
  14. mode: props.params.code && props.params.code==='create'?'create':'modify',
  15. type: props.params.type,
  16. code: props.params.code,
  17. tab: props.params.tab
  18. }
  19. }
  20. render() {
  21. const { dispatch } = this.props;
  22. const { type, code, tab, mode } = this.state;
  23. const tabs = [{
  24. tabName: 'base',
  25. title: '基本信息',
  26. content: <BaseConfig mode={mode} />,
  27. }, {
  28. tabName: 'column',
  29. title: '数据列配置',
  30. content: <ColumnConfig mode={mode} />,
  31. }, {
  32. tabName: 'access',
  33. title: '数据开放策略',
  34. content: <AccessConfig mode={mode} />,
  35. }];
  36. return (
  37. <Layout className='content-datasourcedetail'>
  38. <Content className='content'>
  39. <Tabs activeKey={tab} type="card"
  40. onChange={(key) => {
  41. dispatch({ type: 'main/redirect', path: '/workshop/datasource/' + type + '/' + code + '/' + key })
  42. this.setState({
  43. tab: key,
  44. })
  45. }}
  46. >
  47. {tabs.map((item, index) => {
  48. return <TabPane className='tab-datasource' key={item.tabName} tab={item.title}>
  49. {item.content}
  50. </TabPane>
  51. })}
  52. </Tabs>
  53. </Content>
  54. </Layout>
  55. )
  56. }
  57. }
  58. export default connect(({ present: { dataSourceDetail, dataConnect } }) => ({ dataSourceDetail, dataConnect }))(DataSourceDetailContent);