Commit 0caec0d3 by zhaochengxiang

资源转化功能

parent 15c1ed9c
......@@ -167,4 +167,8 @@ export function* countResourceState(payload) {
export function* getResourceRelations(payload) {
return yield call(service.getResourceRelations, payload);
}
export function* updateResourceState(payload) {
return yield call(service.updateResourceState, payload);
}
\ No newline at end of file
......@@ -175,3 +175,7 @@ export function countResourceState(payload) {
export function getResourceRelations(payload) {
return GetJSON("/dataassetmanager/resourceApi/getResourceRelations", payload);
}
export function updateResourceState(payload) {
return PostJSON("/dataassetmanager/resourceApi/updateResourceState", payload);
}
\ No newline at end of file
......@@ -4,6 +4,7 @@ import classNames from 'classnames';
import SmoothScroll from 'smooth-scroll';
import { Resizable } from 'react-resizable';
import ResizeObserver from 'rc-resize-observer';
import { useContextMenu, Menu as RcMenu, Item as RcItem } from "react-contexify";
import FilterElementModal from './FilterElementModal';
import AssetMount from '../../AssetRecycle/Component/AssetMount';
......@@ -16,6 +17,8 @@ import { AnchorId, AnchorTimestamp, AssetBrowseReference, AssetManageReference,
import { FullScreenSvg, CancelFullScreenSvg } from './AssetSvg';
import "./AssetTable.less";
import 'react-contexify/dist/ReactContexify.css';
import { modelCopy } from "../../../../service/datamodeler";
const { Text } = Typography;
const { Search } = Input;
......@@ -112,11 +115,19 @@ const ResizeableHeaderCell = props => {
const AssetTable = (props) => {
const { className, nodeId, nodeType, elementsChanged, assetActionChanged, onSelect, onCountChange, reference = AssetManageReference } = props;
const MENU_ID = 'asset-table';
const { show } = useContextMenu({
id: MENU_ID,
});
const [ loading, setLoading ] = useState(false);
const [ columns, setColumns ] = useState([]);
const [ assets, setAssets ] = useState([]);
const [ total, setTotal ] = useState(0);
const [ selectItem, setSelectItem ] = useState({});
const [ contextMenuItem, setContextMenuItem ] = useState({});
const [ checkedKeys, setCheckedKeys ] = useState([]);
const [ importAssetVisible, setImportAssetVisible ] = useState(false);
......@@ -503,6 +514,54 @@ const AssetTable = (props) => {
setColumns(nextColumns);
};
const displayMenu = (e) => {
show(e);
}
const handleItemClick = ({ event, props, data, triggerEvent }) => {
const key = event.currentTarget.id;
if (key === 'uncombed') {
modal.confirm({
title: '提示',
content: '是否将该条非资产的资源转为未梳理状态?',
onOk: () => {
dispatch({
type: 'assetmanage.updateResourceState',
payload: {
params: {
dataAssetId: contextMenuItem.id,
resourceState: 'uncombed'
}
},
callback: () => {
getDataAssets();
}
});
}
});
} else if (key === 'notRelatedAsset') {
modal.confirm({
title: '提示',
content: '是否将该条未梳理的资源转为非资产?',
onOk: () => {
dispatch({
type: 'assetmanage.updateResourceState',
payload: {
params: {
dataAssetId: contextMenuItem.id,
resourceState: 'notRelatedAsset'
}
},
callback: () => {
getDataAssets();
}
});
}
});
}
}
const moreMenu = (
<Menu>
{
......@@ -656,7 +715,13 @@ const AssetTable = (props) => {
if (reference !== AssetManageReference) {
setAssetDetailDrawerVisible(true);
}
}
},
onContextMenu: event => {
if (record.resourceState==='uncombed' || record.resourceState==='notRelatedAsset') {
setContextMenuItem(record);
displayMenu(event);
}
},
}
}}
rowClassName={(record, index) => {
......@@ -729,6 +794,19 @@ const AssetTable = (props) => {
visible={assetDetailDrawerVisible}
onCancel={onAssetDetailDrawerCancel}
/>
<RcMenu id={MENU_ID}>
{
(contextMenuItem.resourceState==='notRelatedAsset') && <RcItem id="uncombed" onClick={handleItemClick}>
转为未梳理
</RcItem>
}
{
(contextMenuItem.resourceState==='uncombed') && <RcItem id="notRelatedAsset" onClick={handleItemClick}>
转为非资产
</RcItem>
}
</RcMenu>
{contextHolder}
</div>
)
......
import React, { useState, useEffect, useRef } from "react";
import React, { useState, useEffect } from "react";
import { Tooltip, Tree, Modal, Spin, Dropdown, Menu, Button } from "antd";
import { PlusOutlined, EditOutlined, SyncOutlined, DeleteOutlined, ImportOutlined, UnorderedListOutlined, ReloadOutlined, ArrowUpOutlined, ArrowDownOutlined } from '@ant-design/icons';
import { PlusOutlined, SyncOutlined, ImportOutlined, UnorderedListOutlined, ReloadOutlined } from '@ant-design/icons';
import classnames from 'classnames';
import { useContextMenu, Menu as RcMenu, Item as RcItem } from "react-contexify";
......
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