Commit 987d6449 by zhaochengxiang

恢复未挂载资产

parent cd6a21e3
......@@ -71,6 +71,10 @@ export function* addDataAssetByDirIds(payload) {
return yield call(service.addDataAssetByDirIds, payload);
}
export function* recoverDataAssetsFromRecycleBin(payload) {
return yield call(service.recoverDataAssetsFromRecycleBin, payload)
}
export function* deleteDataAssets(payload) {
return yield call(service.deleteDataAssets, payload);
}
......
......@@ -64,6 +64,10 @@ export function addDataAssetByDirIds(payload) {
return PostJSON("/dataassetmanager/dataAssetApi/addDataAssetByDirIds", payload);
}
export function recoverDataAssetsFromRecycleBin(payload) {
return PostJSON("/dataassetmanager/dataAssetApi/recoveryFromRecycleBin", payload);
}
export function deleteDataAssets(payload) {
return PostJSON("/dataassetmanager/dataAssetApi/deleteDataAssets", payload);
}
......
......@@ -132,22 +132,27 @@ const FC = (props) => {
, newTableData, data?.total??0]
}, [filterElements, data, loadingFilterElements, keyword, indexCol, pagination])
const [canExport, canDelete] = React.useMemo(() => {
if ((selectedRows??[]).length === 0) return [false, false]
const [canExport, canDelete, canRecover] = React.useMemo(() => {
if ((selectedRows??[]).length === 0) return [false, false, false]
let [_canExport, _canDelete] = [true, true]
let [_canExport, _canDelete, _canRecover] = [true, true, true]
for (const item of (selectedRows??[])) {
const exportIndex = (item.allowButtons??[]).findIndex(item => item==='export')
const deleteIndex = (item.allowButtons??[]).findIndex(item => item==='delete')
const recoverIndex = (item.allowButtons??[]).findIndex(item => item==='recovery')
if (exportIndex === -1) {
_canExport = false
}
if (deleteIndex === -1) {
_canDelete = false
}
if (recoverIndex === -1) {
_canRecover = false
}
}
return [_canExport, _canDelete]
return [_canExport, _canDelete, _canRecover]
}, [selectedRows])
const getTemplates = () => {
......@@ -219,10 +224,30 @@ const FC = (props) => {
window.open(`/api/dataassetmanager/dataAssetApi/exportByDataAssetIds?dataAssetIds=${(selectedRows??[]).map(item=>item.id).toString()}&templateType=${getTemplateType()}`);
}
const onRecoverClick = () => {
modal.confirm({
title: '提示',
content: '是否恢复选中的资产?',
onOk: () => {
dispatch({
type: 'assetmanage.recoverDataAssetsFromRecycleBin',
payload: {
data: (selectedRows??[]).map(item => item.id)
},
callback: () => {
showMessage("success","恢复成功");
setSelectedRows();
getRecycles();
}
})
}
})
}
const onDeleteClick = () => {
modal.confirm({
title: '提示',
content: '是否删除选中的资产目录?',
content: '是否删除选中的资产?',
onOk: () => {
dispatch({
type: 'assetmanage.deleteDataAssets',
......@@ -266,6 +291,14 @@ const FC = (props) => {
导出
</PermissionButton>
<PermissionButton
defaultPermission={canRecover}
tip={(selectedRows||[]).length===0?'请先选择资产':''}
onClick={onRecoverClick}
disabled={(selectedRows||[]).length===0}
>
恢复
</PermissionButton>
<PermissionButton
defaultPermission={canDelete}
tip={(selectedRows||[]).length===0?'请先选择资产':''}
onClick={onDeleteClick}
......
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