Commit 4464958b by zhaochengxiang

搜索当前目录

parent a56b2178
......@@ -40,13 +40,12 @@ const ModelTree = (props) => {
id: MENU_ID,
});
const { onSelect, onViewChange, refrence='', importStockModel, keyword, searchProperties, setRootNode, setNode, onDirRefresh } = props;
const { onSelect, onViewChange, refrence='', importStockModel, setRootNode, setNode, onDirRefresh } = props;
const { user } = useContext(AppContext);
const [ loading, setLoading ] = useState(false);
const [ treeData, setTreeData ] = useState(null);
const [ item, setItem ] = useState(null);
const [ prevItem, setPrevItem ] = useState(null);
const [ visible, setVisible ] = useState(false);
const [ type, setType ] = useState(null);
const [ rootId, setRootId ] = useState('');
......@@ -100,26 +99,6 @@ const ModelTree = (props) => {
}, [timestamp])
useEffect(() => {
if (viewSelectedKey !== 'branch') {
if (keyword || (searchProperties??[]).length > 0) {
if (item && !prevItem) {
setPrevItem(item);
}
setItem(null);
} else {
if (prevItem && !item) {
setItem(prevItem);
onSelect && onSelect(prevItem?.key||'');
setPrevItem(null);
}
}
}
//eslint-disable-next-line react-hooks/exhaustive-deps
}, [ keyword, searchProperties, viewSelectedKey, item, prevItem])
useEffect(() => {
setNode?.(item)
}, [item])
......@@ -391,7 +370,6 @@ const ModelTree = (props) => {
setSearchKeyword('');
setOptions([]);
setItem();
setPrevItem();
onViewChange && onViewChange(key);
if (key === 'dir') {
......
......@@ -250,41 +250,45 @@ class Model extends React.Component {
}
onViewChange = (value) => {
this.setState({ currentView: value, keyword: '', searchProperties: [], catalogId: '' });
let newState = {currentView: value, catalogId: ''}
if (value === 'branch') {
newState = {...newState, searchProperties: []}
}
this.setState(newState)
}
onModelStateChange = (value) => {
this.setState({ currentModelState: value, offset: null }, () => {
this.setState({ currentModelState: value }, () => {
this.onTableChange();
})
}
onTreeSelect = (key, offset=null) => {
this.setState({ catalogId: key, keyword: '', searchProperties: [], offset, currentModelState: (offset!==null)?'':this.state.currentModelState }, () => {
if (!key) {
this.setState({ tableData: [], filterTableData: [] });
} else {
this.setState({ catalogId: key, offset }, () => {
this.onTableChange();
}
});
})
}
onTableChange = () => {
const { currentView, catalogId, keyword, currentModelState, searchProperties, rootNode, branchModelForkState } = this.state;
if (!catalogId) {
this.setState({ tableData: [], filterTableData: [] })
return
}
this.setState({ loadingTableData: true }, () => {
if (keyword) {
const params = {
term: keyword,
};
if (currentModelState !== '') {
params.stateId = currentModelState;
let params = { term: keyword }
if (currentView === 'dir') {
params = {...params, catalogId }
} else if (currentView === 'state') {
params = {...params, stateId: catalogId }
} else if (currentView === 'branch') {
params = {...params, branchId: catalogId}
if (currentModelState) {
params = {...params, stateId: currentModelState}
}
if (currentView === 'branch') {
params.branchId = catalogId;
}
dispatchLatestHomepage({
......@@ -302,10 +306,18 @@ class Model extends React.Component {
this.setState({ loadingTableData: false });
}
})
} else if (!catalogId) {
} else if ((searchProperties??[]).length>0) {
let params = {}
if (currentView === 'dir') {
params = { catalogId }
} else if (currentView === 'state') {
params = { stateId: catalogId }
}
dispatch({
type: 'datamodel.searchModelBySearchProperties',
payload: {
params,
data: searchProperties
},
callback: data => {
......@@ -317,17 +329,11 @@ class Model extends React.Component {
})
} else {
if (currentView === 'dir') {
const params = {
easyDataModelerCatalogId: catalogId,
};
if (currentModelState !== '') {
params.stateId = currentModelState;
}
dispatchLatestHomepage({
type: 'datamodel.getCurrentDataModelCatalog',
payload: params,
payload: {
easyDataModelerCatalogId: catalogId,
},
callback: data => {
this.setState({ loadingTableData: false, tableData: data.easyDataModelerDataModels||[], filterTableData: data.easyDataModelerDataModels||[] });
},
......@@ -349,20 +355,18 @@ class Model extends React.Component {
}
})
} else if (currentView === 'branch') {
const params = {
let params = {
easyDataModelerCatalogId: rootNode?.id,
branchId: catalogId,
};
if (currentModelState !== '') {
params.stateId = currentModelState;
}
if (currentModelState) {
params = {...params, stateId: currentModelState}
}
dispatchLatestHomepage({
type: 'datamodel.getCurrentDataModelCatalog',
payload: params,
callback: data => {
const filterTableData = [...data?.easyDataModelerDataModels||[]].filter(item => branchModelForkState===null || branchModelForkState===undefined || item.fork === branchModelForkState)
const filterTableData = [...data?.easyDataModelerDataModels||[]].filter(item => branchModelForkState===null || branchModelForkState===undefined || item.fork===branchModelForkState)
this.setState({ loadingTableData: false, tableData: data?.easyDataModelerDataModels||[], filterTableData });
},
......@@ -445,20 +449,9 @@ class Model extends React.Component {
}
onSearchInputChange = (value) => {
const { currentView, catalogId } = this.state;
if (currentView === 'branch') {
this.setState({ keyword: value}, () => {
if (catalogId) {
this.setState({ keyword: value, searchProperties: [] }, () => {
this.onTableChange();
}
})
} else {
this.setState({ keyword: value||'', searchProperties: [], catalogId: '' }, () => {
if (value !== '') {
this.onTableChange();
}
});
}
}
onSearchPropertiesClick = () => {
......@@ -469,10 +462,8 @@ class Model extends React.Component {
this.setState({ selectSearchPropertiesVisible: false })
if (searchProperties) {
this.setState({ keyword: '', catalogId: '', searchProperties: [...searchProperties] }, () => {
if (searchProperties.length !== 0) {
this.setState({ keyword: '', searchProperties: [...searchProperties] }, () => {
this.onTableChange()
}
})
}
}
......@@ -719,10 +710,7 @@ class Model extends React.Component {
});
let disableStartFlow = false, startFlowTip = '';
if ((currentView==='dir'&&currentModelState==='2')||(currentView!=='dir'&&catalogId==='2')) {
disableStartFlow = true;
startFlowTip = '';
} else if ((selectModelerIds||[]).length===0) {
if ((selectModelerIds||[]).length===0) {
disableStartFlow = true;
startFlowTip = '请先选择模型';
}
......@@ -742,8 +730,6 @@ class Model extends React.Component {
onViewChange={this.onViewChange}
onSelect={this.onTreeSelect}
importStockModel={this.importStockModel}
keyword={keyword}
searchProperties={this.state.searchProperties}
setRootNode={(val) => {
this.setState({ rootNode: val })
}}
......
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