Commit 9b32e18d by zhaochengxiang

模型目录加载慢

parent 1c2271d8
...@@ -50,6 +50,10 @@ export function* loadDataModelCatalog() { ...@@ -50,6 +50,10 @@ export function* loadDataModelCatalog() {
return yield call(datamodelerService.loadDataModelCatalog); return yield call(datamodelerService.loadDataModelCatalog);
} }
export function* refreshDataModelCatalog() {
return yield call(datamodelerService.refreshDataModelCatalog);
}
export function* loadDataModelStateCatalog() { export function* loadDataModelStateCatalog() {
return yield call(datamodelerService.loadDataModelStateCatalog); return yield call(datamodelerService.loadDataModelStateCatalog);
} }
......
...@@ -4,6 +4,10 @@ export function loadDataModelCatalog() { ...@@ -4,6 +4,10 @@ export function loadDataModelCatalog() {
return GetJSON("/datamodeler/easyDataModelerCURD/loadDataModelCatalog"); return GetJSON("/datamodeler/easyDataModelerCURD/loadDataModelCatalog");
} }
export function refreshDataModelCatalog() {
return GetJSON("/datamodeler/easyDataModelerCURD/refreshDataModelCatalog");
}
export function loadDataModelStateCatalog() { export function loadDataModelStateCatalog() {
return GetJSON("/datamodeler/easyDataModelerCURD/loadDataModelStateCatalog"); return GetJSON("/datamodeler/easyDataModelerCURD/loadDataModelStateCatalog");
} }
......
import React, { useState, useEffect, useRef } from "react"; import React, { useState, useEffect, useRef } from "react";
import { Tooltip, Tree, Modal, Spin, Dropdown, Menu, Button } from "antd"; import { Tooltip, Tree, Modal, Spin, Dropdown, Menu, Button } from "antd";
import { PlusOutlined, EditOutlined, SyncOutlined, DeleteOutlined, ImportOutlined, UnorderedListOutlined } from '@ant-design/icons'; import { PlusOutlined, EditOutlined, SyncOutlined, DeleteOutlined, ImportOutlined, UnorderedListOutlined, ReloadOutlined } from '@ant-design/icons';
import classnames from 'classnames'; import classnames from 'classnames';
import UpdateTreeItemModal from './UpdateTreeItemModal'; import UpdateTreeItemModal from './UpdateTreeItemModal';
...@@ -35,7 +35,6 @@ const ModelTree = (props) => { ...@@ -35,7 +35,6 @@ const ModelTree = (props) => {
const [ autoExpandParent, setAutoExpandParent ] = useState(false); const [ autoExpandParent, setAutoExpandParent ] = useState(false);
const [ viewSelectedKey, setViewSelectedKey ] = useState(viewModes[0].key); const [ viewSelectedKey, setViewSelectedKey ] = useState(viewModes[0].key);
const [ isSetRootId, setIsSetRootId ] = useState(true); const [ isSetRootId, setIsSetRootId ] = useState(true);
const [ disableSync, setDisableSync ] = useState(true);
const [ domains, setDomains ] = useState([]); const [ domains, setDomains ] = useState([]);
const [ domainSelectedKey, setDomainSelectedKey ] = useState(''); const [ domainSelectedKey, setDomainSelectedKey ] = useState('');
...@@ -102,7 +101,6 @@ const ModelTree = (props) => { ...@@ -102,7 +101,6 @@ const ModelTree = (props) => {
}); });
} else { } else {
setIsSetRootId(true); setIsSetRootId(true);
setDisableSync(false);
} }
} }
}); });
...@@ -125,11 +123,11 @@ const ModelTree = (props) => { ...@@ -125,11 +123,11 @@ const ModelTree = (props) => {
}); });
} }
const getDirTreeData = (defaultSelectedId='', offset=null) => { const getDirTreeData = (defaultSelectedId='', offset=null, type='refresh') => {
setLoading(true); setLoading(true);
dispatch({ dispatch({
type: 'datamodel.loadDataModelCatalog', type: (type==='refresh')?'datamodel.refreshDataModelCatalog':'datamodel.loadDataModelCatalog',
callback: data => { callback: data => {
data.key = data.id||''; data.key = data.id||'';
...@@ -269,7 +267,7 @@ const ModelTree = (props) => { ...@@ -269,7 +267,7 @@ const ModelTree = (props) => {
} }
} }
const onSyncClick = ({ key }) => { const onSyncMenuClick = ({ key }) => {
setDomainSelectedKey(key); setDomainSelectedKey(key);
dispatch({ dispatch({
...@@ -281,8 +279,7 @@ const ModelTree = (props) => { ...@@ -281,8 +279,7 @@ const ModelTree = (props) => {
}, },
callback: () => { callback: () => {
setIsSetRootId(true); setIsSetRootId(true);
setDisableSync(false); getDirTreeData('', null, 'load');
getDirTreeData();
} }
}); });
...@@ -324,6 +321,10 @@ const ModelTree = (props) => { ...@@ -324,6 +321,10 @@ const ModelTree = (props) => {
} }
} }
const sync = () => {
getDirTreeData('', null, 'load');
}
const deleteNode = () => { const deleteNode = () => {
if (!item) { if (!item) {
showMessage('info', '请先选择目录'); showMessage('info', '请先选择目录');
...@@ -381,7 +382,7 @@ const ModelTree = (props) => { ...@@ -381,7 +382,7 @@ const ModelTree = (props) => {
); );
const syncMenu = ( const syncMenu = (
<Menu selectedKeys={[domainSelectedKey]} onClick={onSyncClick}> <Menu selectedKeys={[domainSelectedKey]} onClick={onSyncMenuClick}>
{ {
domains && domains.map(domain => { domains && domains.map(domain => {
return ( return (
...@@ -436,11 +437,9 @@ const ModelTree = (props) => { ...@@ -436,11 +437,9 @@ const ModelTree = (props) => {
) )
} }
{ <Tooltip title="刷新目录" className='ml-4'>
((viewSelectedKey!=='dir')||(viewSelectedKey==='dir'&&isSetRootId)) && <Tooltip title="刷新目录" className='ml-4'> <Button type='text' icon={<ReloadOutlined />} size='small' onClick={refresh} />
<Button type='text' icon={<SyncOutlined />} disabled={viewSelectedKey==='dir'&&disableSync} size='small' onClick={refresh} />
</Tooltip> </Tooltip>
}
{ {
(viewSelectedKey==='dir') && !isSetRootId && ( (viewSelectedKey==='dir') && !isSetRootId && (
...@@ -453,6 +452,14 @@ const ModelTree = (props) => { ...@@ -453,6 +452,14 @@ const ModelTree = (props) => {
} }
{ {
(viewSelectedKey==='dir') && isSetRootId && (
<Tooltip title="同步目录" className='ml-4'>
<Button type='text' icon={<SyncOutlined />} size='small' onClick={sync} />
</Tooltip>
)
}
{
viewSelectedKey==='dir' && ( viewSelectedKey==='dir' && (
<Tooltip title="删除目录" className='ml-4'> <Tooltip title="删除目录" className='ml-4'>
<DeleteOutlined onClick={deleteNode} style={{ fontSize:16,cursor:'pointer' }} /> <DeleteOutlined onClick={deleteNode} style={{ fontSize:16,cursor:'pointer' }} />
......
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