Commit 2bf4e629 by zhaochengxiang

资产业务字段属性上传

parent 70b0d967
......@@ -181,6 +181,10 @@ export function* importLogs(payload) {
return yield call(service.importLogs, payload);
}
export function* importBusinessColumn(payload) {
return yield call(service.importBusinessColumn, payload);
}
export function* recoveryFromRecycleBin(payload) {
return yield call(service.recoveryFromRecycleBin, payload);
}
......
......@@ -100,6 +100,10 @@ export function importLogs(payload) {
return GetJSON("/dataassetmanager/dataAssetApi/listDataAssetImportLogsByPage", payload);
}
export function importBusinessColumn(payload) {
return PostFile("/dataassetmanager/dataAssetApi/importCGNBusinessColumnAttr", payload);
}
export function recoveryFromRecycleBin(payload) {
return PostJSON("/dataassetmanager/dataAssetApi/recoveryFromRecycleBin", payload);
}
......
......@@ -4,6 +4,7 @@ import { Spin, Tooltip, Typography, Dropdown, Menu } from 'antd';
import { dispatch } from '../../../../model';
import { AssetBrowseReference, AssetManageReference, ResourceBrowseReference } from '../../../../util/constant';
import ImportElement from './ImportElement';
import ImportBusinessColumn from './ImportBusinessColumn';
import AttributeRelationModal from "./AttributeRelationModal";
import FilterElementModal from './FilterElementModal';
import { showNotifaction } from '../../../../util';
......@@ -20,6 +21,7 @@ const AssetDirectory = (props) => {
const [ dir, setDir ] = useState(null);
const [ loading, setLoading ] = useState(false);
const [ importElementVisible, setImportElementVisible ] = useState(false);
const [ importBusinessColumnVisible, setImportBusinessColumnVisible ] = useState(false);
const [ attributeRelationModalVisible, setAttributeRelationModalVisible ] = useState(false);
const [ filterElementVisible, setFilterElementVisible ] = useState(false);
const [ resourceState, setResourceState ] = useState(null);
......@@ -98,6 +100,10 @@ const AssetDirectory = (props) => {
window.open('/api/dataassetmanager/elementApi/export');
}
const onImportBusinessColumnBtnClick = () => {
setImportBusinessColumnVisible(true);
}
const onFilterElementClick = () => {
setFilterElementVisible(true);
}
......@@ -118,6 +124,10 @@ const AssetDirectory = (props) => {
}
}
const onImportBusinessColumnCancel = () => {
setImportBusinessColumnVisible(false);
}
const onFilterElementModalCancel = () => {
setFilterElementVisible(false);
}
......@@ -139,6 +149,11 @@ const AssetDirectory = (props) => {
</div>
</Menu.Item>
<Menu.Item>
<div className='text-center' onClick={onImportBusinessColumnBtnClick}>
导入字段属性
</div>
</Menu.Item>
<Menu.Item>
<div className='text-center' onClick={onFilterElementClick}>
资产属性管理
</div>
......@@ -284,6 +299,11 @@ const AssetDirectory = (props) => {
onCancel={onImportElementCancel}
/>
<ImportBusinessColumn
visible={importBusinessColumnVisible}
onCancel={onImportBusinessColumnCancel}
/>
<FilterElementModal
visible={ filterElementVisible }
onCancel={ onFilterElementModalCancel}
......
import React, { useState, useContext } from 'react';
import { Button, Upload, Modal } from 'antd';
import { DownloadOutlined, UploadOutlined } from '@ant-design/icons';
import { dispatchLatest } from '../../../../model';
import { showMessage } from '../../../../util';
import { AppContext } from '../../../../App';
const FC = (props) => {
const { onCancel, visible } = props;
const [ fileList, setFileList ] = useState([]);
const [ confirmLoading, setConfirmLoading ] = useState(false);
const app = useContext(AppContext);
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:".xlsx",
};
const handleOk = () => {
if ((fileList||[]).length === 0) {
showMessage('info', '请先选择文件上传');
return;
}
setConfirmLoading(true);
dispatchLatest({
type: 'assetmanage.importBusinessColumn',
payload: { fileList, params: { env: app.env?.domainId } },
callback: data => {
setConfirmLoading(false);
reset();
onCancel && onCancel();
},
error: () => {
setConfirmLoading(false);
}
})
}
const reset = () => {
setFileList([]);
}
return (
<Modal
forceRender
visible={visible}
title='字段属性导入'
width={520}
confirmLoading={confirmLoading}
onCancel={() => {
reset();
onCancel && onCancel();
}}
onOk={handleOk}
>
<div className='mt-3'>
<Upload {...uploadProps}>
<Button icon={<UploadOutlined />}>
选择文件上传
</Button>
</Upload>
</div>
</Modal>
)
}
export default FC;
\ No newline at end of file
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