Commit 8ddc7b0a by zhaochengxiang

资产增加批量打标签

parent 97b620fe
...@@ -19,7 +19,7 @@ import { FullScreenSvg, CancelFullScreenSvg } from '../AssetManage/Component/Ass ...@@ -19,7 +19,7 @@ import { FullScreenSvg, CancelFullScreenSvg } from '../AssetManage/Component/Ass
import FilterElement from '../AssetManage/Component/FilterElementModal' import FilterElement from '../AssetManage/Component/FilterElementModal'
import FilterElementValue from '../AssetResourceManage/filter-element-value' import FilterElementValue from '../AssetResourceManage/filter-element-value'
import { AssetDirectorySubject } from '../AssetManage/Component/AssetDirectory' import { AssetDirectorySubject } from '../AssetManage/Component/AssetDirectory'
import TagCell from '../Model/Component/tag-help' import TagCell, { TagSelectPopup } from '../Model/Component/tag-help'
import { MetadataColumn } from '../AssetResourceManage/table' import { MetadataColumn } from '../AssetResourceManage/table'
import AssetDetailDrawer from '../AssetManage/Component/AssetDetailDrawer' import AssetDetailDrawer from '../AssetManage/Component/AssetDetailDrawer'
...@@ -46,6 +46,7 @@ const FC = (props) => { ...@@ -46,6 +46,7 @@ const FC = (props) => {
const [row, setRow] = React.useState() const [row, setRow] = React.useState()
const $keyword = React.useMemo(() => new Subject(), []) const $keyword = React.useMemo(() => new Subject(), [])
const [keyword, setKeyword] = React.useState() const [keyword, setKeyword] = React.useState()
const [selectedRows, setSelectedRows] = React.useState([])
const [searchType, setSearchType] = React.useState('keyword') const [searchType, setSearchType] = React.useState('keyword')
const [resoureTagMap, setResourceTagMap] = React.useState() const [resoureTagMap, setResourceTagMap] = React.useState()
const [filterElementParams, setFilterElementParams] = React.useState({ const [filterElementParams, setFilterElementParams] = React.useState({
...@@ -64,6 +65,10 @@ const FC = (props) => { ...@@ -64,6 +65,10 @@ const FC = (props) => {
dirId: undefined, dirId: undefined,
reference: undefined, reference: undefined,
}) })
const [tagSelectPopupParams, setTagSelectPopupParams] = React.useState({
visible: false,
items: undefined
})
const [page, setPage] = usePage() const [page, setPage] = usePage()
const [modal, contextHolder] = Modal.useModal() const [modal, contextHolder] = Modal.useModal()
...@@ -124,6 +129,7 @@ const FC = (props) => { ...@@ -124,6 +129,7 @@ const FC = (props) => {
React.useEffect(() => { React.useEffect(() => {
if (node) { if (node) {
setRow() setRow()
setSelectedRows([])
if (locationIdRef.current && locationDidRef.current) { if (locationIdRef.current && locationDidRef.current) {
getDataAssetLocation() getDataAssetLocation()
} else { } else {
...@@ -361,6 +367,13 @@ const FC = (props) => { ...@@ -361,6 +367,13 @@ const FC = (props) => {
}) })
} }
const onBatchAddTagClick = () => {
setTagSelectPopupParams({
visible: true,
items: (selectedRows??[]).map(item => ({ resourceId: item.id }))
})
}
const classes = classNames('asset-list', { const classes = classNames('asset-list', {
'asset-list-fullscreen': fullScreen, 'asset-list-fullscreen': fullScreen,
}); });
...@@ -376,6 +389,9 @@ const FC = (props) => { ...@@ -376,6 +389,9 @@ const FC = (props) => {
}} }}
> >
<Space className='mr-3' style={{ flex: 0, paddingBottom: 15 }}> <Space className='mr-3' style={{ flex: 0, paddingBottom: 15 }}>
<Tooltip title={(selectedRows??[]).length===0?'请先选择资产':''}>
<Button disabled={(selectedRows??[]).length===0} onClick={onBatchAddTagClick}>批量标签</Button>
</Tooltip>
<Button onClick={onFilterElementClick}>可见列设置</Button> <Button onClick={onFilterElementClick}>可见列设置</Button>
</Space> </Space>
<div className='flex' style={{ flex: 1, overflow: 'auto', paddingBottom: 15 }}> <div className='flex' style={{ flex: 1, overflow: 'auto', paddingBottom: 15 }}>
...@@ -461,9 +477,16 @@ const FC = (props) => { ...@@ -461,9 +477,16 @@ const FC = (props) => {
reference: AssetBrowseReference reference: AssetBrowseReference
}) })
}} }}
rowSelection={{
selectedRowKeys: (selectedRows??[]).map(item => item.id),
onChange: (selectedRowKeys, selectedRows) => {
setSelectedRows(selectedRows)
},
}}
rowClassName={(record, index) => (record?.id === row?.id) ? 'yy-table-select-row' : ''} rowClassName={(record, index) => (record?.id === row?.id) ? 'yy-table-select-row' : ''}
onPaginate={(page, pageSize) => { onPaginate={(page, pageSize) => {
setRow() setRow()
setSelectedRows([])
setPageAndArgs({ pageNum: page, pageSize }) setPageAndArgs({ pageNum: page, pageSize })
}} }}
/> />
...@@ -508,6 +531,19 @@ const FC = (props) => { ...@@ -508,6 +531,19 @@ const FC = (props) => {
}) })
}} }}
/> />
<TagSelectPopup
{...tagSelectPopupParams}
type='dataAsset'
onCancel={() => {
setTagSelectPopupParams({
visible: false,
items: undefined
})
}}
onChange={() => {
getResourceTag()
}}
/>
{contextHolder} {contextHolder}
</div> </div>
) )
......
...@@ -26,7 +26,7 @@ import FilterElementValue from '../AssetResourceManage/filter-element-value' ...@@ -26,7 +26,7 @@ import FilterElementValue from '../AssetResourceManage/filter-element-value'
import SelectBatchEditElements from '../AssetResourceManage/select-batch-edit-elements' import SelectBatchEditElements from '../AssetResourceManage/select-batch-edit-elements'
import { AssetDirectorySubject } from './Component/AssetDirectory' import { AssetDirectorySubject } from './Component/AssetDirectory'
import { AssetActionSubject } from './Component/AssetAction' import { AssetActionSubject } from './Component/AssetAction'
import TagCell from '../Model/Component/tag-help' import TagCell, { TagSelectPopup } from '../Model/Component/tag-help'
import './table.less' import './table.less'
import { MetadataColumn } from '../AssetResourceManage/table' import { MetadataColumn } from '../AssetResourceManage/table'
...@@ -101,6 +101,10 @@ const FC = (props) => { ...@@ -101,6 +101,10 @@ const FC = (props) => {
visible: false, visible: false,
type: undefined type: undefined
}) })
const [tagSelectPopupParams, setTagSelectPopupParams] = React.useState({
visible: false,
items: undefined
})
const [page, setPage] = usePage() const [page, setPage] = usePage()
const [modal, contextHolder] = Modal.useModal() const [modal, contextHolder] = Modal.useModal()
...@@ -589,6 +593,13 @@ const FC = (props) => { ...@@ -589,6 +593,13 @@ const FC = (props) => {
}) })
} }
const onBatchAddTagClick = () => {
setTagSelectPopupParams({
visible: true,
items: (selectedRows??[]).map(item => ({ resourceId: item.id }))
})
}
const deleteAssets = () => { const deleteAssets = () => {
setAssetDeleteParams({ setAssetDeleteParams({
visible: false visible: false
...@@ -671,6 +682,8 @@ const FC = (props) => { ...@@ -671,6 +682,8 @@ const FC = (props) => {
onDeleteClick() onDeleteClick()
} else if (key === 'colConfig') { } else if (key === 'colConfig') {
onFilterElementClick() onFilterElementClick()
} else if (key === 'batchAddTag') {
onBatchAddTagClick()
} }
} }
...@@ -732,6 +745,13 @@ const FC = (props) => { ...@@ -732,6 +745,13 @@ const FC = (props) => {
</div> </div>
</PermissionMenuItem> </PermissionMenuItem>
} }
<Menu.Item key='batchAddTag' disabled={(selectedRows??[]).length===0}>
<Tooltip title={(selectedRows??[]).length===0?'请先选择资产':''}>
<div className='text-center'>
批量标签
</div>
</Tooltip>
</Menu.Item>
<Menu.Item key='colConfig'> <Menu.Item key='colConfig'>
<div className='text-center'> <div className='text-center'>
可见列设置 可见列设置
...@@ -1010,6 +1030,19 @@ const FC = (props) => { ...@@ -1010,6 +1030,19 @@ const FC = (props) => {
refresh && getAssets() refresh && getAssets()
}} }}
/> />
<TagSelectPopup
{...tagSelectPopupParams}
type='dataAsset'
onCancel={() => {
setTagSelectPopupParams({
visible: false,
items: undefined
})
}}
onChange={() => {
getResourceTag()
}}
/>
{contextHolder} {contextHolder}
</div> </div>
) )
......
...@@ -19,7 +19,7 @@ import { FullScreenSvg, CancelFullScreenSvg } from '../AssetManage/Component/Ass ...@@ -19,7 +19,7 @@ import { FullScreenSvg, CancelFullScreenSvg } from '../AssetManage/Component/Ass
import FilterElement from '../AssetManage/Component/FilterElementModal' import FilterElement from '../AssetManage/Component/FilterElementModal'
import FilterElementValue from '../AssetResourceManage/filter-element-value' import FilterElementValue from '../AssetResourceManage/filter-element-value'
import { AssetDirectorySubject } from '../AssetManage/Component/AssetDirectory' import { AssetDirectorySubject } from '../AssetManage/Component/AssetDirectory'
import TagCell from '../Model/Component/tag-help' import TagCell, { TagSelectPopup } from '../Model/Component/tag-help'
import { MetadataColumn } from '../AssetResourceManage/table' import { MetadataColumn } from '../AssetResourceManage/table'
import AssetDetailDrawer from '../AssetManage/Component/AssetDetailDrawer' import AssetDetailDrawer from '../AssetManage/Component/AssetDetailDrawer'
...@@ -46,6 +46,7 @@ const FC = (props) => { ...@@ -46,6 +46,7 @@ const FC = (props) => {
const [row, setRow] = React.useState() const [row, setRow] = React.useState()
const $keyword = React.useMemo(() => new Subject(), []) const $keyword = React.useMemo(() => new Subject(), [])
const [keyword, setKeyword] = React.useState() const [keyword, setKeyword] = React.useState()
const [selectedRows, setSelectedRows] = React.useState([])
const [searchType, setSearchType] = React.useState('keyword') const [searchType, setSearchType] = React.useState('keyword')
const [resoureTagMap, setResourceTagMap] = React.useState() const [resoureTagMap, setResourceTagMap] = React.useState()
const [filterElementParams, setFilterElementParams] = React.useState({ const [filterElementParams, setFilterElementParams] = React.useState({
...@@ -64,6 +65,10 @@ const FC = (props) => { ...@@ -64,6 +65,10 @@ const FC = (props) => {
dirId: undefined, dirId: undefined,
reference: undefined, reference: undefined,
}) })
const [tagSelectPopupParams, setTagSelectPopupParams] = React.useState({
visible: false,
items: undefined
})
const [page, setPage] = usePage() const [page, setPage] = usePage()
const [modal, contextHolder] = Modal.useModal() const [modal, contextHolder] = Modal.useModal()
...@@ -124,6 +129,7 @@ const FC = (props) => { ...@@ -124,6 +129,7 @@ const FC = (props) => {
React.useEffect(() => { React.useEffect(() => {
if (node) { if (node) {
setRow() setRow()
setSelectedRows([])
if (locationIdRef.current && locationDidRef.current) { if (locationIdRef.current && locationDidRef.current) {
getDataAssetLocation() getDataAssetLocation()
} else { } else {
...@@ -361,6 +367,13 @@ const FC = (props) => { ...@@ -361,6 +367,13 @@ const FC = (props) => {
}) })
} }
const onBatchAddTagClick = () => {
setTagSelectPopupParams({
visible: true,
items: (selectedRows??[]).map(item => ({ resourceId: item.id }))
})
}
const classes = classNames('asset-list', { const classes = classNames('asset-list', {
'asset-list-fullscreen': fullScreen, 'asset-list-fullscreen': fullScreen,
}); });
...@@ -376,6 +389,9 @@ const FC = (props) => { ...@@ -376,6 +389,9 @@ const FC = (props) => {
}} }}
> >
<Space className='mr-3' style={{ flex: 0, paddingBottom: 15 }}> <Space className='mr-3' style={{ flex: 0, paddingBottom: 15 }}>
<Tooltip title={(selectedRows??[]).length===0?'请先选择资源':''}>
<Button disabled={(selectedRows??[]).length===0} onClick={onBatchAddTagClick}>批量标签</Button>
</Tooltip>
<Button onClick={onFilterElementClick}>可见列设置</Button> <Button onClick={onFilterElementClick}>可见列设置</Button>
</Space> </Space>
<div className='flex' style={{ flex: 1, overflow: 'auto', paddingBottom: 15 }}> <div className='flex' style={{ flex: 1, overflow: 'auto', paddingBottom: 15 }}>
...@@ -461,9 +477,16 @@ const FC = (props) => { ...@@ -461,9 +477,16 @@ const FC = (props) => {
reference: ResourceBrowseReference reference: ResourceBrowseReference
}) })
}} }}
rowSelection={{
selectedRowKeys: (selectedRows??[]).map(item => item.id),
onChange: (selectedRowKeys, selectedRows) => {
setSelectedRows(selectedRows)
},
}}
rowClassName={(record, index) => (record?.id === row?.id) ? 'yy-table-select-row' : ''} rowClassName={(record, index) => (record?.id === row?.id) ? 'yy-table-select-row' : ''}
onPaginate={(page, pageSize) => { onPaginate={(page, pageSize) => {
setRow() setRow()
setSelectedRows([])
setPageAndArgs({ pageNum: page, pageSize }) setPageAndArgs({ pageNum: page, pageSize })
}} }}
/> />
...@@ -508,6 +531,19 @@ const FC = (props) => { ...@@ -508,6 +531,19 @@ const FC = (props) => {
}) })
}} }}
/> />
<TagSelectPopup
{...tagSelectPopupParams}
type='dataAsset'
onCancel={() => {
setTagSelectPopupParams({
visible: false,
items: undefined
})
}}
onChange={() => {
getResourceTag()
}}
/>
{contextHolder} {contextHolder}
</div> </div>
) )
......
...@@ -26,7 +26,7 @@ import FilterElementValue from './filter-element-value' ...@@ -26,7 +26,7 @@ import FilterElementValue from './filter-element-value'
import SelectBatchEditElements from './select-batch-edit-elements' import SelectBatchEditElements from './select-batch-edit-elements'
import { AssetDirectorySubject } from '../AssetManage/Component/AssetDirectory' import { AssetDirectorySubject } from '../AssetManage/Component/AssetDirectory'
import { AssetActionSubject } from '../AssetManage/Component/AssetAction' import { AssetActionSubject } from '../AssetManage/Component/AssetAction'
import TagCell from '../Model/Component/tag-help' import TagCell, { TagSelectPopup } from '../Model/Component/tag-help'
import DistributeTask from './distribute-task' import DistributeTask from './distribute-task'
import RedistributeTask from './redistribute-task' import RedistributeTask from './redistribute-task'
import AutoDistributeTask from './auto-distribute-task' import AutoDistributeTask from './auto-distribute-task'
...@@ -132,6 +132,10 @@ const FC = (props) => { ...@@ -132,6 +132,10 @@ const FC = (props) => {
type: undefined, type: undefined,
items: undefined items: undefined
}) })
const [tagSelectPopupParams, setTagSelectPopupParams] = React.useState({
visible: false,
items: undefined
})
const [page, setPage] = usePage() const [page, setPage] = usePage()
const [modal, contextHolder] = Modal.useModal() const [modal, contextHolder] = Modal.useModal()
...@@ -747,6 +751,13 @@ const FC = (props) => { ...@@ -747,6 +751,13 @@ const FC = (props) => {
}) })
} }
const onBatchAddTagClick = () => {
setTagSelectPopupParams({
visible: true,
items: (selectedRows??[]).map(item => ({ resourceId: item.id }))
})
}
const deleteAssets = () => { const deleteAssets = () => {
setAssetDeleteParams({ setAssetDeleteParams({
visible: false visible: false
...@@ -931,6 +942,8 @@ const FC = (props) => { ...@@ -931,6 +942,8 @@ const FC = (props) => {
onDeleteClick() onDeleteClick()
} else if (key === 'colConfig') { } else if (key === 'colConfig') {
onFilterElementClick() onFilterElementClick()
} else if (key === 'batchAddTag') {
onBatchAddTagClick()
} }
} }
...@@ -1043,6 +1056,13 @@ const FC = (props) => { ...@@ -1043,6 +1056,13 @@ const FC = (props) => {
</div> </div>
</PermissionMenuItem> </PermissionMenuItem>
} }
<Menu.Item key='batchAddTag' disabled={(selectedRows??[]).length===0}>
<Tooltip title={(selectedRows??[]).length===0?'请先选择资源':''}>
<div className='text-center'>
批量标签
</div>
</Tooltip>
</Menu.Item>
<Menu.Item key='colConfig'> <Menu.Item key='colConfig'>
<div className='text-center'> <div className='text-center'>
可见列设置 可见列设置
...@@ -1453,6 +1473,19 @@ const FC = (props) => { ...@@ -1453,6 +1473,19 @@ const FC = (props) => {
refresh && getAssets() refresh && getAssets()
}} }}
/> />
<TagSelectPopup
{...tagSelectPopupParams}
type='dataAsset'
onCancel={() => {
setTagSelectPopupParams({
visible: false,
items: undefined
})
}}
onChange={() => {
getResourceTag()
}}
/>
{contextHolder} {contextHolder}
</div> </div>
) )
......
...@@ -18,9 +18,9 @@ const FC = ({ type, data, onChange }) => { ...@@ -18,9 +18,9 @@ const FC = ({ type, data, onChange }) => {
entry: '/data-quality/', entry: '/data-quality/',
container: containerRef.current, container: containerRef.current,
props: { props: {
...app||{},
type, type,
data, data,
user: app?.user,
onChange onChange
}, },
}, },
......
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