Commit 14b78fe3 by zhaochengxiang

表级搜索

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