import React from 'react'
import { Layout, Form, Row, Col, Input, Icon, Menu, Dropdown, Divider, Upload, message, Card } from 'antd'
import { connect } from 'dva'
import DataConnectBox from './dataConnectBox'
import Ellipsis from 'ant-design-pro/lib/Ellipsis'
const { Content } = Layout
const CardGrid = Card.Grid
const UploadDragger = Upload.Dragger
const Search = Input.Search
class DataConnectConfig extends React.Component {
componentDidMount() {
const { dispatch } = this.props;
dispatch({ type: 'dataConnect/fetchList' });
}
render() {
const { dataSourceDetail, dataConnect, dispatch } = this.props;
const reg = new RegExp('([+ \\- & | ! ( ) { } \\[ \\] ^ \" ~ * ? : ( ) \/])', 'g'); // 需要转义的字符
let filterLabel = dataConnect.filterLabel.replace(new RegExp('(\\\\)', 'g'), '\\$1').replace(reg, '\\$1'); // 添加转义符号
const generateCard = () => {
const operationMenu = (
)
let cards = dataConnect.list.filter(l => {
return ((l.name || '').search(new RegExp('(' + filterLabel + '){1}', 'ig')) !== -1) ||
((l.description || '').search(new RegExp('(' + filterLabel + '){1}', 'ig')) !== -1);
}).map( (l, i) => (
{l.name}
}
onClick={() => {
// 选中项设置
dispatch({ type: 'dataConnect/setSelected', selected: l });
dispatch({ type: 'dataSourceDetail/setFields', fields: [
{ name: 'connectCode', value: l.code },
{ name: 'dbType', value: l.dbType },
{ name: 'address', value: l.address },
{ name: 'port', value: l.port },
{ name: 'dbName', value: l.dbName },
{ name: 'userName', value: l.userName },
{ name: 'password', value: l.password },
{ name: 'target', value: '' },
{ name: 'columns', value: [] },
{ name: 'notice', value: '' },
] });
}}
>
{l.description}
{l.dbType}
))
cards.unshift(
{
dispatch({ type: 'dataConnect/setNewModel', model: {} });
dispatch({ type: 'dataConnect/setNewModelFields', fields: [
{ name: 'visibleBox', value: true },
{ name: 'boxOperation', value: 'create' }
] });
}}>
);
return cards;
}
return (
);
}
}
export default connect(({ present: { dataSourceDetail, dataConnect } }) => ({ dataSourceDetail, dataConnect }))(DataConnectConfig);