Commit 3cc06226 by zhaochengxiang

资产多模版

parent e6630285
...@@ -13,6 +13,10 @@ export function* listElements() { ...@@ -13,6 +13,10 @@ export function* listElements() {
return yield call(service.listElements); return yield call(service.listElements);
} }
export function* listElementsByDirId(payload) {
return yield call(service.listElementsByDirId, payload);
}
export function* listUserElements() { export function* listUserElements() {
return yield call(service.listUserElements); return yield call(service.listUserElements);
} }
...@@ -33,6 +37,10 @@ export function* listFilterElementsGroupByType() { ...@@ -33,6 +37,10 @@ export function* listFilterElementsGroupByType() {
return yield call(service.listFilterElementsGroupByType); return yield call(service.listFilterElementsGroupByType);
} }
export function* listFilterElementsGroupByTypeWithDirId(payload) {
return yield call(service.listFilterElementsGroupByTypeWithDirId, payload);
}
export function* setupFilterElementIds(payload) { export function* setupFilterElementIds(payload) {
return yield call(service.setupFilterElementIds, payload); return yield call(service.setupFilterElementIds, payload);
} }
...@@ -256,3 +264,7 @@ export function* subs(payload) { ...@@ -256,3 +264,7 @@ export function* subs(payload) {
export function* getScore(payload) { export function* getScore(payload) {
return yield call(service.getScore, payload); return yield call(service.getScore, payload);
} }
export function* getResourceTypes(payload) {
return yield call(service.getResourceTypes, payload);
}
\ No newline at end of file
...@@ -12,6 +12,10 @@ export function listElements() { ...@@ -12,6 +12,10 @@ export function listElements() {
return PostJSON("/dataassetmanager/elementApi/listElements"); return PostJSON("/dataassetmanager/elementApi/listElements");
} }
export function listElementsByDirId(payload) {
return GetJSON("/dataassetmanager/elementApi/listElementsByDirId", payload);
}
export function listUserElements() { export function listUserElements() {
return PostJSON("/dataassetmanager/elementApi/listSelectedRangeElements"); return PostJSON("/dataassetmanager/elementApi/listSelectedRangeElements");
} }
...@@ -32,6 +36,10 @@ export function listFilterElementsGroupByType() { ...@@ -32,6 +36,10 @@ export function listFilterElementsGroupByType() {
return GetJSON("/dataassetmanager/elementApi/listFilterElementsGroupByType"); return GetJSON("/dataassetmanager/elementApi/listFilterElementsGroupByType");
} }
export function listFilterElementsGroupByTypeWithDirId(payload) {
return GetJSON("/dataassetmanager/elementApi/listFilterElementsGroupByTypeWithDirId", payload);
}
export function setupFilterElementIds(payload) { export function setupFilterElementIds(payload) {
return PostJSON("/dataassetmanager/elementApi/setupFilterElementIds", payload); return PostJSON("/dataassetmanager/elementApi/setupFilterElementIds", payload);
} }
...@@ -263,3 +271,7 @@ export function subs(payload) { ...@@ -263,3 +271,7 @@ export function subs(payload) {
export function getScore(payload) { export function getScore(payload) {
return Get("/dataassetmanager/dataAssetApi/getScoreByDirectoryId", payload); return Get("/dataassetmanager/dataAssetApi/getScoreByDirectoryId", payload);
} }
export function getResourceTypes(payload) {
return GetJSON("/dataassetmanager/dataAssetApi/listSupportResourceTypes", payload);
}
\ No newline at end of file
...@@ -6,7 +6,7 @@ import { IsArr, showMessage, isSzseEnv } from './index'; ...@@ -6,7 +6,7 @@ import { IsArr, showMessage, isSzseEnv } from './index';
const CancelToken = axios.CancelToken; const CancelToken = axios.CancelToken;
const baseURL = '/api/'; const baseURL = '/api/';
const debugEnv = 328551007; const debugEnv = 475629450;
const instance = axios.create({ const instance = axios.create({
baseURL, baseURL,
......
...@@ -75,9 +75,14 @@ const AssetAction = (props) => { ...@@ -75,9 +75,14 @@ const AssetAction = (props) => {
} }
const getElements = ( cb = null ) => { const getElements = ( cb = null ) => {
if (!dirId) return;
setLoading(true); setLoading(true);
dispatch({ dispatch({
type: 'assetmanage.listElements', type: 'assetmanage.listElementsByDirId',
payload: {
dirId
},
callback: data => { callback: data => {
setLoading(false); setLoading(false);
setElements(data||[]); setElements(data||[]);
......
...@@ -93,7 +93,7 @@ const AssetDirectory = (props) => { ...@@ -93,7 +93,7 @@ const AssetDirectory = (props) => {
const onExportElementBtnClick = () => { const onExportElementBtnClick = () => {
const env = LocalStorage.get('assetsEnv'); const env = LocalStorage.get('assetsEnv');
window.open(`/api/dataassetmanager/elementApi/export?env=${env}`); window.open(`/api/dataassetmanager/elementApi/export?env=${env}&resourceType=${dir?.resourceType}`);
} }
const onFilterElementClick = () => { const onFilterElementClick = () => {
...@@ -284,6 +284,7 @@ const AssetDirectory = (props) => { ...@@ -284,6 +284,7 @@ const AssetDirectory = (props) => {
<ImportElement <ImportElement
visible={importElementVisible} visible={importElementVisible}
onCancel={onImportElementCancel} onCancel={onImportElementCancel}
dir={dir}
/> />
<FilterElementModal <FilterElementModal
......
...@@ -189,9 +189,12 @@ const AssetTable = (props) => { ...@@ -189,9 +189,12 @@ const AssetTable = (props) => {
}, [timestamp]) }, [timestamp])
useEffect(() => { useEffect(() => {
if ((nodeId||'') !== '' || reference===AssetRecycleReference) { if (nodeId) {
getFilterElementsGroupByDirIdThenGetDataAssets();
} else if (reference===AssetRecycleReference) {
getFilterElementsGroupThenGetDataAssets(); getFilterElementsGroupThenGetDataAssets();
} }
//eslint-disable-next-line react-hooks/exhaustive-deps //eslint-disable-next-line react-hooks/exhaustive-deps
}, [ keyword, pagination, elementsChanged, assetActionChanged, recursive, fullSearch ]) }, [ keyword, pagination, elementsChanged, assetActionChanged, recursive, fullSearch ])
...@@ -240,6 +243,101 @@ const AssetTable = (props) => { ...@@ -240,6 +243,101 @@ const AssetTable = (props) => {
setPagination({ pageNum: page, pageSize: size }); setPagination({ pageNum: page, pageSize: size });
} }
const getFilterElementsGroupByDirIdThenGetDataAssets = () => {
setLoading(true);
dispatch({
type: 'assetmanage.listFilterElementsGroupByTypeWithDirId',
payload: {
dirId: nodeId
},
callback: data => {
let _columns = [];
let index = 0, _metadataIndex = '';
(data||[]).forEach(group => {
(group.names||[]).forEach((name, i) => {
index++;
const params = {
title: name,
dataIndex: `element${index}`,
ellipsis: true,
width: 120,
render: (text, record) => {
return (
<Tooltip title={text||''}>
<Text ellipsis={true}>
{highlightSearchContentByTerms(text||'', keyword?[keyword]:[])}
</Text>
</Tooltip>
);
}
};
if (name === '编号') {
params.width = 60;
// params.fixed = 'left';
} else if (name === '中文名称') {
// params.fixed = 'left';
} else if (name === '英文名称') {
params.width = isSzseEnv?250:120;
// params.fixed = 'left';
// params.render = (text, record) => {
// return (
// <Tooltip title={text||''}>
// <a onClick={()=>{detailAsset(record);}}>
// {text||''}
// </a>
// </Tooltip>
// );
// }
} else if (name === '资产项') {
params.width = isSzseEnv?250:120;
params.render = (metadata, _) => {
return (
<AssetItem metadata={metadata} terms={keyword?[keyword]:[]} />
);
}
_metadataIndex = `element${index}`;
} else if (name === '资产路径') {
params.render = (text, record) => {
return (
<Tooltip title={text||''}>
<Text ellipsis={true}>
<a onClick={()=>{
LocalStorage.set('assetDirChange', !(LocalStorage.get('assetDirChange')||false));
let event = new Event('storage');
event.key = 'assetDirChange';
event.dirId = record.dirId||'';
window?.dispatchEvent(event);
}}>
{highlightSearchContentByTerms(text||'', keyword?[keyword]:[])}
</a>
</Text>
</Tooltip>
);
}
}
_columns.push(params);
})
})
setAssets([]);
setColumns(_columns);
metadataIndexRef.current = _metadataIndex;
getDataAssets(_metadataIndex);
},
error: () => {
setLoading(false)
}
})
}
const getFilterElementsGroupThenGetDataAssets = () => { const getFilterElementsGroupThenGetDataAssets = () => {
setLoading(true); setLoading(true);
dispatch({ dispatch({
......
...@@ -78,8 +78,15 @@ const ImportAssetDrawer = (props) => { ...@@ -78,8 +78,15 @@ const ImportAssetDrawer = (props) => {
const downloadTemplate = () => { const downloadTemplate = () => {
const env = LocalStorage.get('assetsEnv'); const env = LocalStorage.get('assetsEnv');
dispatch({
window.open(`/api/dataassetmanager/dataAssetApi/getImportTemplate?env=${env}`); type: 'assetmanage.getDirectoryById',
payload: {
dirId: nodeId
},
callback: data => {
window.open(`/api/dataassetmanager/dataAssetApi/getImportTemplate?env=${env}&resourceType=${data?.resourceType}`);
}
})
} }
const getLogs = (p = 1, s = 20) => { const getLogs = (p = 1, s = 20) => {
...@@ -140,10 +147,9 @@ const ImportAssetDrawer = (props) => { ...@@ -140,10 +147,9 @@ const ImportAssetDrawer = (props) => {
dirId: nodeId dirId: nodeId
}, },
callback: data => { callback: data => {
console.log('path', data.path);
dispatch({ dispatch({
type: 'assetmanage.assetImport', type: 'assetmanage.assetImport',
payload: { fileList: fileList, params: { parentPath: data?.path||'' } }, payload: { fileList: fileList, params: { dirId: nodeId, resourceType: data.resourceType } },
callback: data => { callback: data => {
setConfirmLoading(false); setConfirmLoading(false);
setFileList([]); setFileList([]);
......
...@@ -6,7 +6,7 @@ import { dispatchLatest } from '../../../../model'; ...@@ -6,7 +6,7 @@ import { dispatchLatest } from '../../../../model';
import { showMessage } from '../../../../util'; import { showMessage } from '../../../../util';
const ImportElement = (props) => { const ImportElement = (props) => {
const { onCancel, visible } = props; const { onCancel, visible, dir } = props;
const [ fileList, setFileList ] = useState([]); const [ fileList, setFileList ] = useState([]);
const [ confirmLoading, setConfirmLoading ] = useState(false); const [ confirmLoading, setConfirmLoading ] = useState(false);
...@@ -42,7 +42,12 @@ const ImportElement = (props) => { ...@@ -42,7 +42,12 @@ const ImportElement = (props) => {
setConfirmLoading(true); setConfirmLoading(true);
dispatchLatest({ dispatchLatest({
type: 'assetmanage.importElement', type: 'assetmanage.importElement',
payload: { fileList }, payload: {
params: {
resourceType: dir?.resourceType
},
fileList
},
callback: data => { callback: data => {
setConfirmLoading(false); setConfirmLoading(false);
reset(); reset();
......
...@@ -4,11 +4,11 @@ import { Modal, Form, Input, Space, Button, Radio, Select } from 'antd'; ...@@ -4,11 +4,11 @@ import { Modal, Form, Input, Space, Button, Radio, Select } from 'antd';
import { dispatch } from '../../../../model'; import { dispatch } from '../../../../model';
import { showMessage } from '../../../../util'; import { showMessage } from '../../../../util';
const resourceTypes = [ // const resourceTypes = [
{ key: 'innerSource', name: '内部资源' }, // { key: 'innerSource', name: '内部资源' },
{ key: 'outerSource', name: '外部资源' }, // { key: 'outerSource', name: '外部资源' },
{ key: 'dataAsset', name: '资产' }, // { key: 'dataAsset', name: '资产' },
] // ]
const UpdateDirectoryModal = (props) => { const UpdateDirectoryModal = (props) => {
...@@ -18,6 +18,7 @@ const UpdateDirectoryModal = (props) => { ...@@ -18,6 +18,7 @@ const UpdateDirectoryModal = (props) => {
const [ dir, setDir ] = useState(null); const [ dir, setDir ] = useState(null);
const [ confirmLoading, setConfirmLoading ] = useState(false); const [ confirmLoading, setConfirmLoading ] = useState(false);
const [ isThemeAdd, setIsThemeAdd ] = useState(false); const [ isThemeAdd, setIsThemeAdd ] = useState(false);
const [ resourceTypes, setResourceTypes ] = useState(undefined);
useEffect(() => { useEffect(() => {
...@@ -25,6 +26,7 @@ const UpdateDirectoryModal = (props) => { ...@@ -25,6 +26,7 @@ const UpdateDirectoryModal = (props) => {
setDir(null); setDir(null);
form.resetFields(); form.resetFields();
getResourceTypes();
if ((dirId||'')!=='') { if ((dirId||'')!=='') {
getDirectory(); getDirectory();
} }
...@@ -33,6 +35,15 @@ const UpdateDirectoryModal = (props) => { ...@@ -33,6 +35,15 @@ const UpdateDirectoryModal = (props) => {
//eslint-disable-next-line react-hooks/exhaustive-deps //eslint-disable-next-line react-hooks/exhaustive-deps
}, [ visible ]) }, [ visible ])
const getResourceTypes = () => {
dispatch({
type: 'assetmanage.getResourceTypes',
callback: data => {
setResourceTypes(data);
}
})
}
const getDirectory = () => { const getDirectory = () => {
setDir(null); setDir(null);
dispatch({ dispatch({
...@@ -182,8 +193,8 @@ const UpdateDirectoryModal = (props) => { ...@@ -182,8 +193,8 @@ const UpdateDirectoryModal = (props) => {
> >
<Select> <Select>
{ {
resourceTypes.map((item,index) => { resourceTypes?.map((item,index) => {
return <Select.Option key={item.key}>{item.name}</Select.Option> return <Select.Option key={item.code}>{item.name}</Select.Option>
}) })
} }
</Select> </Select>
......
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