Commit eb045ef9 by zhaochengxiang

word模版配置

parent 470d6594
...@@ -130,6 +130,10 @@ export function* exportERWinString(payload) { ...@@ -130,6 +130,10 @@ export function* exportERWinString(payload) {
return yield call(datamodelerService.exportERWinString, payload); return yield call(datamodelerService.exportERWinString, payload);
} }
export function* uploadWordTemplate(payload) {
return yield call(datamodelerService.uploadWordTemplate, payload);
}
export function* validateDataModel(payload) { export function* validateDataModel(payload) {
return yield call(datamodelerService.validateDataModel, payload); return yield call(datamodelerService.validateDataModel, payload);
} }
......
import { PostJSON, GetJSON, filePost } from "../util/axios" import { PostJSON, GetJSON, PostFile } from "../util/axios"
export function importElement(payload) { export function importElement(payload) {
return filePost("/dataassetmanager/elementApi/import", payload); return PostFile("/dataassetmanager/elementApi/import", payload);
} }
export function getLogs(payload) { export function getLogs(payload) {
...@@ -69,11 +69,11 @@ export function listAllTopics(payload) { ...@@ -69,11 +69,11 @@ export function listAllTopics(payload) {
} }
export function directoryImport(payload) { export function directoryImport(payload) {
return filePost("/dataassetmanager/directoryApi/import", payload); return PostFile("/dataassetmanager/directoryApi/import", payload);
} }
export function assetImport(payload) { export function assetImport(payload) {
return filePost("/dataassetmanager/dataAssetApi/import", payload); return PostFile("/dataassetmanager/dataAssetApi/import", payload);
} }
export function getDirectoryById(payload) { export function getDirectoryById(payload) {
......
import { filePost, GetJSON, PostJSON } from "../util/axios" import { PostFile, GetJSON, PostJSON } from "../util/axios"
export function loadDataModelCatalog() { export function loadDataModelCatalog() {
return GetJSON("/datamodeler/easyDataModelerCURD/loadDataModelCatalog"); return GetJSON("/datamodeler/easyDataModelerCURD/loadDataModelCatalog");
...@@ -23,7 +23,7 @@ export function getCurrentDataModelCatalog(payload) { ...@@ -23,7 +23,7 @@ export function getCurrentDataModelCatalog(payload) {
} }
export function extractExcelContent(payload) { export function extractExcelContent(payload) {
return filePost("/datamodeler/easyDataModelerDesign/kickStart", payload); return PostFile("/datamodeler/easyDataModelerDesign/kickStart", payload);
} }
//规则 //规则
...@@ -88,6 +88,10 @@ export function exportERWinString(payload) { ...@@ -88,6 +88,10 @@ export function exportERWinString(payload) {
return GetJSON("/datamodeler/easyDataModelerExport/erWinPluginString", payload); return GetJSON("/datamodeler/easyDataModelerExport/erWinPluginString", payload);
} }
export function uploadWordTemplate(payload) {
return PostFile("/datamodeler/easyDataModelerExport/word/uploadTemplate", payload);
}
export function validateDataModel(payload) { export function validateDataModel(payload) {
return PostJSON("/datamodeler/easyDataModelerConstraint/validateDataModel", payload); return PostJSON("/datamodeler/easyDataModelerConstraint/validateDataModel", payload);
} }
......
...@@ -145,7 +145,7 @@ export function Post(url, payload) { ...@@ -145,7 +145,7 @@ export function Post(url, payload) {
) )
} }
export function filePost(url, payload) { export function PostFile(url, payload) {
const { fileList = null, params = null } = payload||{}; const { fileList = null, params = null } = payload||{};
let formData = new FormData(); let formData = new FormData();
(fileList||[]).forEach(file=> { (fileList||[]).forEach(file=> {
......
import React, { useState } from 'react';
import { Button, Upload, Modal } from 'antd';
import { DownloadOutlined, UploadOutlined } from '@ant-design/icons';
import { dispatchLatest } from '../../../../model';
import { showMessage } from '../../../../util';
const WordTemplateModal = (props) => {
const { onCancel, visible } = props;
const [ fileList, setFileList ] = useState([]);
const [ confirmLoading, setConfirmLoading ] = useState(false);
const downloadTemplate = () => {
window.open("/api/datamodeler/easyDataModelerExport/word/downloadTemplate");
}
const uploadProps = {
onRemove: file => {
const index = fileList.indexOf(file);
const newFileList = fileList.slice();
newFileList.splice(index, 1);
setFileList(newFileList);
},
beforeUpload: file => {
setFileList([file]);
return false;
},
fileList: fileList||[],
accept:".doc",
};
const handleOk = () => {
if ((fileList||[]).length === 0) {
showMessage('info', '请先选择模版上传');
return;
}
setConfirmLoading(true);
dispatchLatest({
type: 'datamodel.uploadWordTemplate',
payload: { fileList },
callback: data => {
setConfirmLoading(false);
reset();
onCancel && onCancel();
},
error: () => {
setConfirmLoading(false);
}
})
}
const reset = () => {
setFileList([]);
}
return (
<Modal
forceRender
visible={visible}
title='word模版配置'
width={520}
confirmLoading={confirmLoading}
onCancel={() => {
reset();
onCancel && onCancel();
}}
onOk={handleOk}
>
<div>
<span className='mr-3'>最新模版下载:</span>
<Button icon={<DownloadOutlined />} onClick={ downloadTemplate }>
下载
</Button>
</div>
<div className='mt-3'>
<span className='mr-3'>最新模版上传:</span>
<Upload {...uploadProps}>
<Button icon={<UploadOutlined />}>
选择文件上传
</Button>
</Upload>
</div>
</Modal>
)
}
export default WordTemplateModal;
\ No newline at end of file
...@@ -4,6 +4,7 @@ import copy from "copy-to-clipboard"; ...@@ -4,6 +4,7 @@ import copy from "copy-to-clipboard";
import ModelTree from './Component/ModelTree'; import ModelTree from './Component/ModelTree';
import ModelTable from './Component/ModelTable'; import ModelTable from './Component/ModelTable';
import WordTemplateModal from './Component/WordTemplateModal';
import TemplateCURDModal from './Component/TemplateCURDModal'; import TemplateCURDModal from './Component/TemplateCURDModal';
import ImportModal from './Component/ImportModal'; import ImportModal from './Component/ImportModal';
import ExportDDLModal from './Component/ExportDDLModal'; import ExportDDLModal from './Component/ExportDDLModal';
...@@ -15,6 +16,7 @@ class Model extends React.Component { ...@@ -15,6 +16,7 @@ class Model extends React.Component {
constructor() { constructor() {
super(); super();
this.state = { this.state = {
wordTemplateModalVisible: false,
templateCURDModalVisible: false, templateCURDModalVisible: false,
importModalVisible: false, importModalVisible: false,
exportDDLModalVisible: false, exportDDLModalVisible: false,
...@@ -76,6 +78,10 @@ class Model extends React.Component { ...@@ -76,6 +78,10 @@ class Model extends React.Component {
}); });
} }
onWordTemplateCURDClick = () => {
this.setState({ wordTemplateModalVisible: true });
}
onTemplateCURDClick = () => { onTemplateCURDClick = () => {
this.setState({ templateCURDModalVisible: true }); this.setState({ templateCURDModalVisible: true });
} }
...@@ -170,13 +176,17 @@ class Model extends React.Component { ...@@ -170,13 +176,17 @@ class Model extends React.Component {
return; return;
} }
window.open(`/api/datamodeler/easyDataModelerExport/word?ids=${selectModelerIds.join(',')}`); window.open(`/api/datamodeler/easyDataModelerExport/word/template?ids=${selectModelerIds.join(',')}`);
} }
onImportExcelVisibleChange = (visible = false, hint = null) => { onImportExcelVisibleChange = (visible = false, hint = null) => {
this.setState({ importExcelVisible: visible }); this.setState({ importExcelVisible: visible });
} }
onWordTemplateCURDModalCancel = () => {
this.setState({ wordTemplateModalVisible: false });
}
onTemplateCURDModalCancel = (refresh = false) => { onTemplateCURDModalCancel = (refresh = false) => {
this.setState({ templateCURDModalVisible: false }); this.setState({ templateCURDModalVisible: false });
refresh && this.onTableChange(); refresh && this.onTableChange();
...@@ -192,7 +202,7 @@ class Model extends React.Component { ...@@ -192,7 +202,7 @@ class Model extends React.Component {
} }
render() { render() {
const { importModalVisible, catalogId, importModalAction, loadingTableData, modelerId, selectModelerIds, keyword, filterTableData, selectModelerNames, importModalAddMode, exportErwinLoading, exportDDLModalVisible, templateCURDModalVisible } = this.state; const { importModalVisible, catalogId, importModalAction, loadingTableData, modelerId, selectModelerIds, keyword, filterTableData, selectModelerNames, importModalAddMode, exportErwinLoading, exportDDLModalVisible, templateCURDModalVisible, wordTemplateModalVisible } = this.state;
return ( return (
<div style={{ backgroundColor: '#ECEEF3' }}> <div style={{ backgroundColor: '#ECEEF3' }}>
...@@ -222,6 +232,7 @@ class Model extends React.Component { ...@@ -222,6 +232,7 @@ class Model extends React.Component {
/> />
</Space> </Space>
<Space> <Space>
<Button type="primary" onClick={this.onWordTemplateCURDClick}>word模版配置</Button>
<Button type="primary" onClick={this.onTemplateCURDClick}>字段追加配置</Button> <Button type="primary" onClick={this.onTemplateCURDClick}>字段追加配置</Button>
</Space> </Space>
</div> </div>
...@@ -252,6 +263,11 @@ class Model extends React.Component { ...@@ -252,6 +263,11 @@ class Model extends React.Component {
</Col> </Col>
</Row> </Row>
<WordTemplateModal
visible={wordTemplateModalVisible}
onCancel={this.onWordTemplateCURDModalCancel}
/>
<TemplateCURDModal <TemplateCURDModal
visible={templateCURDModalVisible} visible={templateCURDModalVisible}
onCancel={this.onTemplateCURDModalCancel} onCancel={this.onTemplateCURDModalCancel}
......
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