Commit 98c063dc by zhaochengxiang

岗位

parent 11105d8e
......@@ -76,6 +76,7 @@ const AssetAction = (props) => {
const app = useContext(AppContext);
const uploadRef = useRef(undefined);
const postRealtionRef = useRef();
const actionCol = {
title: '操作',
......@@ -892,12 +893,18 @@ const AssetAction = (props) => {
metadataId: metadataId??'',
operation: 'change',
}
let data = action==='add' ? { elements: newElements } : { ...assets, elements: newElements }
if (isPostAsset(assets?.templateType)) {
data = {...data, ...postRealtionRef.current?.relations}
}
dispatch({
type: isAdmin?'assetmanage.addOrUpdateDataAsset':'assetmanage.saveAsDraft',
payload: {
params,
data: action==='add' ? { elements: newElements } : { ...assets, elements: newElements }
data,
},
callback: () => {
setConfirmLoading(false);
......@@ -1359,7 +1366,7 @@ const AssetAction = (props) => {
{
action!=='add' && <React.Fragment>
{
isPostAsset(assets?.templateType) ? <div className='mt-2'><PostRelation reference={reference} action={currentAction} item={assets} /></div> : <React.Fragment>
isPostAsset(assets?.templateType) ? <div className='mt-2'><PostRelation ref={postRealtionRef} reference={reference} action={currentAction} item={assets} /></div> : <React.Fragment>
<div>
<Divider orientation='left'>字段级资产目录信息</Divider>
</div>
......
......@@ -6,6 +6,8 @@ import Table from '../../ResizeableTable'
import SelectResource from './select-resource'
import { dispatch } from '../../../../model';
import { AssetDraftReference } from '../../../../util/constant'
import AssetDetailDrawer from "./AssetDetailDrawer";
import { AppContext } from '../../../../App'
const FC = React.forwardRef(function ({ item, reference, action }, ref) {
const [activeKey, setActiveKey] = React.useState('asset')
......@@ -24,23 +26,25 @@ const FC = React.forwardRef(function ({ item, reference, action }, ref) {
item: undefined,
type: undefined,
})
const [detailParams, setDetailParams] = React.useState({
visible: false,
id: undefined,
dirId: undefined,
})
const app = React.useContext(AppContext)
const [modal, contextHolder] = Modal.useModal()
// React.useImperativeHandle(ref, () => ({
// selectedRows
// }), [selectedRows])
React.useImperativeHandle(ref, () => ({
relations: {
postAssets: assets??[],
postServices: services??[]
}
}), [assets, services])
React.useEffect(() => {
getRelatedAssets()
getRelatedServices()
}, [])
React.useEffect(() => {
if (item) {
setAssets(item?.postAssets)
setServices(item?.postServices)
}
}, [item])
const [tableData, total] = React.useMemo(() => {
......@@ -71,6 +75,27 @@ const FC = React.forwardRef(function ({ item, reference, action }, ref) {
title: '名称',
dataIndex: 'name',
},
{
title: '操作',
dataIndex: 'action',
width: 80,
fixed: 'right',
render: (_, record) => {
return (
<Space>
<a onClick={(e) => {
e.stopPropagation();
setDetailParams({
visible: true,
id: record?.relatedAssetId,
})
}}>
详情
</a>
</Space>
)
}
}
]
const seriveCols = [
......@@ -92,6 +117,24 @@ const FC = React.forwardRef(function ({ item, reference, action }, ref) {
title: '数据服务名称',
dataIndex: 'name',
},
{
title: '操作',
dataIndex: 'action',
width: 80,
fixed: 'right',
render: (_, record) => {
return (
<Space>
<a onClick={(e) => {
e.stopPropagation();
app?.openDetail?.({ service: { id: record.relatedServiceId }, isOnlyEnding: true })
}}>
详情
</a>
</Space>
)
}
}
]
const getRelatedAssets = () => {
......@@ -141,14 +184,22 @@ const FC = React.forwardRef(function ({ item, reference, action }, ref) {
}
const onDeleteClick = () => {
modal.confirm({
title:'提示',
content: '是否确认删除选中内容?',
okText: '确认',
cancelText: '取消',
onOk: () => {
}
if (activeKey === 'asset') {
setAssets(prevAssets => {
const filterData = (prevAssets??[]).filter(item => (selectedRows??[]).map(_item => _item.relatedAssetId).indexOf(item.relatedAssetId)===-1)
return filterData
})
} else if (activeKey === 'service') {
setServices(prevServices => {
const filterData = (prevServices??[]).filter(item => (selectedRows??[]).map(_item => _item.relatedServiceId).indexOf(item.relatedServiceId)===-1)
return filterData
})
}
setSelectedRows(prevSelectedRows => {
return []
})
}
......@@ -178,7 +229,11 @@ const FC = React.forwardRef(function ({ item, reference, action }, ref) {
return (
<div>
<Tabs activeKey={activeKey} onChange={(val) => { setActiveKey(val) }}>
<Tabs activeKey={activeKey} onChange={(val) => {
setActiveKey(val)
setPagination({ ...pagination, pageNum: 1 })
setSelectedRows()
}}>
<Tabs.TabPane tab='关联资产' key='asset' />
<Tabs.TabPane tab='关联服务' key='service' />
</Tabs>
......@@ -203,13 +258,13 @@ const FC = React.forwardRef(function ({ item, reference, action }, ref) {
</div>
<div className='mt-3'>
<Table
rowKey='id'
rowKey={activeKey==='asset'?'relatedAssetId':'relatedServiceId'}
loading={loadingAssets||loadingServices}
columns={activeKey==='asset'?assetCols:seriveCols}
dataSource={tableData??[]}
pagination={false}
rowSelection={{
selectedRowKeys: (selectedRows??[]).map(item => item.id),
selectedRowKeys: (selectedRows??[]).map(item => (activeKey==='asset')?item.relatedAssetId:item.relatedServiceId),
onChange: (selectedRowKeys, selectedRows) => {
setSelectedRows(selectedRows)
},
......@@ -234,6 +289,17 @@ const FC = React.forwardRef(function ({ item, reference, action }, ref) {
{...selectResourceParams}
onCancel={onSelectResourceCancel}
/>
<AssetDetailDrawer
{...detailParams}
readonly={true}
onCancel={() => {
setDetailParams({
visible: false,
id: undefined,
dirId: undefined,
})
}}
/>
{contextHolder}
</div>
)
......
......@@ -96,6 +96,7 @@ const FC = (props) => {
title: '操作',
dataIndex: 'action',
width: 80,
fixed: 'right',
render: (_, record) => {
return (
<Space>
......
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