refactor(web): tablePageLayout replace

This commit is contained in:
zhaoying
2026-04-22 11:37:25 +08:00
parent 5304117ae2
commit f37e9b444b
2 changed files with 20 additions and 33 deletions

View File

@@ -10,7 +10,7 @@
*/
import React, { useRef } from 'react';
import { App, Button, Space, Flex } from 'antd';
import { Button, Space } from 'antd';
import { useTranslation } from 'react-i18next';
import type { ColumnsType } from 'antd/es/table';
@@ -20,13 +20,15 @@ import type { Member, MemberModalRef } from './types'
import Tag from '@/components/Tag';
import Table, { type TableRef } from '@/components/Table'
import { formatDateTime } from '@/utils/format';
import TablePageLayout from '@/components/TablePageLayout';
import useDeleteConfirm from '@/hooks/useDeleteConfirm';
/**
* Member management main component
*/
const MemberManagement: React.FC = () => {
const { t } = useTranslation();
const { message, modal } = App.useApp();
const deleteConfirm = useDeleteConfirm();
const memberFormRef = useRef<MemberModalRef>(null);
const tableRef = useRef<TableRef>(null);
@@ -43,20 +45,11 @@ const MemberManagement: React.FC = () => {
}
/** Delete member with confirmation */
const handleDelete = async (member: Member) => {
modal.confirm({
title: t('common.confirmDeleteDesc', { name: member.username }),
okText: t('common.delete'),
cancelText: t('common.cancel'),
okType: 'danger',
onOk: () => {
deleteMember(member.id)
.then(() => {
message.success(t('common.deleteSuccess'));
refreshTable();
})
}
})
const handleDelete = (member: Member) => {
deleteConfirm({
name: member.username,
onOk: () => deleteMember(member.id).then(refreshTable),
});
};
/** Table column configuration */
@@ -105,13 +98,10 @@ const MemberManagement: React.FC = () => {
];
return (
<div className="rb:h-full rb:overflow-hidden rb:bg-white rb:rounded-lg rb:pt-3 rb:px-3">
<Flex justify="space-between" align="center" className="rb:px-1! rb:mb-3!">
<div className="rb:font-[MiSans-Bold] rb:font-bold rb:text-[#212332] rb:leading-5">{t('member.memberList')}</div>
<Button type="primary" onClick={() => handleEdit()}>
+ {t('member.createMember')}
</Button>
</Flex>
<TablePageLayout
title={t('member.memberList')}
extra={<Button type="primary" onClick={() => handleEdit()}>+ {t('member.createMember')}</Button>}
>
<Table<Member>
ref={tableRef}
apiUrl={memberListUrl}
@@ -125,7 +115,7 @@ const MemberManagement: React.FC = () => {
ref={memberFormRef}
refreshTable={refreshTable}
/>
</div>
</TablePageLayout>
);
};

View File

@@ -21,6 +21,7 @@ import StatusTag from '@/components/StatusTag'
import { deleteUser, enableUser, getUserListUrl } from '@/api/user'
import ResetPasswordModal from './components/ResetPasswordModal'
import { formatDateTime } from '@/utils/format';
import TablePageLayout from '@/components/TablePageLayout';
const UserManagement: React.FC = () => {
const { t } = useTranslation();
@@ -142,14 +143,10 @@ const UserManagement: React.FC = () => {
];
return (
<div className="rb:h-full rb:overflow-hidden rb:bg-white rb:rounded-lg rb:pt-3 rb:px-3">
<Flex justify="space-between" align="center" className="rb:px-1! rb:mb-3!">
<div className="rb:font-[MiSans-Bold] rb:font-bold rb:text-[#212332] rb:leading-5">{t('user.userList')}</div>
<Button type="primary" onClick={handleCreate}>
+ {t('user.createUser')}
</Button>
</Flex>
<TablePageLayout
title={t('user.userList')}
extra={<Button type="primary" onClick={handleCreate}>+ {t('user.createUser')}</Button>}
>
<Table<User>
ref={tableRef}
apiUrl={getUserListUrl}
@@ -169,7 +166,7 @@ const UserManagement: React.FC = () => {
<ResetPasswordModal
ref={resetPasswordModalRef}
/>
</div>
</TablePageLayout>
);
};