Commit 2bf4e629 by zhaochengxiang

资产业务字段属性上传

parent 70b0d967
...@@ -181,6 +181,10 @@ export function* importLogs(payload) { ...@@ -181,6 +181,10 @@ export function* importLogs(payload) {
return yield call(service.importLogs, payload); return yield call(service.importLogs, payload);
} }
export function* importBusinessColumn(payload) {
return yield call(service.importBusinessColumn, payload);
}
export function* recoveryFromRecycleBin(payload) { export function* recoveryFromRecycleBin(payload) {
return yield call(service.recoveryFromRecycleBin, payload); return yield call(service.recoveryFromRecycleBin, payload);
} }
......
...@@ -100,6 +100,10 @@ export function importLogs(payload) { ...@@ -100,6 +100,10 @@ export function importLogs(payload) {
return GetJSON("/dataassetmanager/dataAssetApi/listDataAssetImportLogsByPage", payload); return GetJSON("/dataassetmanager/dataAssetApi/listDataAssetImportLogsByPage", payload);
} }
export function importBusinessColumn(payload) {
return PostFile("/dataassetmanager/dataAssetApi/importCGNBusinessColumnAttr", payload);
}
export function recoveryFromRecycleBin(payload) { export function recoveryFromRecycleBin(payload) {
return PostJSON("/dataassetmanager/dataAssetApi/recoveryFromRecycleBin", payload); return PostJSON("/dataassetmanager/dataAssetApi/recoveryFromRecycleBin", payload);
} }
......
...@@ -4,6 +4,7 @@ import { Spin, Tooltip, Typography, Dropdown, Menu } from 'antd'; ...@@ -4,6 +4,7 @@ import { Spin, Tooltip, Typography, Dropdown, Menu } from 'antd';
import { dispatch } from '../../../../model'; import { dispatch } from '../../../../model';
import { AssetBrowseReference, AssetManageReference, ResourceBrowseReference } from '../../../../util/constant'; import { AssetBrowseReference, AssetManageReference, ResourceBrowseReference } from '../../../../util/constant';
import ImportElement from './ImportElement'; import ImportElement from './ImportElement';
import ImportBusinessColumn from './ImportBusinessColumn';
import AttributeRelationModal from "./AttributeRelationModal"; import AttributeRelationModal from "./AttributeRelationModal";
import FilterElementModal from './FilterElementModal'; import FilterElementModal from './FilterElementModal';
import { showNotifaction } from '../../../../util'; import { showNotifaction } from '../../../../util';
...@@ -20,6 +21,7 @@ const AssetDirectory = (props) => { ...@@ -20,6 +21,7 @@ const AssetDirectory = (props) => {
const [ dir, setDir ] = useState(null); const [ dir, setDir ] = useState(null);
const [ loading, setLoading ] = useState(false); const [ loading, setLoading ] = useState(false);
const [ importElementVisible, setImportElementVisible ] = useState(false); const [ importElementVisible, setImportElementVisible ] = useState(false);
const [ importBusinessColumnVisible, setImportBusinessColumnVisible ] = useState(false);
const [ attributeRelationModalVisible, setAttributeRelationModalVisible ] = useState(false); const [ attributeRelationModalVisible, setAttributeRelationModalVisible ] = useState(false);
const [ filterElementVisible, setFilterElementVisible ] = useState(false); const [ filterElementVisible, setFilterElementVisible ] = useState(false);
const [ resourceState, setResourceState ] = useState(null); const [ resourceState, setResourceState ] = useState(null);
...@@ -98,6 +100,10 @@ const AssetDirectory = (props) => { ...@@ -98,6 +100,10 @@ const AssetDirectory = (props) => {
window.open('/api/dataassetmanager/elementApi/export'); window.open('/api/dataassetmanager/elementApi/export');
} }
const onImportBusinessColumnBtnClick = () => {
setImportBusinessColumnVisible(true);
}
const onFilterElementClick = () => { const onFilterElementClick = () => {
setFilterElementVisible(true); setFilterElementVisible(true);
} }
...@@ -118,6 +124,10 @@ const AssetDirectory = (props) => { ...@@ -118,6 +124,10 @@ const AssetDirectory = (props) => {
} }
} }
const onImportBusinessColumnCancel = () => {
setImportBusinessColumnVisible(false);
}
const onFilterElementModalCancel = () => { const onFilterElementModalCancel = () => {
setFilterElementVisible(false); setFilterElementVisible(false);
} }
...@@ -139,6 +149,11 @@ const AssetDirectory = (props) => { ...@@ -139,6 +149,11 @@ const AssetDirectory = (props) => {
</div> </div>
</Menu.Item> </Menu.Item>
<Menu.Item> <Menu.Item>
<div className='text-center' onClick={onImportBusinessColumnBtnClick}>
导入字段属性
</div>
</Menu.Item>
<Menu.Item>
<div className='text-center' onClick={onFilterElementClick}> <div className='text-center' onClick={onFilterElementClick}>
资产属性管理 资产属性管理
</div> </div>
...@@ -284,6 +299,11 @@ const AssetDirectory = (props) => { ...@@ -284,6 +299,11 @@ const AssetDirectory = (props) => {
onCancel={onImportElementCancel} onCancel={onImportElementCancel}
/> />
<ImportBusinessColumn
visible={importBusinessColumnVisible}
onCancel={onImportBusinessColumnCancel}
/>
<FilterElementModal <FilterElementModal
visible={ filterElementVisible } visible={ filterElementVisible }
onCancel={ onFilterElementModalCancel} 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