Commit 3211035b by zhaochengxiang

资源管理

parent c7abb5e1
...@@ -12,6 +12,9 @@ import PermissionButton from '../../../../util/Component/PermissionButton'; ...@@ -12,6 +12,9 @@ import PermissionButton from '../../../../util/Component/PermissionButton';
import DataQuality, { DataQualityFeignTagList } from '../../../QianKun/data-quality' import DataQuality, { DataQualityFeignTagList } from '../../../QianKun/data-quality'
import { CancelSvg, EditSvg, SaveSvg, FullScreenSvg, CancelFullScreenSvg } from './AssetSvg'; import { CancelSvg, EditSvg, SaveSvg, FullScreenSvg, CancelFullScreenSvg } from './AssetSvg';
import { Subject } from 'rxjs';
export const AssetActionSubject = new Subject();
const AssetAction = (props) => { const AssetAction = (props) => {
const { id, dirId, action, terms, onChange, readOnly = false, form, onMetadataChange, onElementsChange, reference = AssetManageReference } = props; const { id, dirId, action, terms, onChange, readOnly = false, form, onMetadataChange, onElementsChange, reference = AssetManageReference } = props;
...@@ -294,6 +297,9 @@ const AssetAction = (props) => { ...@@ -294,6 +297,9 @@ const AssetAction = (props) => {
getAsset(); getAsset();
showMessage("success",(action==='add')?"新增成功":"修改成功"); showMessage("success",(action==='add')?"新增成功":"修改成功");
onChange && onChange(); onChange && onChange();
if (action !== 'add') {
AssetActionSubject.next({ type: 'asset-change' })
}
}, },
error: () => { error: () => {
setConfirmLoading(false); setConfirmLoading(false);
......
...@@ -13,9 +13,12 @@ import record from '../Assets/record.png'; ...@@ -13,9 +13,12 @@ import record from '../Assets/record.png';
import PermissionMenuItem from '../../../../util/Component/PermissionMenuItem'; import PermissionMenuItem from '../../../../util/Component/PermissionMenuItem';
import './AssetDirectory.less'; import './AssetDirectory.less';
import { Subject } from 'rxjs';
const { Paragraph, Text } = Typography; const { Paragraph, Text } = Typography;
export const AssetDirectorySubject = new Subject();
const AssetDirectory = (props) => { const AssetDirectory = (props) => {
const { id, directoryChanged, assetCount, reference = AssetManageReference, onElementsChange, nodeType } = props; const { id, directoryChanged, assetCount, reference = AssetManageReference, onElementsChange, nodeType } = props;
const [ dir, setDir ] = useState(null); const [ dir, setDir ] = useState(null);
...@@ -124,6 +127,7 @@ const AssetDirectory = (props) => { ...@@ -124,6 +127,7 @@ const AssetDirectory = (props) => {
if (change) { if (change) {
onElementsChange && onElementsChange(); onElementsChange && onElementsChange();
AssetDirectorySubject.next({ type: 'element-change' })
} }
if (tip && tip!== '') { if (tip && tip!== '') {
......
...@@ -18,10 +18,12 @@ const FC = (props) => { ...@@ -18,10 +18,12 @@ const FC = (props) => {
const [node, setNode] = React.useState() const [node, setNode] = React.useState()
const [asset, setAsset] = React.useState() const [asset, setAsset] = React.useState()
const [assetListFullScreen, setAssetListFullScreen] = React.useState(false) const [assetListFullScreen, setAssetListFullScreen] = React.useState(false)
const [directoryChanged, setDirectoryChanged] = React.useState(false)
const [form] = Form.useForm() const [form] = Form.useForm()
const onTreeClick = (value) => { const onTreeClick = (value) => {
setDirectoryChanged(!directoryChanged)
setNode(value) setNode(value)
} }
...@@ -61,7 +63,12 @@ const FC = (props) => { ...@@ -61,7 +63,12 @@ const FC = (props) => {
!collapseTree && <Separate width={15} /> !collapseTree && <Separate width={15} />
} }
<div className={middleClasses}> <div className={middleClasses}>
<NodeDetail reference={ResourceManageReference} id={node?.nodeId} assetCount={node?.dataAssetAndSubDirCount}/> <NodeDetail
reference={ResourceManageReference}
id={node?.nodeId}
assetCount={node?.dataAssetAndSubDirCount}
directoryChanged={directoryChanged}
/>
<Separate height={15} /> <Separate height={15} />
<ResourceList <ResourceList
node={node} node={node}
......
...@@ -19,6 +19,8 @@ import AssetDelete from '../AssetManage/Component/AssetDeleteModal' ...@@ -19,6 +19,8 @@ import AssetDelete from '../AssetManage/Component/AssetDeleteModal'
import FilterElement from '../AssetManage/Component/FilterElementModal' import FilterElement from '../AssetManage/Component/FilterElementModal'
import '../AssetManage/Component/AssetTable.less' import '../AssetManage/Component/AssetTable.less'
import { AssetDirectorySubject } from '../AssetManage/Component/AssetDirectory'
import { AssetActionSubject } from '../AssetManage/Component/AssetAction'
const FC = (props) => { const FC = (props) => {
const { type = ResourceManageReference, node, onClick, onFullScreenChange } = props const { type = ResourceManageReference, node, onClick, onFullScreenChange } = props
...@@ -95,8 +97,22 @@ const FC = (props) => { ...@@ -95,8 +97,22 @@ const FC = (props) => {
setArgsAndPage({ keyword }) setArgsAndPage({ keyword })
}) })
const $$assetDirectorySubject = AssetDirectorySubject.subscribe((props) => {
if (props.type === 'element-change') {
getElements()
}
})
const $$assetActionSubject = AssetActionSubject.subscribe((props) => {
if (props.type === 'asset-change') {
getAssets()
}
})
return () => { return () => {
$$keyword.unsubscribe() $$keyword.unsubscribe()
$$assetDirectorySubject.unsubscribe()
$$assetActionSubject.unsubscribe()
} }
//eslint-disable-next-line react-hooks/exhaustive-deps //eslint-disable-next-line react-hooks/exhaustive-deps
}, []) }, [])
...@@ -186,10 +202,25 @@ const FC = (props) => { ...@@ -186,10 +202,25 @@ const FC = (props) => {
col.width = isSzseEnv ? 230 : 160 col.width = isSzseEnv ? 230 : 160
} else if (name === '英文名称') { } else if (name === '英文名称') {
col.width = isSzseEnv ? 224 : 160 col.width = isSzseEnv ? 224 : 160
} else if (name === '资项') { } else if (name === '资项') {
col.width = isSzseEnv ? 250 : 120 col.width = isSzseEnv ? 250 : 120
} else if (name === '资源路径') { } else if (name === '资产路径') {
col.render = (text, record) => {
return (
<Tooltip title={text}>
<Typography.Text ellipsis={true}>
<a onClick={()=>{
let event = new Event('storage')
event.key = 'assetDirChangeEvent'
event.dirId = record.dirId
window?.dispatchEvent(event)
}}>
{text}
</a>
</Typography.Text>
</Tooltip>
)
}
} }
newColumns.push(col) newColumns.push(col)
......
...@@ -70,9 +70,27 @@ const FC = (props) => { ...@@ -70,9 +70,27 @@ const FC = (props) => {
const [modal, contextHolder] = Modal.useModal() const [modal, contextHolder] = Modal.useModal()
const storageChange = (e) => {
if (e.key === 'assetDirChangeEvent' || e.key === 'assetPathOnClickEvent') {
if (e.dirId) {
setSelectedKey(e.dirId)
resetSelectedNodeLogic()
}
} else if (e.key === 'assetRelationOnClickEvent') {
setSelectedKey(e.relation?.dirId)
resetSelectedNodeLogic()
}
}
useEffect(() => { useEffect(() => {
getTreeData() getTreeData()
getPermissions() getPermissions()
window?.addEventListener("storage", storageChange)
return () => {
window?.removeEventListener("storage", storageChange)
}
//eslint-disable-next-line react-hooks/exhaustive-deps //eslint-disable-next-line react-hooks/exhaustive-deps
}, []) }, [])
......
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