Commit b0084bbb by zhaochengxiang

模型列表表头按钮导入导出合并

parent 78db0dc5
...@@ -2,6 +2,7 @@ import React, { useState } from 'react'; ...@@ -2,6 +2,7 @@ import React, { useState } from 'react';
import { Modal, Button, Form, Radio } from 'antd'; import { Modal, Button, Form, Radio } from 'antd';
const exportModes = [ const exportModes = [
{ name: '导出DDL', key: 'ddl' },
{ name: '导出Erwin', key: 'erwin' }, { name: '导出Erwin', key: 'erwin' },
{ name: '导出Excel', key: 'excel' }, { name: '导出Excel', key: 'excel' },
{ name: '导出Word', key: 'word' }, { name: '导出Word', key: 'word' },
...@@ -20,7 +21,6 @@ const ExportOtherModal = (props) => { ...@@ -20,7 +21,6 @@ const ExportOtherModal = (props) => {
const onOk = async() => { const onOk = async() => {
try { try {
await form.validateFields(); await form.validateFields();
reset(); reset();
onCancel && onCancel(modeKey); onCancel && onCancel(modeKey);
...@@ -62,7 +62,7 @@ const ExportOtherModal = (props) => { ...@@ -62,7 +62,7 @@ const ExportOtherModal = (props) => {
forceRender forceRender
visible={visible} visible={visible}
title='模型导出' title='模型导出'
width={520} width={540}
onCancel={cancel} onCancel={cancel}
footer={footer} footer={footer}
> >
......
...@@ -15,7 +15,7 @@ const importModes = [ ...@@ -15,7 +15,7 @@ const importModes = [
] ]
const ImportModal = (props) => { const ImportModal = (props) => {
const { view, catalogId, visible, onCancel } = props; const { view, catalogId, visible, onCancel, onCancelByWord } = props;
const [ modeKey, setModeKey ] = useState(''); const [ modeKey, setModeKey ] = useState('');
const [ hints, setHints ] = useState([]); const [ hints, setHints ] = useState([]);
...@@ -46,7 +46,7 @@ const ImportModal = (props) => { ...@@ -46,7 +46,7 @@ const ImportModal = (props) => {
callback: data => { callback: data => {
setConfirmLoading(false); setConfirmLoading(false);
reset(); reset();
onCancel && onCancel(true, [], data||{}); onCancelByWord && onCancelByWord(true, data||{});
}, },
error: () => { error: () => {
setConfirmLoading(false); setConfirmLoading(false);
...@@ -62,7 +62,7 @@ const ImportModal = (props) => { ...@@ -62,7 +62,7 @@ const ImportModal = (props) => {
callback: data => { callback: data => {
setConfirmLoading(false); setConfirmLoading(false);
reset(); reset();
onCancel && onCancel(false, data||[]); onCancel && onCancel(false, true, data||[]);
}, },
error: () => { error: () => {
setConfirmLoading(false); setConfirmLoading(false);
...@@ -71,13 +71,9 @@ const ImportModal = (props) => { ...@@ -71,13 +71,9 @@ const ImportModal = (props) => {
} else if (modeKey==='excel-copy') { } else if (modeKey==='excel-copy') {
if ((hints||[]).length === 0) { reset();
showMessage('warn', '请先从Excel文件中复制内容'); onCancel && onCancel(false, true, hints||[]);
} else {
reset();
onCancel && onCancel(false, hints||[]);
}
} }
} catch (errInfo) { } catch (errInfo) {
...@@ -123,7 +119,7 @@ const ImportModal = (props) => { ...@@ -123,7 +119,7 @@ const ImportModal = (props) => {
<Modal <Modal
forceRender forceRender
visible={visible} visible={visible}
title='模型导入' title='新建模型'
width={520} width={520}
onCancel={cancel} onCancel={cancel}
footer={footer} footer={footer}
...@@ -131,11 +127,11 @@ const ImportModal = (props) => { ...@@ -131,11 +127,11 @@ const ImportModal = (props) => {
<Form form={form}> <Form form={form}>
<Form.Item <Form.Item
name='mode' name='mode'
label='导入方式' label='新建方式'
rules={[ rules={[
{ {
required: true, required: true,
message: '请选择导入方式', message: '请选择新建方式',
}, },
]} ]}
> >
......
...@@ -264,17 +264,31 @@ class Model extends React.Component { ...@@ -264,17 +264,31 @@ class Model extends React.Component {
this.setState({ importExcelVisible: visible }); this.setState({ importExcelVisible: visible });
} }
onImportModalCancel = (refresh = false, hints = [], wordData = {}) => { onImportModalCancel = (refresh = false, confirm = false, hints = []) => {
const { catalogId, currentView } = this.state; const { catalogId, currentView } = this.state;
this.setState({ importModalVisible: false }, () => { this.setState({ importModalVisible: false }, () => {
refresh && this.onTableChange(); refresh && this.onTableChange();
if ((hints||[]).length > 0) { if (confirm) {
setTimeout(() => { if ((hints||[]).length > 0) {
window.open(`/data-govern/data-model-action?${Action}=add&${CatalogId}=${(currentView==='dir')?(catalogId||''):''}&${Hints}=${encodeURIComponent((hints||[]).join(','))}`); setTimeout(() => {
}, 1000); window.open(`/data-govern/data-model-action?${Action}=add&${CatalogId}=${(currentView==='dir')?(catalogId||''):''}&${Hints}=${encodeURIComponent((hints||[]).join(','))}`);
}, 1000);
} else {
setTimeout(() => {
window.open(`/data-govern/data-model-action?${Action}=add&${CatalogId}=${(currentView==='dir')?(catalogId||''):''}`);
}, 1000);
}
} }
});
}
onImportModalCancelByWord = (refresh = false, wordData = {}) => {
const { catalogId, currentView } = this.state;
this.setState({ importModalVisible: false }, () => {
refresh && this.onTableChange();
if (wordData && ((wordData.msg||'')!=='')) { if (wordData && ((wordData.msg||'')!=='')) {
showNotifaction('提示', wordData.msg); showNotifaction('提示', wordData.msg);
...@@ -313,7 +327,9 @@ class Model extends React.Component { ...@@ -313,7 +327,9 @@ class Model extends React.Component {
const { selectModelerIds } = this.state; const { selectModelerIds } = this.state;
this.setState({ exportOtherModalVisible: false }, () => { this.setState({ exportOtherModalVisible: false }, () => {
if (key === 'erwin') { if (key === 'ddl') {
this.setState({ exportDDLModalVisible: true });
} else if (key === 'erwin') {
dispatch({ dispatch({
type: 'datamodel.exportERWinString', type: 'datamodel.exportERWinString',
payload: { payload: {
...@@ -365,19 +381,6 @@ class Model extends React.Component { ...@@ -365,19 +381,6 @@ class Model extends React.Component {
this.setState({ importStockWordDrawerVisible: true }); this.setState({ importStockWordDrawerVisible: true });
} }
onMoreMenuClick = (e) => {
const { key } = e;
if (key === 'export-ddl') {
this.onExportDDLBtnClick();
} else if (key === 'export-other') {
this.onExportOtherBtnClick();
} else if (key === 'catalog-change') {
this.onRecatalogBtnClick();
} else if (key === 'delete') {
this.onBatchDeleteBtnClick();
}
}
treeToggleClick = () => { treeToggleClick = () => {
this.setState({ expandTree: !this.state.expandTree }); this.setState({ expandTree: !this.state.expandTree });
} }
...@@ -425,34 +428,6 @@ class Model extends React.Component { ...@@ -425,34 +428,6 @@ class Model extends React.Component {
{...this.props} /> {...this.props} />
); );
const moreMenu = () => {
const { selectModelerIds } = this.state;
return <Menu onClick={this.onMoreMenuClick}>
<Menu.Item key='export-ddl' disabled={(selectModelerIds||[]).length===0}>
<Tooltip title={(selectModelerIds||[]).length===0?'请先选择模型':''}>
导出DDL
</Tooltip>
</Menu.Item>
<Menu.Item key='export-other' disabled={(selectModelerIds||[]).length===0}>
<Tooltip title={(selectModelerIds||[]).length===0?'请先选择模型':''}>
导出其他
</Tooltip>
</Menu.Item>
<Menu.Item key='catalog-change' disabled={(selectModelerIds||[]).length===0}>
<Tooltip title={(selectModelerIds||[]).length===0?'请先选择模型':''}>
变更目录
</Tooltip>
</Menu.Item>
<Menu.Item key='delete' disabled={(selectModelerIds||[]).length===0}>
<Tooltip title={(selectModelerIds||[]).length===0?'请先选择模型':''}>
删除
</Tooltip>
</Menu.Item>
</Menu>
}
const classes = classNames('data-model', { const classes = classNames('data-model', {
'data-model-collapse': !expandTree 'data-model-collapse': !expandTree
}); });
...@@ -487,21 +462,33 @@ class Model extends React.Component { ...@@ -487,21 +462,33 @@ class Model extends React.Component {
> >
<Space> <Space>
<Space> <Space>
<Button onClick={this.onImportUnconditionBtnClick}>新建</Button> <Button onClick={() => { this.setState({ importModalVisible: true }); }}>新建</Button>
</Space> </Space>
<Space> <Space>
<Button onClick={() => { this.setState({ importModalVisible: true }); }}>导入</Button> <Tooltip title={(selectModelerIds||[]).length===0?'请先选择模型':''}>
<Button onClick={this.onExportOtherBtnClick} disabled={(selectModelerIds||[]).length===0}>导出</Button>
</Tooltip>
</Space> </Space>
<Space> <Space>
<Tooltip title={startFlowTip}> <Tooltip title={startFlowTip}>
<Button onClick={this.startFlow} disabled={disableStartFlow}>送审</Button> <Button onClick={this.startFlow} disabled={disableStartFlow}>送审</Button>
</Tooltip> </Tooltip>
</Space> </Space>
<Space>
<Tooltip title={(selectModelerIds||[]).length===0?'请先选择模型':''}>
<Button onClick={this.onRecatalogBtnClick} disabled={(selectModelerIds||[]).length===0}>变更目录</Button>
</Tooltip>
</Space>
<Space> <Space>
<Dropdown overlay={moreMenu} trigger={['click']} placement="bottomLeft"> <Tooltip title={(selectModelerIds||[]).length===0?'请先选择模型':''}>
<Button>更多<DownOutlined /></Button> <Button onClick={this.onBatchDeleteBtnClick} disabled={(selectModelerIds||[]).length===0}>删除</Button>
</Dropdown> </Tooltip>
</Space> </Space>
</Space> </Space>
<Space> <Space>
...@@ -550,6 +537,7 @@ class Model extends React.Component { ...@@ -550,6 +537,7 @@ class Model extends React.Component {
catalogId={catalogId} catalogId={catalogId}
visible={importModalVisible} visible={importModalVisible}
onCancel={this.onImportModalCancel} onCancel={this.onImportModalCancel}
onCancelByWord={this.onImportModalCancelByWord}
/> />
<ImportStockWordDrawer <ImportStockWordDrawer
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment