Commit 4464958b by zhaochengxiang

搜索当前目录

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