Commit af3811b9 by zhaochengxiang

资产管理页面调整

parent 2789022a
import React,{ useState, useEffect, useRef } from "react"; import React,{ useState, useEffect, useRef } from "react";
import { Button, Pagination, Space, Modal, Input, Table, Tooltip, Checkbox, Typography } from "antd"; import { Button, Pagination, Space, Modal, Input, Table, Tooltip, Checkbox, Typography, Dropdown, Menu } from "antd";
import classNames from 'classnames'; import classNames from 'classnames';
import SmoothScroll from 'smooth-scroll'; import SmoothScroll from 'smooth-scroll';
import { Resizable } from 'react-resizable'; import { Resizable } from 'react-resizable';
import ResizeObserver from 'rc-resize-observer';
import FilterElementModal from './FilterElementModal'; import FilterElementModal from './FilterElementModal';
import AssetMount from '../../AssetRecycle/Component/AssetMount'; import AssetMount from '../../AssetRecycle/Component/AssetMount';
...@@ -72,6 +73,7 @@ const AssetTable = (props) => { ...@@ -72,6 +73,7 @@ const AssetTable = (props) => {
const [ batchCatalogChange, setBatchCatalogChange ] = useState(false); const [ batchCatalogChange, setBatchCatalogChange ] = useState(false);
const [ fullScreen, setFullScreen ] = useState(false); const [ fullScreen, setFullScreen ] = useState(false);
const [ recursive, setRecursive ] = useState(true); const [ recursive, setRecursive ] = useState(true);
const [ compact, setCompact ] = useState(false);
const [ modal, contextHolder ] = Modal.useModal(); const [ modal, contextHolder ] = Modal.useModal();
const anchorId = getQueryParam(AnchorId, props.location.search); const anchorId = getQueryParam(AnchorId, props.location.search);
...@@ -459,6 +461,44 @@ const AssetTable = (props) => { ...@@ -459,6 +461,44 @@ const AssetTable = (props) => {
setColumns(nextColumns); setColumns(nextColumns);
}; };
const moreMenu = (
<Menu>
{
(reference===AssetManageReference) && <Menu.Item>
<div className='text-center' onClick={importAsset}>
导入
</div>
</Menu.Item>
}
{
(reference===AssetManageReference || reference===AssetRecycleReference) && <React.Fragment>
<Menu.Item disabled={(checkedKeys||[]).length===0}>
<div className='text-center' onClick={exportAsset}>
导出
</div>
</Menu.Item>
<Menu.Item disabled={(checkedKeys||[]).length===0}>
<div className='text-center' onClick={onBatchCatalogChangeBtnClick}>
{(reference===AssetRecycleReference)?'挂载':'变更目录'}
</div>
</Menu.Item>
<Menu.Item disabled={(checkedKeys||[]).length===0}>
<div className='text-center' onClick={deleteAssets}>
删除
</div>
</Menu.Item>
</React.Fragment>
}
<Menu.Item>
<div className='text-center' onClick={onFilterElementClick}>
要素设置
</div>
</Menu.Item>
</Menu>
);
const rowSelection = { const rowSelection = {
selectedRowKeys: checkedKeys, selectedRowKeys: checkedKeys,
onChange: onSelectChange, onChange: onSelectChange,
...@@ -482,7 +522,7 @@ const AssetTable = (props) => { ...@@ -482,7 +522,7 @@ const AssetTable = (props) => {
} }
return( return(
<div className={classes}> <div className={classes}>
<div <div
className='flex p-common' className='flex p-common'
style={{ style={{
...@@ -494,23 +534,29 @@ const AssetTable = (props) => { ...@@ -494,23 +534,29 @@ const AssetTable = (props) => {
{ {
(reference===AssetManageReference) && <Button onClick={addAsset}>新增</Button> (reference===AssetManageReference) && <Button onClick={addAsset}>新增</Button>
} }
{
(reference===AssetManageReference) && <Button onClick={importAsset}>导入</Button>
}
{ {
(reference===AssetManageReference || reference===AssetRecycleReference) && <React.Fragment> compact ? <Dropdown overlay={moreMenu} placement="bottomCenter">
<Tooltip title={(checkedKeys||[]).length===0?'请先选择资产':''}> <Button>其他操作</Button>
<Button onClick={exportAsset} disabled={(checkedKeys||[]).length===0} >导出</Button> </Dropdown> : <React.Fragment>
</Tooltip> {
<Tooltip title={(checkedKeys||[]).length===0?'请先选择资产':''}> (reference===AssetManageReference) && <Button onClick={importAsset}>导入</Button>
<Button onClick={onBatchCatalogChangeBtnClick} disabled={(checkedKeys||[]).length===0} >{(reference===AssetRecycleReference)?'挂载':'变更目录'}</Button> }
</Tooltip> {
<Tooltip title={(checkedKeys||[]).length===0?'请先选择资产':''}> (reference===AssetManageReference || reference===AssetRecycleReference) && <React.Fragment>
<Button onClick={deleteAssets} disabled={(checkedKeys||[]).length===0} >删除</Button> <Tooltip title={(checkedKeys||[]).length===0?'请先选择资产':''}>
</Tooltip> <Button onClick={exportAsset} disabled={(checkedKeys||[]).length===0} >导出</Button>
</React.Fragment> </Tooltip>
<Tooltip title={(checkedKeys||[]).length===0?'请先选择资产':''}>
<Button onClick={onBatchCatalogChangeBtnClick} disabled={(checkedKeys||[]).length===0} >{(reference===AssetRecycleReference)?'挂载':'变更目录'}</Button>
</Tooltip>
<Tooltip title={(checkedKeys||[]).length===0?'请先选择资产':''}>
<Button onClick={deleteAssets} disabled={(checkedKeys||[]).length===0} >删除</Button>
</Tooltip>
</React.Fragment>
}
<Button onClick={onFilterElementClick}>要素设置</Button>
</React.Fragment>
} }
<Button onClick={onFilterElementClick}>要素设置</Button>
<Checkbox onChange={onRecursiveChange} checked={!recursive}>仅显示当前目录</Checkbox> <Checkbox onChange={onRecursiveChange} checked={!recursive}>仅显示当前目录</Checkbox>
</Space> </Space>
<Space> <Space>
...@@ -529,51 +575,61 @@ const AssetTable = (props) => { ...@@ -529,51 +575,61 @@ const AssetTable = (props) => {
<div <div
className='px-common' className='px-common'
> >
<Table <ResizeObserver
rowSelection={rowSelection} onResize={({ width }) => {
components={{ if (width < 960 && !compact) {
header: { setCompact(true);
cell: ResizeableHeaderCell, } else if (width >= 960 && compact) {
setCompact(false);
} }
}} }}
onRow={(record) => { >
return { <Table
id: `data-asset-${record?.id}`, rowSelection={rowSelection}
onClick: (e) => { components={{
setSelectItem(record); header: {
onSelect && onSelect(record?.id, record?.dirId); cell: ResizeableHeaderCell,
}
if (reference !== AssetManageReference) { }}
setAssetDetailDrawerVisible(true); onRow={(record) => {
return {
id: `data-asset-${record?.id}`,
onClick: (e) => {
setSelectItem(record);
onSelect && onSelect(record?.id, record?.dirId);
if (reference !== AssetManageReference) {
setAssetDetailDrawerVisible(true);
}
} }
} }
} }}
}} rowClassName={(record, index) => {
rowClassName={(record, index) => { if (record?.id===anchorId || record?.id===selectItem?.id) {
if (record?.id===anchorId || record?.id===selectItem?.id) { return 'yy-table-select-row';
return 'yy-table-select-row'; }
}
return ''; return '';
}} }}
loading={loading} loading={loading}
columns={ columns={
columns.map((column, index) => { columns.map((column, index) => {
return { return {
...column, ...column,
onHeaderCell: column => ({ onHeaderCell: column => ({
width: column.width, width: column.width,
onResize: handleResize(index), onResize: handleResize(index),
}), }),
}; };
}) })
} }
rowKey='id' rowKey='id'
dataSource={assets} dataSource={assets}
pagination={false} pagination={false}
size='default' size='default'
scroll={{ x: 1000, y: scrollY }} scroll={{ x: 1000, y: scrollY }}
/> />
</ResizeObserver>
</div> </div>
<Pagination <Pagination
size="small" size="small"
......
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