Commit eb045ef9 by zhaochengxiang

word模版配置

parent 470d6594
......@@ -130,6 +130,10 @@ export function* exportERWinString(payload) {
return yield call(datamodelerService.exportERWinString, payload);
}
export function* uploadWordTemplate(payload) {
return yield call(datamodelerService.uploadWordTemplate, payload);
}
export function* 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) {
return filePost("/dataassetmanager/elementApi/import", payload);
return PostFile("/dataassetmanager/elementApi/import", payload);
}
export function getLogs(payload) {
......@@ -69,11 +69,11 @@ export function listAllTopics(payload) {
}
export function directoryImport(payload) {
return filePost("/dataassetmanager/directoryApi/import", payload);
return PostFile("/dataassetmanager/directoryApi/import", payload);
}
export function assetImport(payload) {
return filePost("/dataassetmanager/dataAssetApi/import", payload);
return PostFile("/dataassetmanager/dataAssetApi/import", payload);
}
export function getDirectoryById(payload) {
......
import { filePost, GetJSON, PostJSON } from "../util/axios"
import { PostFile, GetJSON, PostJSON } from "../util/axios"
export function loadDataModelCatalog() {
return GetJSON("/datamodeler/easyDataModelerCURD/loadDataModelCatalog");
......@@ -23,7 +23,7 @@ export function getCurrentDataModelCatalog(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) {
return GetJSON("/datamodeler/easyDataModelerExport/erWinPluginString", payload);
}
export function uploadWordTemplate(payload) {
return PostFile("/datamodeler/easyDataModelerExport/word/uploadTemplate", payload);
}
export function validateDataModel(payload) {
return PostJSON("/datamodeler/easyDataModelerConstraint/validateDataModel", 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||{};
let formData = new FormData();
(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";
import ModelTree from './Component/ModelTree';
import ModelTable from './Component/ModelTable';
import WordTemplateModal from './Component/WordTemplateModal';
import TemplateCURDModal from './Component/TemplateCURDModal';
import ImportModal from './Component/ImportModal';
import ExportDDLModal from './Component/ExportDDLModal';
......@@ -15,6 +16,7 @@ class Model extends React.Component {
constructor() {
super();
this.state = {
wordTemplateModalVisible: false,
templateCURDModalVisible: false,
importModalVisible: false,
exportDDLModalVisible: false,
......@@ -76,6 +78,10 @@ class Model extends React.Component {
});
}
onWordTemplateCURDClick = () => {
this.setState({ wordTemplateModalVisible: true });
}
onTemplateCURDClick = () => {
this.setState({ templateCURDModalVisible: true });
}
......@@ -170,13 +176,17 @@ class Model extends React.Component {
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) => {
this.setState({ importExcelVisible: visible });
}
onWordTemplateCURDModalCancel = () => {
this.setState({ wordTemplateModalVisible: false });
}
onTemplateCURDModalCancel = (refresh = false) => {
this.setState({ templateCURDModalVisible: false });
refresh && this.onTableChange();
......@@ -192,7 +202,7 @@ class Model extends React.Component {
}
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 (
<div style={{ backgroundColor: '#ECEEF3' }}>
......@@ -222,6 +232,7 @@ class Model extends React.Component {
/>
</Space>
<Space>
<Button type="primary" onClick={this.onWordTemplateCURDClick}>word模版配置</Button>
<Button type="primary" onClick={this.onTemplateCURDClick}>字段追加配置</Button>
</Space>
</div>
......@@ -252,6 +263,11 @@ class Model extends React.Component {
</Col>
</Row>
<WordTemplateModal
visible={wordTemplateModalVisible}
onCancel={this.onWordTemplateCURDModalCancel}
/>
<TemplateCURDModal
visible={templateCURDModalVisible}
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