fix: api key table list sort

This commit is contained in:
jialin
2024-07-18 18:14:50 +08:00
parent 73d07faacf
commit 714e2d927a
10 changed files with 177 additions and 72 deletions
+31
View File
@@ -0,0 +1,31 @@
import ModalFooter from '@/components/modal-footer';
import { useIntl } from '@umijs/max';
import { Modal, type ModalFuncProps } from 'antd';
import { forwardRef } from 'react';
const DeleteModal: React.FC<ModalFuncProps> = forwardRef((props, ref) => {
const intl = useIntl();
const { title, open, onOk, onCancel, content } = props;
return (
<Modal
title={title}
simple={true}
open={open}
centered={true}
onOk={onOk}
onCancel={onCancel}
destroyOnClose={true}
closeIcon={false}
maskClosable={false}
keyboard={false}
width={600}
styles={{}}
footer={<ModalFooter onCancel={onCancel} onOk={onOk}></ModalFooter>}
>
{content}
</Modal>
);
});
export default DeleteModal;
+37 -5
View File
@@ -1,4 +1,5 @@
import { MoreOutlined } from '@ant-design/icons';
import { useIntl } from '@umijs/max';
import { Button, Dropdown, Tooltip, type MenuProps } from 'antd';
import _ from 'lodash';
import { memo, useCallback } from 'react';
@@ -14,6 +15,7 @@ const DropdownButtons: React.FC<DropdownButtonsProps> = ({
size = 'small',
onSelect
}) => {
const intl = useIntl();
const handleMenuClick = useCallback((item: any) => {
console.log('menu click', item.key);
const selectItem = _.find(items, { key: item.key });
@@ -32,22 +34,52 @@ const DropdownButtons: React.FC<DropdownButtonsProps> = ({
return (
<>
{items?.length === 1 ? (
<Tooltip title={_.head(items)?.label}>
<Tooltip title={intl.formatMessage({ id: _.head(items)?.label })}>
<Button
{..._.head(items)}
icon={_.get(items, '0.icon')}
size={size}
{..._.get(items, '0.props')}
onClick={handleButtonClick}
></Button>
</Tooltip>
) : (
<Dropdown.Button
menu={{
items: _.tail(items),
onClick: handleMenuClick
dropdownRender={(menus: any) => {
return (
<div
className="flex flex-column "
style={{
backgroundColor: 'var(--color-white-1)',
padding: 5,
alignItems: 'flex-start',
borderRadius: 'var(--border-radius-base)',
boxShadow: 'var(--ant-box-shadow-secondary)'
}}
>
{_.map(_.tail(items), (item: any) => {
return (
<Button
{...item.props}
type="text"
size="middle"
icon={item.icon}
key={item.key}
onClick={() => handleMenuClick(item)}
style={{ width: '100%', justifyContent: 'flex-start' }}
>
{intl.formatMessage({ id: item.label })}
</Button>
);
})}
</div>
);
}}
buttonsRender={([leftButton, rightButton]) => [
<Tooltip title={_.head(items)?.label} key="leftButton">
<Tooltip
title={intl.formatMessage({ id: _.head(items)?.label })}
key="leftButton"
>
<Button
onClick={handleButtonClick}
size={size}
@@ -6,6 +6,7 @@ import { SealColumnProps } from '../types';
const SealColumn: React.FC<SealColumnProps> = (props) => {
const row: Record<string, any> = useContext(RowContext);
console.log('seal column====', row);
const { dataIndex, render, align } = props;
return (
<div
@@ -43,7 +43,14 @@ const TableRow: React.FC<
const childrenDataRef = useRef<any[]>([]);
childrenDataRef.current = childrenData;
console.log('table row====', childrenData, record.name, firstLoad, expanded);
console.log(
'table row====',
record,
childrenData,
record.name,
firstLoad,
expanded
);
const { updateChunkedList, cacheDataListRef } = useUpdateChunkedList({
dataList: childrenData,
setDataList: setChildrenData