Commit c489f5b7 by zhaochengxiang

资源列表过滤

parent d65216e0
......@@ -26,8 +26,8 @@ export function* listFilterElementIds(payload) {
return yield call(service.listFilterElementIds, payload);
}
export function* listFilterElements() {
return yield call(service.listFilterElements);
export function* listFilterElements(payload) {
return yield call(service.listFilterElements, payload);
}
export function* listFilterElementsGroupByType(payload) {
......@@ -268,4 +268,12 @@ export function* getDirectoryWithSyncStrategy(payload) {
export function* resourceSyncSchema(payload) {
return yield call(service.resourceSyncSchema, payload)
}
export function* getResourceSortingStatus() {
return yield call(service.getResourceSortingStatus)
}
export function* getResourceRelatedMetadataStatus() {
return yield call(service.getResourceRelatedMetadataStatus)
}
\ No newline at end of file
......@@ -24,8 +24,8 @@ export function listFilterElementIds(payload) {
return GetJSON("/dataassetmanager/elementApi/listFilterElementIds", payload);
}
export function listFilterElements() {
return GetJSON("/dataassetmanager/elementApi/listFilterElements");
export function listFilterElements(payload) {
return GetJSON("/dataassetmanager/elementApi/listFilterElements", payload);
}
export function listFilterElementsGroupByType(payload) {
......@@ -258,4 +258,12 @@ export function getPreviewRangeByDirId(payload) {
export function resourceSyncSchema(payload) {
return Post("/dataassetmanager/resourceApi/syncSchema", payload);
}
export function getResourceSortingStatus() {
return GetJSON("/dataassetmanager/resourceApi/listSortingStatus");
}
export function getResourceRelatedMetadataStatus() {
return GetJSON("/dataassetmanager/resourceApi/listRelatedMetadataStatus");
}
\ No newline at end of file
......@@ -31,8 +31,10 @@ const FC = (props) => {
page: defaultPage.pageNum,
size: defaultPage.pageSize,
onlyPending: false,
catalogType: 'current',
catalogType: 'currentRecursive',
keyword: undefined,
sortingStatus: undefined,
resourceStatus: undefined,
},
}))
const [fullScreen, setFullScreen] = React.useState(false)
......@@ -45,6 +47,10 @@ const FC = (props) => {
const [selectedRows, setSelectedRows] = React.useState([])
const [row, setRow] = React.useState()
const [permissions, setPermissions] = React.useState([])
const [loadingSortStatus, setLoadingSortStatus] = React.useState(false)
const [sortStatus, setSortStatus] = React.useState()
const [loadingRelatedMetadataStatus, setLoadingRelatedMetadataStatus] = React.useState(false)
const [relatedMetadataStatus, setRelatedMetadataStatus] = React.useState()
const $keyword = React.useMemo(() => new Subject(), [])
const [keyword, setKeyword] = React.useState()
const [searchType, setSearchType] = React.useState('keyword')
......@@ -99,6 +105,10 @@ const FC = (props) => {
}, [])
React.useEffect(() => {
getElements()
getResourceSortingStatus()
getResourceRelatedMetadataStatus()
const $$keyword = $keyword.pipe(debounceTime(1000)).subscribe((keyword) => {
setArgsAndPage({ keyword })
})
......@@ -134,7 +144,6 @@ const FC = (props) => {
React.useEffect(() => {
if (node?.nodeId) {
getElements()
getAssets()
}
}, [args])
......@@ -185,52 +194,50 @@ const FC = (props) => {
const columns = React.useMemo(() => {
const newColumns = []
let index = 0
for (const attrItem of (elements??[])) {
for (const name of attrItem.names??[]) {
const col = {
title: name,
dataIndex: `element${++index}`,
ellipsis: true,
width: 120,
render: (text, record) => {
return (
<Tooltip title={text}>
<Typography.Text ellipsis={true}>
{text}
</Typography.Text>
</Tooltip>
);
}
for (const element of elements??[]) {
const col = {
title: element.name,
dataIndex: `element${++index}`,
ellipsis: true,
width: 120,
render: (text, record) => {
return (
<Tooltip title={text}>
<Typography.Text ellipsis={true}>
{text}
</Typography.Text>
</Tooltip>
);
}
if (name === '编号') {
col.width = 60
} else if (name === '中文名称') {
col.width = isSzseEnv ? 230 : 160
} else if (name === '英文名称') {
col.width = isSzseEnv ? 224 : 160
} else if (name === '资产项') {
col.width = isSzseEnv ? 250 : 120
} else if (name === '资产路径') {
col.render = (text, record) => {
return (
<Tooltip title={text}>
<Typography.Text ellipsis={true}>
<a onClick={()=>{
let event = new Event('storage')
event.key = 'assetDirChangeEvent'
event.dirId = record.dirId
window?.dispatchEvent(event)
}}>
{text}
</a>
</Typography.Text>
</Tooltip>
)
}
}
if (element.name === '编号') {
col.width = 60
} else if (element.name === '中文名称') {
col.width = isSzseEnv ? 230 : 160
} else if (element.name === '英文名称') {
col.width = isSzseEnv ? 224 : 160
} else if (element.name === '资源项') {
col.width = isSzseEnv ? 250 : 120
} else if (element.name === '资源路径') {
col.render = (text, record) => {
return (
<Tooltip title={text}>
<Typography.Text ellipsis={true}>
<a onClick={()=>{
let event = new Event('storage')
event.key = 'assetDirChangeEvent'
event.dirId = record.dirId
window?.dispatchEvent(event)
}}>
{text}
</a>
</Typography.Text>
</Tooltip>
)
}
newColumns.push(col)
}
newColumns.push(col)
}
return newColumns
......@@ -242,9 +249,7 @@ const FC = (props) => {
const newAsset = {...item}
let index = 0
for (const elementValue of (item.elementValues??[])) {
for (const value of (elementValue.values??[])) {
newAsset[`element${++index}`] = value
}
newAsset[`element${++index}`] = elementValue
}
newTableData.push(newAsset)
}
......@@ -269,10 +274,38 @@ const FC = (props) => {
})
}
const getResourceSortingStatus = () => {
setLoadingSortStatus(true)
dispatch({
type: 'assetmanage.getResourceSortingStatus',
callback: data => {
setLoadingSortStatus(false)
setSortStatus(data)
},
error: () => {
setLoadingSortStatus(false)
}
})
}
const getResourceRelatedMetadataStatus = () => {
setLoadingRelatedMetadataStatus(true)
dispatch({
type: 'assetmanage.getResourceRelatedMetadataStatus',
callback: data => {
setLoadingRelatedMetadataStatus(false)
setRelatedMetadataStatus(data)
},
error: () => {
setLoadingRelatedMetadataStatus(false)
}
})
}
const getElements = () => {
setLoadingElements(true)
dispatch({
type: 'assetmanage.listFilterElementsGroupByType',
type: 'assetmanage.listFilterElements',
payload: {
range: getAssetRange(ResourceManageReference),
dataAssetType: getAssetType(ResourceManageReference)
......@@ -289,16 +322,29 @@ const FC = (props) => {
const getAssets = () => {
setLoading(true)
let [recursive, dirId] = [true, node?.nodeId]
if (args.params.catalogType === 'current') {
recursive = false
}
if (args.params.catalogType === 'fullSearch') {
dirId = ''
}
dispatch({
type: 'assetmanage.listDataResourcesByPage',
payload: {
data: [],
params: {
dirId: node?.nodeId,
dirId,
pageNum: args.params.page,
pageSize: args.params.size,
keyword: args.params.keyword,
range: getAssetRange(ResourceManageReference),
resourceStatus: args.params.resourceStatus,
sortingStatus: args.params.sortingStatus,
recursive,
}
},
callback: data => {
......@@ -611,18 +657,48 @@ const FC = (props) => {
onChange={(value) => {
setArgsAndPage({ catalogType: value })
}}
style={{ width: 140 }}
style={{ width: 170 }}
>
<Select.Option value='currentRecursive'>
当前目录(含子目录)
</Select.Option>
<Select.Option value='current'>
当前目录
</Select.Option>
<Select.Option value='currentRecursive'>
当前及子孙目录
</Select.Option>
<Select.Option value='fullSearch'>
全部数据
</Select.Option>
</Select>
<Select
placeholder='梳理状态'
onChange={(value) => {
setArgsAndPage({ sortingStatus: value })
}}
style={{ width: 100 }}
>
{
(sortStatus??[]).map((item, index) => {
return <Select.Option key={index} value={item.type}>
{item.desc}
</Select.Option>
})
}
</Select>
<Select
placeholder='资源状态'
onChange={(value) => {
setArgsAndPage({ resourceStatus: value })
}}
style={{ width: 100 }}
>
{
(relatedMetadataStatus??[]).map((item, index) => {
return <Select.Option key={index} value={item.type}>
{item.desc}
</Select.Option>
})
}
</Select>
<Input size="middle"
addonBefore={
<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