Commit 7abb0648 by zhaochengxiang

资产要素管理调整

parent ccf961a3
import React, { useEffect, useState } from 'react'; import React, { useEffect, useState } from 'react';
import { SettingOutlined } from '@ant-design/icons';
import { Spin, Tooltip, Typography, Dropdown, Menu } from 'antd';
import { Space, Spin, Tooltip } from 'antd';
import { dispatch } from '../../../../model'; import { dispatch } from '../../../../model';
import { AssetManageReference } from '../../../../util/constant'; import { AssetManageReference } from '../../../../util/constant';
import ImportElement from './ImportElement';
import AttributeRelationModal from "./AttributeRelationModal";
import FilterElementModal from './FilterElementModal';
import { showNotifaction } from '../../../../util';
import record from '../../../../assets/record.png'; import record from '../../../../assets/record.png';
const { Paragraph, Text } = Typography;
const AssetDirectory = (props) => { const AssetDirectory = (props) => {
const { id, directoryChanged, assetCount, reference = AssetManageReference } = props; const { id, directoryChanged, assetCount, reference = AssetManageReference, onElementsChange } = 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 [ attributeRelationModalVisible, setAttributeRelationModalVisible ] = useState(false);
const [ filterElementVisible, setFilterElementVisible ] = useState(false);
useEffect(() => { useEffect(() => {
if ((id||'')!=='') { if ((id||'')!=='') {
...@@ -35,6 +45,67 @@ const AssetDirectory = (props) => { ...@@ -35,6 +45,67 @@ const AssetDirectory = (props) => {
}) })
} }
const onImportElementBtnClick = () => {
setImportElementVisible(true);
}
const onExportElementBtnClick = () => {
window.open('/api/dataassetmanager/elementApi/export');
}
const onFilterElementClick = () => {
setFilterElementVisible(true);
}
const onAttributeRelationBtnClick = () => {
setAttributeRelationModalVisible(true);
}
const onImportElementCancel = (visible = false, change = false, tip = '') => {
setImportElementVisible(visible);
if (change) {
onElementsChange && onElementsChange();
}
if (tip && tip!== '') {
showNotifaction('导入提示', tip, 5);
}
}
const onFilterElementModalCancel = () => {
setFilterElementVisible(false);
}
const onAttributeRelationModalCancel = () => {
setAttributeRelationModalVisible(false);
}
const elementManageMenu = (
<Menu>
<Menu.Item>
<div onClick={onImportElementBtnClick}>
导入要素
</div>
</Menu.Item>
<Menu.Item>
<div onClick={onExportElementBtnClick}>
导出要素
</div>
</Menu.Item>
<Menu.Item>
<div onClick={onFilterElementClick}>
要素管理
</div>
</Menu.Item>
<Menu.Item>
<div onClick={onAttributeRelationBtnClick}>
元数据属性关联
</div>
</Menu.Item>
</Menu>
);
return ( return (
<Spin spinning={loading}> <Spin spinning={loading}>
<div <div
...@@ -47,20 +118,35 @@ const AssetDirectory = (props) => { ...@@ -47,20 +118,35 @@ const AssetDirectory = (props) => {
borderBottom: '1px solid #f0f0f0', borderBottom: '1px solid #f0f0f0',
}} }}
> >
<div style={{ flex: 1, overflow: 'hidden' }}> <div style={{ flex: 1, overflow: 'hidden'}}>
<Space> <Typography>
<div className='flex'> <Paragraph>
<span>名称: </span> <Tooltip title={dir?.name||''}>
<div style={{ minWidth: 150 }}>{`${dir?(dir.name||''):''}`}</div> <Text>名称:&nbsp;{dir?.name||''}</Text>
</div> </Tooltip>
<span>{`编号: ${dir?(dir.code||''):''}`}</span> &nbsp;&nbsp;
</Space> <Tooltip title={dir?.code||''}>
<Tooltip title={`${dir?(dir.remark||''):''}`}> <Text>编号:&nbsp;{dir?.code||''}</Text>
<div className='textOverflow'>{`描述: ${dir?(dir.desc||''):''}`}</div> </Tooltip>
</Tooltip> </Paragraph>
{ <Paragraph >
(reference === AssetManageReference) && <div>{`备注: ${dir?(dir.remarks||''):''}`}</div> <Tooltip title={dir?.desc||''}>
} <Text ellipsis={true}>
描述:&nbsp;{dir?.desc||''}
</Text>
</Tooltip>
</Paragraph>
{
(reference === AssetManageReference) &&
<Paragraph >
<Tooltip title={dir?.remarks||''}>
<Text ellipsis={true}>
备注:&nbsp;{dir?.remarks||''}
</Text>
</Tooltip>
</Paragraph>
}
</Typography>
</div> </div>
<div <div
className='flex' className='flex'
...@@ -76,7 +162,27 @@ const AssetDirectory = (props) => { ...@@ -76,7 +162,27 @@ const AssetDirectory = (props) => {
<div>{assetCount}</div> <div>{assetCount}</div>
</div> </div>
</div> </div>
<Dropdown overlay={elementManageMenu} placement="bottomCenter">
<SettingOutlined style={{ fontSize:16,cursor:'pointer', marginBottom: 50 }} />
</Dropdown>
</div> </div>
<ImportElement
visible={importElementVisible}
onCancel={onImportElementCancel}
/>
<FilterElementModal
visible={ filterElementVisible }
onCancel={ onFilterElementModalCancel}
/>
<AttributeRelationModal
visible={ attributeRelationModalVisible }
onCancel={ onAttributeRelationModalCancel }
/>
</Spin> </Spin>
); );
} }
......
...@@ -455,7 +455,7 @@ const AssetTable = (props) => { ...@@ -455,7 +455,7 @@ const AssetTable = (props) => {
if (fullScreen) { if (fullScreen) {
scrollY = 'calc(100vh - 182px - 52px - 12px)'; scrollY = 'calc(100vh - 182px - 52px - 12px)';
} else if (reference===AssetManageReference) { } else if (reference===AssetManageReference) {
scrollY = 'calc(100vh - 182px - 52px - 52px - 84px - 12px)'; scrollY = 'calc(100vh - 182px - 84px - 52px - 12px)';
} else if (reference===AssetBrowseReference||reference===ResourceBrowseReference) { } else if (reference===AssetBrowseReference||reference===ResourceBrowseReference) {
scrollY = 'calc(100vh - 182px - 84px - 52px - 12px)'; scrollY = 'calc(100vh - 182px - 84px - 52px - 12px)';
} else if (reference===AssetRecycleReference) { } else if (reference===AssetRecycleReference) {
......
import React, { useState } from 'react';
import { Space, Button } from 'antd';
import ImportElement from './ImportElement';
import AttributeRelationModal from "./AttributeRelationModal";
import FilterElementModal from './FilterElementModal';
import { showNotifaction } from '../../../../util';
const ElementManage = (props) => {
const { onChange } = props;
const [ importElementVisible, setImportElementVisible ] = useState(false);
const [ attributeRelationModalVisible, setAttributeRelationModalVisible ] = useState(false);
const [ filterElementVisible, setFilterElementVisible ] = useState(false);
const onImportElementBtnClick = () => {
setImportElementVisible(true);
}
const onExportElementBtnClick = () => {
window.open('/api/dataassetmanager/elementApi/export');
}
const onFilterElementClick = () => {
setFilterElementVisible(true);
}
const onAttributeRelationBtnClick = () => {
setAttributeRelationModalVisible(true);
}
const onImportElementCancel = (visible = false, change = false, tip = '') => {
setImportElementVisible(visible);
if (change) {
onChange && onChange();
}
if (tip && tip!== '') {
showNotifaction('导入提示', tip, 5);
}
}
const onFilterElementModalCancel = () => {
setFilterElementVisible(false);
}
const onAttributeRelationModalCancel = () => {
setAttributeRelationModalVisible(false);
}
return (
<div
className='flex'
style={{
height: 52,
alignItems: 'center',
padding: '0 12px',
borderBottom: '1px solid #f0f0f0',
}}
>
<Space>
<Button onClick={onImportElementBtnClick}>导入要素</Button>
<Button onClick={onExportElementBtnClick}>导出要素</Button>
<Button onClick={onFilterElementClick}>要素管理</Button>
<Button onClick={onAttributeRelationBtnClick}>元数据属性关联</Button>
</Space>
<ImportElement
visible={importElementVisible}
onCancel={onImportElementCancel}
/>
<FilterElementModal
visible={ filterElementVisible }
onCancel={ onFilterElementModalCancel}
/>
<AttributeRelationModal
visible={ attributeRelationModalVisible }
onCancel={ onAttributeRelationModalCancel }
/>
</div>
);
}
export default ElementManage;
\ No newline at end of file
...@@ -4,7 +4,6 @@ import { Form } from 'antd'; ...@@ -4,7 +4,6 @@ import { Form } from 'antd';
import { CaretLeftOutlined, CaretRightOutlined } from '@ant-design/icons'; import { CaretLeftOutlined, CaretRightOutlined } from '@ant-design/icons';
import AssetTree from './Component/AssetTree'; import AssetTree from './Component/AssetTree';
import ElementManage from './Component/ElementManage';
import AssetDirectory from './Component/AssetDirectory'; import AssetDirectory from './Component/AssetDirectory';
import AssetTable from './Component/AssetTable'; import AssetTable from './Component/AssetTable';
import AssetAction from './Component/AssetAction'; import AssetAction from './Component/AssetAction';
...@@ -71,8 +70,7 @@ const AssetManage = (props) => { ...@@ -71,8 +70,7 @@ const AssetManage = (props) => {
</div> </div>
</div> </div>
<div className='middle'> <div className='middle'>
<ElementManage onChange={onElementsChange} /> <AssetDirectory id={nodeId} assetCount={assetCount} directoryChanged={directoryChanged} onElementsChange={onElementsChange} />
<AssetDirectory id={nodeId} assetCount={assetCount} directoryChanged={directoryChanged} />
<AssetTable nodeId={nodeId} reference={AssetManageReference} elementsChanged={elementsChanged} assetActionChanged={assetActionChanged} onSelect={onTableSelect} onCountChange={onAssetCountChange} {...props} /> <AssetTable nodeId={nodeId} reference={AssetManageReference} elementsChanged={elementsChanged} assetActionChanged={assetActionChanged} onSelect={onTableSelect} onCountChange={onAssetCountChange} {...props} />
</div> </div>
<div className='right'> <div className='right'>
......
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