Commit 14b78fe3 by zhaochengxiang

表级搜索

parent 0d39c503
...@@ -109,6 +109,7 @@ export class App extends React.Component { ...@@ -109,6 +109,7 @@ export class App extends React.Component {
<AssetTree <AssetTree
reference={AssetMountReference} reference={AssetMountReference}
checkable={true} checkable={true}
metadataIds={hostParams.data}
onCheck={(values) => { onCheck={(values) => {
hostParams.callback&&hostParams.callback(values); hostParams.callback&&hostParams.callback(values);
}} }}
......
...@@ -110,6 +110,9 @@ export function* existDataAsset(payload) { ...@@ -110,6 +110,9 @@ export function* existDataAsset(payload) {
export function* queryAllDirectoryAsTree() { export function* queryAllDirectoryAsTree() {
return yield call(service.queryAllDirectoryAsTree); return yield call(service.queryAllDirectoryAsTree);
} }
export function* queryDirectoryTreeByMetadataId(payload) {
return yield call(service.queryDirectoryTreeByMetadataId, payload);
}
export function* queryResourceDirectoryAsTree() { export function* queryResourceDirectoryAsTree() {
return yield call(service.queryResourceDirectoryAsTree); return yield call(service.queryResourceDirectoryAsTree);
} }
......
...@@ -140,6 +140,10 @@ export function queryAllDirectoryAsTree() { ...@@ -140,6 +140,10 @@ export function queryAllDirectoryAsTree() {
return GetJSON("/dataassetmanager/directoryApi/queryAllDirectoryAsTree"); return GetJSON("/dataassetmanager/directoryApi/queryAllDirectoryAsTree");
} }
export function queryDirectoryTreeByMetadataId(payload) {
return GetJSON("/dataassetmanager/directoryApi/queryDirectoryTreeByMetadataIdPath", payload)
}
export function queryResourceDirectoryAsTree() { export function queryResourceDirectoryAsTree() {
return PostJSON("/dataassetmanager/directoryApi/querySourceTypeAsTree"); return PostJSON("/dataassetmanager/directoryApi/querySourceTypeAsTree");
} }
......
...@@ -65,6 +65,7 @@ const AssetAction = (props) => { ...@@ -65,6 +65,7 @@ const AssetAction = (props) => {
const { pageNum, pageSize } = pagination; const { pageNum, pageSize } = pagination;
const [modal, contextHolder] = Modal.useModal(); const [modal, contextHolder] = Modal.useModal();
const [permissions, setPermissions] = useState(undefined); const [permissions, setPermissions] = useState(undefined);
const [keyword, setKeyword] = useState('');
const app = useContext(AppContext); const app = useContext(AppContext);
const uploadRef = useRef(undefined); const uploadRef = useRef(undefined);
...@@ -262,7 +263,14 @@ const AssetAction = (props) => { ...@@ -262,7 +263,14 @@ const AssetAction = (props) => {
if (metadataColumnList && standardList) { if (metadataColumnList && standardList) {
const newMetadataColumnList = []; const newMetadataColumnList = [];
metadataColumnList.forEach(item => { metadataColumnList.filter(item => {
return (
!keyword
|| (item.name??'').indexOf(keyword)!==-1
|| (item.cnName??'').indexOf(keyword)!==-1
|| (item.businessRules??'').indexOf(keyword)!==-1
)
}).forEach(item => {
const index = standardList?.findIndex(_item => _item.metadataId === item._id); const index = standardList?.findIndex(_item => _item.metadataId === item._id);
let newItem = {...item}; let newItem = {...item};
if (index !== -1) { if (index !== -1) {
...@@ -276,7 +284,7 @@ const AssetAction = (props) => { ...@@ -276,7 +284,7 @@ const AssetAction = (props) => {
} }
return []; return [];
}, [metadataColumnList, standardList, pagination]) }, [metadataColumnList, standardList, pagination, keyword])
const getPermission = () => { const getPermission = () => {
dispatch({ dispatch({
...@@ -1090,6 +1098,14 @@ const AssetAction = (props) => { ...@@ -1090,6 +1098,14 @@ const AssetAction = (props) => {
字段级维护 字段级维护
</Button> </Button>
} }
<Input size="middle"
placeholder="中英文名称/业务规则"
value={keyword}
bordered={true} allowClear
onChange={(e) => {
setPagination({...paginate, pageNum: 1})
setKeyword(e.target.value)
}} />
{/* { {/* {
(reference===AssetManageReference||canEdit) && <Button type='primary' onClick={() => { (reference===AssetManageReference||canEdit) && <Button type='primary' onClick={() => {
uploadRef.current?.chooseFile() uploadRef.current?.chooseFile()
...@@ -1110,7 +1126,7 @@ const AssetAction = (props) => { ...@@ -1110,7 +1126,7 @@ const AssetAction = (props) => {
pagination={{ pagination={{
position: ['bottomLeft'], position: ['bottomLeft'],
size: 'small', size: 'small',
total: (metadataColumnList||[]).length, total: (tableData||[]).length,
showTotal: (total) => `${total}`, showTotal: (total) => `${total}`,
showSizeChanger: true, showSizeChanger: true,
current: pageNum, current: pageNum,
......
...@@ -10,12 +10,12 @@ const AssetDetailDrawer = (props) => { ...@@ -10,12 +10,12 @@ const AssetDetailDrawer = (props) => {
return ( return (
<Drawer <Drawer
forceRender
visible={ visible } visible={ visible }
title='资产目录详情' title='资产目录详情'
width='80%' width='80%'
placement="right" placement="right"
closable={ true } closable={ true }
destroyOnClose
onClose={() => { onClose={() => {
onCancel && onCancel(); onCancel && onCancel();
}} }}
......
...@@ -44,7 +44,7 @@ const AssetManageTree = (props) => { ...@@ -44,7 +44,7 @@ const AssetManageTree = (props) => {
id: MENU_ID, id: MENU_ID,
}); });
const { checkable = false, onSelect, className, onCheck, tableId, reference=AssetManageReference, onDirectoryChange, centerId } = props; const { checkable = false, onSelect, className, onCheck, tableId, reference=AssetManageReference, onDirectoryChange, centerId, metadataIds } = props;
const [ keyword, setKeyword ] = useState(''); const [ keyword, setKeyword ] = useState('');
const [ loading, setLoading ] = useState(false); const [ loading, setLoading ] = useState(false);
const [ treeData, setTreeData ] = useState([]); const [ treeData, setTreeData ] = useState([]);
...@@ -78,7 +78,12 @@ const AssetManageTree = (props) => { ...@@ -78,7 +78,12 @@ const AssetManageTree = (props) => {
const dataListRef = useRef([]); const dataListRef = useRef([]);
useEffect(() => { useEffect(() => {
getTemplates() if (reference === AssetManageReference) {
getTemplates()
} else {
getAllDirectoryAsTree(false)
}
window?.addEventListener("storage", storageChange); window?.addEventListener("storage", storageChange);
return () => { return () => {
...@@ -86,7 +91,7 @@ const AssetManageTree = (props) => { ...@@ -86,7 +91,7 @@ const AssetManageTree = (props) => {
} }
//eslint-disable-next-line react-hooks/exhaustive-deps //eslint-disable-next-line react-hooks/exhaustive-deps
}, []) }, [metadataIds])
// useEffect(() => { // useEffect(() => {
// if ((did||'') !== '') { // if ((did||'') !== '') {
...@@ -182,91 +187,111 @@ const AssetManageTree = (props) => { ...@@ -182,91 +187,111 @@ const AssetManageTree = (props) => {
// onSelect && onSelect('', ''); // onSelect && onSelect('', '');
// } // }
let url = ''; function disposeData(data) {
if (reference === AssetManageReference || reference === AssetMountReference) { setLoading(false);
url = 'assetmanage.queryAllDirectoryAsTree';
}
dispatch({
type: url,
callback: data => {
setLoading(false);
refresh && showMessage('success', '操作成功'); refresh && showMessage('success', '操作成功');
let newData = [...data]; let newData = [...data];
if (reference === AssetMountReference) { if (reference === AssetMountReference) {
newData = newData.filter(item => item.resourceType!=='custom'); newData = newData.filter(item => item.resourceType!=='custom');
} }
setLoadedKeys([]); setLoadedKeys([]);
setTreeData(newData); setTreeData(newData);
const _dataList = [], _groupIds = []; const _dataList = [], _groupIds = [];
generateList(newData, _dataList); generateList(newData, _dataList);
generateGroupIds(newData, _groupIds); generateGroupIds(newData, _groupIds);
setDataList(_dataList); setDataList(_dataList);
setGroupIds(_groupIds); setGroupIds(_groupIds);
treeDataRef.current = newData; treeDataRef.current = newData;
dataListRef.current = _dataList; dataListRef.current = _dataList;
let defaultItem = null; let defaultItem = null;
if ((defaultSelectedId||'') === '') { if ((defaultSelectedId||'') === '') {
_dataList.forEach(item => { _dataList.forEach(item => {
if ((defaultSelectedId||'')==='') { if ((defaultSelectedId||'')==='') {
defaultSelectedId = item.key; defaultSelectedId = item.key;
} }
}) })
} }
function recursion(subCatalogs) { function recursion(subCatalogs) {
if ((subCatalogs||[]).length===0) return; if ((subCatalogs||[]).length===0) return;
(subCatalogs||[]).forEach(catalog=> { (subCatalogs||[]).forEach(catalog=> {
if (catalog.nodeId === defaultSelectedId) { if (catalog.nodeId === defaultSelectedId) {
defaultItem = catalog; defaultItem = catalog;
} }
recursion(catalog.children); recursion(catalog.children);
}) })
} }
if ((defaultSelectedId||'') !== '') {
recursion(newData);
}
if (resetCurrentDirId) {
if (defaultItem) {
const expandedKeys = _dataList
.map(item => {
if (item.key.indexOf(defaultSelectedId) > -1) {
return getParentKey(item.key, newData);
}
return null;
})
.filter((item, i, self) => item && self.indexOf(item) === i);
setExpandedKeys([...expandedKeys, defaultSelectedId]);
setAutoExpandParent(true);
if ((defaultSelectedId||'') !== '') { setCurrentDirId(defaultItem.nodeId);
recursion(newData); setCurrentDirType(defaultItem.type||'');
setCurrentDir(defaultItem);
onSelect && onSelect(defaultItem.nodeId, defaultItem.type||'', defaultItem.level);
} }
}
}
if (resetCurrentDirId) { if ((metadataIds??[]).length > 0) {
dispatch({
if (defaultItem) { type: 'assetmanage.queryDirectoryTreeByMetadataId',
const expandedKeys = _dataList payload: {
.map(item => { metadataIdPath: metadataIds[0]
if (item.key.indexOf(defaultSelectedId) > -1) { },
return getParentKey(item.key, newData); callback: data => {
} disposeData(data)
return null; },
}) error: () => {
.filter((item, i, self) => item && self.indexOf(item) === i); setLoading(false);
setExpandedKeys([...expandedKeys, defaultSelectedId]);
setAutoExpandParent(true);
setCurrentDirId(defaultItem.nodeId);
setCurrentDirType(defaultItem.type||'');
setCurrentDir(defaultItem);
onSelect && onSelect(defaultItem.nodeId, defaultItem.type||'', defaultItem.level);
}
} }
}, });
error: () => { } else {
setLoading(false); let url = '';
if (reference === AssetManageReference || reference === AssetMountReference) {
url = 'assetmanage.queryAllDirectoryAsTree';
} }
});
dispatch({
type: url,
callback: data => {
disposeData(data)
},
error: () => {
setLoading(false);
}
});
}
} }
const treeDirectoryChanged = (did) => { const treeDirectoryChanged = (did) => {
......
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