Commit 5d435825 by zhaochengxiang

新增资产

parent 9f2cb373
...@@ -45,7 +45,7 @@ export function setupFilterElementIdsConfig(payload) { ...@@ -45,7 +45,7 @@ export function setupFilterElementIdsConfig(payload) {
} }
export function addOrUpdateDataAsset(payload) { export function addOrUpdateDataAsset(payload) {
return PostJSON("/dataassetmanager/dataAssetApi/addOrUpdateDataAsset", payload); return PostJSON("/dataassetmanager/dataAssetApi/addDataAsset", payload);
} }
export function checkCodeIsExist(payload) { export function checkCodeIsExist(payload) {
......
...@@ -35,17 +35,8 @@ const AddAssetModel = (props) => { ...@@ -35,17 +35,8 @@ const AddAssetModel = (props) => {
} }
}); });
let params = {} let params = {
if (reference === ResourceManageReference) { dirIds: nodeId,
params = {
dirIds: nodeId,
metadataId
};
} else {
params = {
dirId: nodeId,
metadataId
};
} }
setConfirmLoading(true); setConfirmLoading(true);
......
...@@ -10,9 +10,12 @@ import Separate from './Separate'; ...@@ -10,9 +10,12 @@ import Separate from './Separate';
import { AnchorId, AnchorDirId, AssetManageReference, ResourceManageReference } from '../../../../util/constant'; import { AnchorId, AnchorDirId, AssetManageReference, ResourceManageReference } from '../../../../util/constant';
import PermissionButton from '../../../../util/Component/PermissionButton'; import PermissionButton from '../../../../util/Component/PermissionButton';
import DataQuality, { DataQualityFeignTagList } from '../../../QianKun/data-quality' import DataQuality, { DataQualityFeignTagList } from '../../../QianKun/data-quality'
import AssetItem from '../asset-item';
import ResourceItem from '../../AssetResourceManage/resource-item';
import { CancelSvg, EditSvg, SaveSvg, FullScreenSvg, CancelFullScreenSvg } from './AssetSvg'; import { CancelSvg, EditSvg, SaveSvg, FullScreenSvg, CancelFullScreenSvg } from './AssetSvg';
import { Subject } from 'rxjs'; import { Subject } from 'rxjs';
import { element } from 'prop-types';
export const AssetActionSubject = new Subject(); export const AssetActionSubject = new Subject();
...@@ -265,17 +268,8 @@ const AssetAction = (props) => { ...@@ -265,17 +268,8 @@ const AssetAction = (props) => {
} }
}); });
let params = {} let params = {
if (reference === ResourceManageReference) { dirIds: dirId,
params = {
dirIds: dirId,
metadataId
};
} else {
params = {
dirId,
metadataId
};
} }
setConfirmLoading(true); setConfirmLoading(true);
...@@ -354,22 +348,6 @@ const AssetAction = (props) => { ...@@ -354,22 +348,6 @@ const AssetAction = (props) => {
}) })
} }
const elementItem = (element) => {
if (element?.metadataItem === '是') return <MetadataInfo reference={reference} />
if (element?.selectMode === '单选') {
return <Select disabled={element?.manualMaintain==='否'}>
{
(typeof(element?.optional) === 'string') && (element?.optional??'').split(',').map((item, index) => <Select.Option key={index} value={item}>{item}</Select.Option>)
}
</Select>
} else if (element?.selectMode === '多选') {
return <MultipleItem element={element} />
}
return <Input disabled={element?.manualMaintain==='否'} />
}
const formItemLayout = { const formItemLayout = {
labelCol: { labelCol: {
xs: { span: 24 }, xs: { span: 24 },
...@@ -562,7 +540,7 @@ const AssetAction = (props) => { ...@@ -562,7 +540,7 @@ const AssetAction = (props) => {
if (state.message === 'data-govern-show-metadata-list-callback-message') { if (state.message === 'data-govern-show-metadata-list-callback-message') {
setMetadataId(state.data?.metadataId||''); setMetadataId(state.data?.metadataId||'');
onMetadataChange && onMetadataChange(state.data?.metadataId||''); onMetadataChange && onMetadataChange(state.data?.metadataId||'');
form?.setFieldsValue({ '资产项': state.data?.metadataInfoJson||'' }); // form?.setFieldsValue({ '资产项': state.data?.metadataInfoJson||'' });
if ((state.data?.metadataId||'') !== '') { if ((state.data?.metadataId||'') !== '') {
fillElementValueBeforeCreate(state.data?.metadataId||''); fillElementValueBeforeCreate(state.data?.metadataId||'');
...@@ -579,7 +557,7 @@ const AssetAction = (props) => { ...@@ -579,7 +557,7 @@ const AssetAction = (props) => {
key={_index} key={_index}
style={{ marginBottom: (_index===sameAttributeElements.length-1)? 0 : 15 }} style={{ marginBottom: (_index===sameAttributeElements.length-1)? 0 : 15 }}
> >
{elementItem(element)} <ElementItem type='edit' element={element} reference={reference} />
</Form.Item> </Form.Item>
); );
}) })
...@@ -591,9 +569,7 @@ const AssetAction = (props) => { ...@@ -591,9 +569,7 @@ const AssetAction = (props) => {
(sameAttributeElements||[]).map((item, index) => { (sameAttributeElements||[]).map((item, index) => {
return ( return (
<Descriptions.Item label={<div className='title-common' style={{ textAlign: 'right', width: 60 }}>{item.name||''}</div>} key={index} style={{ paddingBottom: (index===sameAttributeElements.length-1)? 0 : 10 }}> <Descriptions.Item label={<div className='title-common' style={{ textAlign: 'right', width: 60 }}>{item.name||''}</div>} key={index} style={{ paddingBottom: (index===sameAttributeElements.length-1)? 0 : 10 }}>
{ <ElementItem element={item} value={item.value} terms={terms} />
item.name==='资产项' ? <MetadataInfo reference={reference} config={false} value={item.value||''} /> : <span className='text-color'>{highlightSearchContentByTerms(item.value||'', terms)}</span>
}
</Descriptions.Item> </Descriptions.Item>
); );
}) })
...@@ -643,4 +619,52 @@ export const MultipleItem = ({ value, onChange, element }) => { ...@@ -643,4 +619,52 @@ export const MultipleItem = ({ value, onChange, element }) => {
} }
</Select> </Select>
) )
}
export const ElementItem = ({ type = 'detail', element, reference = AssetManageReference, ...restProps }) => {
const { value, terms } = restProps
const inputItem = () => {
if (element?.metadataItem === '是') {
if (getAssetType(reference) === 'dataAsset') {
return <AssetItem readonly={(type==='detail')} {...restProps} />
} else if (getAssetType(reference) === 'resource') {
return <ResourceItem readonly={(type==='detail')} {...restProps} />
}
}
if (type === 'detail') {
return <span className='text-color'>{highlightSearchContentByTerms(value, terms)}</span>
} else {
if (element?.selectMode === '单选') {
return <Select
disabled={element?.manualMaintain==='否'}
dropdownRender={(originNode) => (
<div
onClick={e => {
e.stopPropagation()
}}
>
{originNode}
</div>
)}
{...restProps}
>
{
(typeof(element?.optional) === 'string') && (element?.optional??'').split(',').map((item, index) => <Select.Option key={index} value={item}>{item}</Select.Option>)
}
</Select>
} else if (element?.selectMode === '多选') {
return <MultipleItem element={element} {...restProps}/>
}
return <Input disabled={element?.manualMaintain==='否'} {...restProps} />
}
}
return (
<React.Fragment>
{inputItem()}
</React.Fragment>
)
} }
\ No newline at end of file
...@@ -14,6 +14,7 @@ import AssetItem from '../AssetManage/asset-item' ...@@ -14,6 +14,7 @@ import AssetItem from '../AssetManage/asset-item'
import './add-to-asset.less' import './add-to-asset.less'
import { MetadataColumn } from './table' import { MetadataColumn } from './table'
import { ElementItem } from '../AssetManage/Component/AssetAction'
const FC = (props) => { const FC = (props) => {
const { visible, items, onCancel } = props const { visible, items, onCancel } = props
...@@ -355,7 +356,7 @@ const AssetInfoItem = ({ value, onChange }) => { ...@@ -355,7 +356,7 @@ const AssetInfoItem = ({ value, onChange }) => {
name={element.name} name={element.name}
key={_index} key={_index}
> >
{ (element.name==='资产项') ? <AssetItem readonly={false} /> : <Input disabled={element.manualMaintain==='否'} /> } <ElementItem type='edit' element={element} reference={AssetManageReference} />
</Form.Item> </Form.Item>
) )
}) })
......
import React from 'react'
import { Button, Tooltip } from 'antd'
import { SettingFilled } from '@ant-design/icons'
import { AppContext } from '../../../App'
import { highlightSearchContentByTerms, IsArr } from '../../../util'
import { MetadataColumnTooltipTitle } from '../AssetResourceManage/table'
const FC = ({ value, onChange, readonly = true, terms = [] }) => {
const [decodeData, setDecodeData] = React.useState()
const app = React.useContext(AppContext)
React.useMemo(() => {
if (value) {
try {
setDecodeData(JSON.parse(value))
} catch(error) {
setDecodeData(value)
}
} else {
setDecodeData()
}
}, [value])
return (
<div className='flex' style={{ alignItems: 'center' }}>
{
(typeof decodeData === 'string') ? <span style={{ marginRight: 5 }}>
{highlightSearchContentByTerms(decodeData, terms)}
</span> : ((IsArr(decodeData)&&decodeData.length>0) ? <span>
<Tooltip
overlayClassName='tooltip-common'
title={<MetadataColumnTooltipTitle data={decodeData} />}
>
<a onClick={() => {
app?.setGlobalState?.({
message: 'data-govern-show-metadata-message',
data: decodeData[0]
})
}}
style={{ marginRight: 5 }}
>
{highlightSearchContentByTerms(decodeData[0].enName, terms)}
</a>
</Tooltip>
</span> : null)
}
{
!readonly && <Button type='text' icon={<SettingFilled />} onClick={() => {
app?.setGlobalState?.({
message: 'data-govern-show-metadata-list-message',
data: (typeof decodeData==='string') ? {} : decodeData[0]
})
}} />
}
</div>
)
}
export default FC
\ 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