Commit 3cc06226 by zhaochengxiang

资产多模版

parent e6630285
......@@ -13,6 +13,10 @@ export function* listElements() {
return yield call(service.listElements);
}
export function* listElementsByDirId(payload) {
return yield call(service.listElementsByDirId, payload);
}
export function* listUserElements() {
return yield call(service.listUserElements);
}
......@@ -33,6 +37,10 @@ export function* listFilterElementsGroupByType() {
return yield call(service.listFilterElementsGroupByType);
}
export function* listFilterElementsGroupByTypeWithDirId(payload) {
return yield call(service.listFilterElementsGroupByTypeWithDirId, payload);
}
export function* setupFilterElementIds(payload) {
return yield call(service.setupFilterElementIds, payload);
}
......@@ -255,4 +263,8 @@ export function* subs(payload) {
export function* 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() {
return PostJSON("/dataassetmanager/elementApi/listElements");
}
export function listElementsByDirId(payload) {
return GetJSON("/dataassetmanager/elementApi/listElementsByDirId", payload);
}
export function listUserElements() {
return PostJSON("/dataassetmanager/elementApi/listSelectedRangeElements");
}
......@@ -32,6 +36,10 @@ export function listFilterElementsGroupByType() {
return GetJSON("/dataassetmanager/elementApi/listFilterElementsGroupByType");
}
export function listFilterElementsGroupByTypeWithDirId(payload) {
return GetJSON("/dataassetmanager/elementApi/listFilterElementsGroupByTypeWithDirId", payload);
}
export function setupFilterElementIds(payload) {
return PostJSON("/dataassetmanager/elementApi/setupFilterElementIds", payload);
}
......@@ -262,4 +270,8 @@ export function subs(payload) {
export function getScore(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';
const CancelToken = axios.CancelToken;
const baseURL = '/api/';
const debugEnv = 328551007;
const debugEnv = 475629450;
const instance = axios.create({
baseURL,
......
......@@ -75,9 +75,14 @@ const AssetAction = (props) => {
}
const getElements = ( cb = null ) => {
if (!dirId) return;
setLoading(true);
dispatch({
type: 'assetmanage.listElements',
type: 'assetmanage.listElementsByDirId',
payload: {
dirId
},
callback: data => {
setLoading(false);
setElements(data||[]);
......
......@@ -93,7 +93,7 @@ const AssetDirectory = (props) => {
const onExportElementBtnClick = () => {
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 = () => {
......@@ -284,6 +284,7 @@ const AssetDirectory = (props) => {
<ImportElement
visible={importElementVisible}
onCancel={onImportElementCancel}
dir={dir}
/>
<FilterElementModal
......
......@@ -189,9 +189,12 @@ const AssetTable = (props) => {
}, [timestamp])
useEffect(() => {
if ((nodeId||'') !== '' || reference===AssetRecycleReference) {
if (nodeId) {
getFilterElementsGroupByDirIdThenGetDataAssets();
} else if (reference===AssetRecycleReference) {
getFilterElementsGroupThenGetDataAssets();
}
//eslint-disable-next-line react-hooks/exhaustive-deps
}, [ keyword, pagination, elementsChanged, assetActionChanged, recursive, fullSearch ])
......@@ -240,6 +243,101 @@ const AssetTable = (props) => {
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 = () => {
setLoading(true);
dispatch({
......
......@@ -78,8 +78,15 @@ const ImportAssetDrawer = (props) => {
const downloadTemplate = () => {
const env = LocalStorage.get('assetsEnv');
window.open(`/api/dataassetmanager/dataAssetApi/getImportTemplate?env=${env}`);
dispatch({
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) => {
......@@ -140,10 +147,9 @@ const ImportAssetDrawer = (props) => {
dirId: nodeId
},
callback: data => {
console.log('path', data.path);
dispatch({
type: 'assetmanage.assetImport',
payload: { fileList: fileList, params: { parentPath: data?.path||'' } },
payload: { fileList: fileList, params: { dirId: nodeId, resourceType: data.resourceType } },
callback: data => {
setConfirmLoading(false);
setFileList([]);
......
......@@ -6,7 +6,7 @@ import { dispatchLatest } from '../../../../model';
import { showMessage } from '../../../../util';
const ImportElement = (props) => {
const { onCancel, visible } = props;
const { onCancel, visible, dir } = props;
const [ fileList, setFileList ] = useState([]);
const [ confirmLoading, setConfirmLoading ] = useState(false);
......@@ -42,7 +42,12 @@ const ImportElement = (props) => {
setConfirmLoading(true);
dispatchLatest({
type: 'assetmanage.importElement',
payload: { fileList },
payload: {
params: {
resourceType: dir?.resourceType
},
fileList
},
callback: data => {
setConfirmLoading(false);
reset();
......
......@@ -4,11 +4,11 @@ import { Modal, Form, Input, Space, Button, Radio, Select } from 'antd';
import { dispatch } from '../../../../model';
import { showMessage } from '../../../../util';
const resourceTypes = [
{ key: 'innerSource', name: '内部资源' },
{ key: 'outerSource', name: '外部资源' },
{ key: 'dataAsset', name: '资产' },
]
// const resourceTypes = [
// { key: 'innerSource', name: '内部资源' },
// { key: 'outerSource', name: '外部资源' },
// { key: 'dataAsset', name: '资产' },
// ]
const UpdateDirectoryModal = (props) => {
......@@ -18,13 +18,15 @@ const UpdateDirectoryModal = (props) => {
const [ dir, setDir ] = useState(null);
const [ confirmLoading, setConfirmLoading ] = useState(false);
const [ isThemeAdd, setIsThemeAdd ] = useState(false);
const [ resourceTypes, setResourceTypes ] = useState(undefined);
useEffect(() => {
if (visible) {
setDir(null);
form.resetFields();
getResourceTypes();
if ((dirId||'')!=='') {
getDirectory();
}
......@@ -33,6 +35,15 @@ const UpdateDirectoryModal = (props) => {
//eslint-disable-next-line react-hooks/exhaustive-deps
}, [ visible ])
const getResourceTypes = () => {
dispatch({
type: 'assetmanage.getResourceTypes',
callback: data => {
setResourceTypes(data);
}
})
}
const getDirectory = () => {
setDir(null);
dispatch({
......@@ -182,8 +193,8 @@ const UpdateDirectoryModal = (props) => {
>
<Select>
{
resourceTypes.map((item,index) => {
return <Select.Option key={item.key}>{item.name}</Select.Option>
resourceTypes?.map((item,index) => {
return <Select.Option key={item.code}>{item.name}</Select.Option>
})
}
</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