Commit 9cf2223a by zhaochengxiang

复核关联资产

parent 61ea7163
...@@ -66,6 +66,10 @@ export function* getDataAssetDetail(payload) { ...@@ -66,6 +66,10 @@ export function* getDataAssetDetail(payload) {
return yield call(service.getDataAssetDetail, payload); return yield call(service.getDataAssetDetail, payload);
} }
export function* getResourceRelateDataAssetDetail(payload) {
return yield call(service.getResourceRelateDataAssetDetail, payload);
}
export function* listDataAssetsByPage(payload) { export function* listDataAssetsByPage(payload) {
return yield call(service.listDataAssetsByPage, payload); return yield call(service.listDataAssetsByPage, payload);
} }
...@@ -240,6 +244,10 @@ export function* getResourceRelations(payload) { ...@@ -240,6 +244,10 @@ export function* getResourceRelations(payload) {
return yield call(service.getResourceRelations, payload); return yield call(service.getResourceRelations, payload);
} }
export function* getResourceRelateDataAssetsWhenChecking(payload) {
return yield call(service.getResourceRelateDataAssetsWhenChecking, payload);
}
export function* updateResourceState(payload) { export function* updateResourceState(payload) {
return yield call(service.updateResourceState, payload); return yield call(service.updateResourceState, payload);
} }
......
...@@ -64,6 +64,10 @@ export function getDataAssetDetail(payload) { ...@@ -64,6 +64,10 @@ export function getDataAssetDetail(payload) {
return GetJSON("/dataassetmanager/dataAssetApi/getDataAssetDetail", payload); return GetJSON("/dataassetmanager/dataAssetApi/getDataAssetDetail", payload);
} }
export function getResourceRelateDataAssetDetail(payload) {
return GetJSON("/dataassetmanager/resourceApi/getResourceRelateDataAssetDetail", payload)
}
export function listDataAssetsByPage(payload) { export function listDataAssetsByPage(payload) {
return PostJSON("/dataassetmanager/dataAssetApi/listDataAssetsByPage", payload); return PostJSON("/dataassetmanager/dataAssetApi/listDataAssetsByPage", payload);
} }
...@@ -248,6 +252,10 @@ export function getResourceRelations(payload) { ...@@ -248,6 +252,10 @@ export function getResourceRelations(payload) {
return GetJSON("/dataassetmanager/resourceApi/getResourceRelations", payload); return GetJSON("/dataassetmanager/resourceApi/getResourceRelations", payload);
} }
export function getResourceRelateDataAssetsWhenChecking(payload) {
return GetJSON("/dataassetmanager/resourceApi/getResourceRelateDataAssetsWhenChecking", payload);
}
export function updateResourceState(payload) { export function updateResourceState(payload) {
return PostJSON("/dataassetmanager/resourceApi/updateResourceState", payload); return PostJSON("/dataassetmanager/resourceApi/updateResourceState", payload);
} }
......
//资产项
import React from 'react' import React from 'react'
import { Button, Tooltip } from 'antd' import { Button, Tooltip } from 'antd'
......
...@@ -4,6 +4,7 @@ import { Modal, Button, Spin, Form, Radio } from 'antd' ...@@ -4,6 +4,7 @@ import { Modal, Button, Spin, Form, Radio } from 'antd'
import { dispatch } from '../../../model' import { dispatch } from '../../../model'
import { checkMenuAdmit } from '../../../util' import { checkMenuAdmit } from '../../../util'
import { AnchorDirId, AnchorId } from '../../../util/constant' import { AnchorDirId, AnchorId } from '../../../util/constant'
import ResourceRelateAssetDetail from './resource-relate-asset-detal'
const FC = (props) => { const FC = (props) => {
const { items, visible, onCancel, type = 'single' } = props const { items, visible, onCancel, type = 'single' } = props
...@@ -74,6 +75,10 @@ export default FC ...@@ -74,6 +75,10 @@ export default FC
export const Basic = React.forwardRef(function ({ items, type }, ref) { export const Basic = React.forwardRef(function ({ items, type }, ref) {
const [relations, setRelations] = React.useState([]) const [relations, setRelations] = React.useState([])
const [assetDetailParams, setAssetDetailParams] = React.useState({
visible: false,
id: undefined
})
const [form] = Form.useForm() const [form] = Form.useForm()
React.useImperativeHandle(ref, () => ({ React.useImperativeHandle(ref, () => ({
...@@ -98,9 +103,9 @@ export const Basic = React.forwardRef(function ({ items, type }, ref) { ...@@ -98,9 +103,9 @@ export const Basic = React.forwardRef(function ({ items, type }, ref) {
const getRelations = () => { const getRelations = () => {
if ((items??[]).length > 0) { if ((items??[]).length > 0) {
dispatch({ dispatch({
type: 'assetmanage.getResourceRelations', type: 'assetmanage.getResourceRelateDataAssetsWhenChecking',
payload: { payload: {
dataAssetId: items[0].id, resourceId: items[0].id,
}, },
callback: data => { callback: data => {
setRelations(data??[]) setRelations(data??[])
...@@ -109,25 +114,12 @@ export const Basic = React.forwardRef(function ({ items, type }, ref) { ...@@ -109,25 +114,12 @@ export const Basic = React.forwardRef(function ({ items, type }, ref) {
} }
} }
const jumpToRelation = (relation) => {
const timestamp = new Date().getTime()
if (relation.resourceType==='innerSource'||relation.resourceType==='outerSource') {
if (checkMenuAdmit('asset-resource-browse')) {
window.open(`/center-home/menu/asset-resource-browse?${AnchorId}=${relation?.dataAssetId}&${AnchorDirId}=${relation?.dirId}&timestamp=${timestamp}`)
}
} else if (relation.resourceType==='dataAsset') {
if (checkMenuAdmit('asset-browse')) {
window.open(`/center-home/menu/asset-browse?${AnchorId}=${relation?.dataAssetId}&${AnchorDirId}=${relation?.dirId}&timestamp=${timestamp}`)
}
}
}
const onValuesChange = (changedValues, allValues) => { const onValuesChange = (changedValues, allValues) => {
console.log('all values', allValues) console.log('all values', allValues)
} }
return ( return (
<React.Fragment>
<Form <Form
form={form} form={form}
labelCol={{ span: 4 }} labelCol={{ span: 4 }}
...@@ -156,7 +148,12 @@ export const Basic = React.forwardRef(function ({ items, type }, ref) { ...@@ -156,7 +148,12 @@ export const Basic = React.forwardRef(function ({ items, type }, ref) {
{ {
(relations??[]).map((item, index) => { (relations??[]).map((item, index) => {
return ( return (
<a key={index} onClick={() => {jumpToRelation(item)}}>{item.dataAssetName}</a> <a key={index} onClick={() => {
setAssetDetailParams({
visible: true,
id: item.dataAssetId
})
}}>{item.dataAssetName}</a>
); );
}) })
} }
...@@ -164,5 +161,15 @@ export const Basic = React.forwardRef(function ({ items, type }, ref) { ...@@ -164,5 +161,15 @@ export const Basic = React.forwardRef(function ({ items, type }, ref) {
</Form.Item> </Form.Item>
} }
</Form> </Form>
<ResourceRelateAssetDetail
{...assetDetailParams}
onCancel={() => {
setAssetDetailParams({
visible: false,
id: undefined
})
}}
/>
</React.Fragment>
) )
}) })
\ No newline at end of file
import React from 'react'
import { Modal, Spin, Descriptions, Divider } from 'antd'
import { dispatch } from '../../../model'
import { ElementItem } from '../AssetManage/Component/AssetAction'
import { AssetManageReference } from '../../../util/constant'
const FC = (props) => {
const { visible, id, onCancel } = props
const [loading, setLoading] = React.useState(false)
const [data, setData] = React.useState()
React.useEffect(() => {
if (visible) {
getDataAssetDetail()
}
}, [visible])
const getDataAssetDetail = () => {
setLoading(true)
dispatch({
type: 'assetmanage.getResourceRelateDataAssetDetail',
payload: {
relatedDataAssetId: id
},
callback: data => {
setLoading(false)
setData(data?.elements)
},
error: () => {
setLoading(false)
}
})
}
const close = (refresh = false) => {
setLoading(false)
onCancel?.()
}
return (
<Modal
visible={visible}
footer={null}
width='1000px'
bodyStyle={{ padding: '0px 15px 0px 15px', overflowX: 'auto', maxHeight: '80vh' }}
title='关联资产详情'
centered destroyOnClose
onCancel={() => { close() }}
>
<Spin spinning={loading}>
<Basic data={data} />
</Spin>
</Modal>
)
}
export default FC
export const Basic = React.forwardRef(function ({ data }, ref) {
const [groups, setGroups] = React.useState()
React.useEffect(() => {
setGroups(Array.from(new Set((data??[]).map(item => item.type))))
}, [data])
return (
<React.Fragment>
{
(groups??[]).map((group, index) => {
const filterElements = (data??[]).filter(element => element.type===group)
return (
<div key={index}>
<div className='flex' style={{ alignItems: 'center', padding: '15px 0' }}>
<div style={{ width: 3, height: 14, backgroundColor: '#0069AC', marginRight: 5 }} />
<span style={{ fontWeight: 'bold', color: '#464646' }}>{group}</span>
</div>
<Descriptions column={2}>
{
(filterElements??[]).map((item, index) => {
return (
<Descriptions.Item label={item.name||''} key={index}>
<ElementItem element={item} value={item.value} />
</Descriptions.Item>
);
})
}
</Descriptions>
<Divider style={{ margin: '10px 0' }} />
</div>
)
})
}
</React.Fragment>
)
})
\ No newline at end of file
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