Commit 6ee8dca8 by zhaochengxiang

资产删除停用

parent 3faa98e4
...@@ -66,10 +66,21 @@ const FC = (props) => { ...@@ -66,10 +66,21 @@ const FC = (props) => {
} }
}, [currentTemplateValue, keyword, currentElementValue, pagination, isAdmin], { wait: 300 }) }, [currentTemplateValue, keyword, currentElementValue, pagination, isAdmin], { wait: 300 })
const canStartProcess = React.useMemo(() => { const canPublish = React.useMemo(() => {
let newSelectedRows = (selectedRows??[]).filter(item => item.draftState==='draft') let newSelectedRows = (selectedRows??[]).filter(item => item.draftState==='draft')
//非管理员不能操作停用状态的草稿
if (!isAdmin) {
newSelectedRows = (newSelectedRows??[]).filter(item => item.draftOperation!=='offline')
}
return (newSelectedRows??[]).length !== 0
}, [selectedRows, isAdmin])
const canDelete = React.useMemo(() => {
let newSelectedRows = (selectedRows??[]).filter(item => isAdmin || item.draftDeletable)
return (newSelectedRows??[]).length !== 0 return (newSelectedRows??[]).length !== 0
}, [selectedRows]) }, [selectedRows, isAdmin])
const pathCol = { const pathCol = {
title: '路径', title: '路径',
...@@ -368,14 +379,11 @@ const FC = (props) => { ...@@ -368,14 +379,11 @@ const FC = (props) => {
<Tooltip title={((selectedRows??[]).length === 0) ? '请先选择资产' : ''}> <Tooltip title={((selectedRows??[]).length === 0) ? '请先选择资产' : ''}>
<Button onClick={onExportClick} disabled={(selectedRows??[]).length === 0}>导出</Button> <Button onClick={onExportClick} disabled={(selectedRows??[]).length === 0}>导出</Button>
</Tooltip> </Tooltip>
<Tooltip title={canStartProcess?'':'请先选择待提交的资产'}> <Tooltip title={canPublish?'':(isAdmin?'请先选择待提交的资产':'请先选择待提交并且不是停用类型的资产')}>
<Button onClick={onPublishClick} disabled={!canStartProcess}>发布</Button> <Button onClick={onPublishClick} disabled={!canPublish}>发布</Button>
</Tooltip> </Tooltip>
{/* <Tooltip title={canStartProcess?'':'请先选择待提交的资产'}> <Tooltip title={canDelete ? '':(isAdmin?'请先选择资产':'请选择自己创建的资产')}>
<Button onClick={onStartProcessClick} disabled={!canStartProcess}>申请</Button> <Button onClick={onDeletesClick} disabled={!canDelete}>删除</Button>
</Tooltip> */}
<Tooltip title={((selectedRows??[]).length === 0) ? '请先选择资产' : ''}>
<Button onClick={onDeletesClick} disabled={(selectedRows??[]).length === 0}>删除</Button>
</Tooltip> </Tooltip>
</Space> </Space>
<Space> <Space>
......
...@@ -134,6 +134,7 @@ const AssetTable = (props) => { ...@@ -134,6 +134,7 @@ const AssetTable = (props) => {
const [loadingElements, setLoadingElements] = useState(false) const [loadingElements, setLoadingElements] = useState(false)
const [elements, setElements] = useState() const [elements, setElements] = useState()
const [currentElementId, setCurrentElementId] = useState() const [currentElementId, setCurrentElementId] = useState()
const [isAdmin, setAdmin] = React.useState()
const [ modal, contextHolder ] = Modal.useModal(); const [ modal, contextHolder ] = Modal.useModal();
const anchorId = getQueryParam(AnchorId, props?.location?.search); const anchorId = getQueryParam(AnchorId, props?.location?.search);
...@@ -178,6 +179,7 @@ const AssetTable = (props) => { ...@@ -178,6 +179,7 @@ const AssetTable = (props) => {
} }
useEffect(() => { useEffect(() => {
getAdmin();
getUsers(); getUsers();
if (reference === AssetRecycleReference) { if (reference === AssetRecycleReference) {
getTemplates() getTemplates()
...@@ -286,6 +288,15 @@ const AssetTable = (props) => { ...@@ -286,6 +288,15 @@ const AssetTable = (props) => {
} }
} }
const getAdmin = () => {
dispatch({
type: 'assetmanage.checkAdmin',
callback: (data) => {
setAdmin((data==='true')?true:false)
}
})
}
const getTemplates = () => { const getTemplates = () => {
setLoadingTemplates(true) setLoadingTemplates(true)
dispatch({ dispatch({
...@@ -700,7 +711,7 @@ const AssetTable = (props) => { ...@@ -700,7 +711,7 @@ const AssetTable = (props) => {
} }
dispatch({ dispatch({
type: (reference===AssetManageReference)?'assetmanage.offlineAsDraft':'assetmanage.deleteDataAssets', type: 'assetmanage.deleteDataAssets',
payload, payload,
callback: () => { callback: () => {
showMessage("success","删除成功"); showMessage("success","删除成功");
...@@ -714,6 +725,32 @@ const AssetTable = (props) => { ...@@ -714,6 +725,32 @@ const AssetTable = (props) => {
}) })
} }
const offlineAssets = () => {
if ((checkedKeys||[]).length === 0) return;
modal.confirm({
title: '提示',
content: '是否停用选中的资产目录?',
onOk: () => {
let payload = {
data: checkedKeys
}
dispatch({
type: 'assetmanage.offlineAsDraft',
payload,
callback: () => {
showMessage("success","停用成功");
getDataAssets();
setCheckedKeys([]);
},
error: () => {
}
})
}
})
}
const onImportAssetCancel = () => { const onImportAssetCancel = () => {
setImportAssetVisible(false); setImportAssetVisible(false);
} }
...@@ -935,12 +972,19 @@ const AssetTable = (props) => { ...@@ -935,12 +972,19 @@ const AssetTable = (props) => {
</Menu.Item> </Menu.Item>
} }
{ {
(nodeType!=='custom') && <Menu.Item disabled={(checkedKeys||[]).length===0}> isAdmin && <Menu.Item disabled={(checkedKeys||[]).length===0}>
<div className='text-center' onClick={deleteAssets}> <div className='text-center' onClick={deleteAssets}>
删除 删除
</div> </div>
</Menu.Item> </Menu.Item>
} }
{
isAdmin && <Menu.Item disabled={(checkedKeys||[]).length===0}>
<div className='text-center' onClick={offlineAssets}>
停用
</div>
</Menu.Item>
}
</React.Fragment> </React.Fragment>
} }
...@@ -1054,11 +1098,15 @@ const AssetTable = (props) => { ...@@ -1054,11 +1098,15 @@ const AssetTable = (props) => {
</Tooltip> </Tooltip>
} }
{ {
//自定义目录下的资产不允许删除 isAdmin && <Tooltip title={(checkedKeys||[]).length===0?'请先选择资产目录':''}>
(nodeType!=='custom') && <Tooltip title={(checkedKeys||[]).length===0?'请先选择资产目录':''}>
<Button onClick={deleteAssets} disabled={(checkedKeys||[]).length===0} >删除</Button> <Button onClick={deleteAssets} disabled={(checkedKeys||[]).length===0} >删除</Button>
</Tooltip> </Tooltip>
} }
{
isAdmin && <Tooltip title={(checkedKeys||[]).length===0?'请先选择资产目录':''}>
<Button onClick={offlineAssets} disabled={(checkedKeys||[]).length===0} >停用</Button>
</Tooltip>
}
</React.Fragment> </React.Fragment>
} }
<Button onClick={onFilterElementClick}>可见列设置</Button> <Button onClick={onFilterElementClick}>可见列设置</Button>
......
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