Commit 9b32e18d by zhaochengxiang

模型目录加载慢

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