fix: remove nested button pattern in Rooms page (Popconfirm outside PermissionButton)

This commit is contained in:
2026-07-05 21:26:05 +08:00
parent 6737c00d96
commit 831a2c35d0

View File

@@ -222,18 +222,16 @@ const RoomsPage: React.FC = () => {
render: (_: any, record: any) => ( render: (_: any, record: any) => (
<Space> <Space>
{record.status === 'archived' ? ( {record.status === 'archived' ? (
<PermissionButton permission="room:edit"> <Popconfirm
<Popconfirm title="确定恢复此宿舍?恢复后将重新出现在宿舍总览中。"
title="确定恢复此宿舍?恢复后将重新出现在宿舍总览中。" onConfirm={() => handleRestore(record.id)}
onConfirm={() => handleRestore(record.id)} okText="恢复"
okText="恢复" cancelText="取消"
cancelText="取消" >
> <PermissionButton permission="room:edit" size="small" icon={<UndoOutlined />} type="link">
<Button size="small" icon={<UndoOutlined />} type="link">
</PermissionButton>
</Button> </Popconfirm>
</Popconfirm>
</PermissionButton>
) : ( ) : (
<> <>
<PermissionButton <PermissionButton
@@ -255,19 +253,16 @@ const RoomsPage: React.FC = () => {
> >
</PermissionButton> </PermissionButton>
<PermissionButton permission="room:delete"> <Popconfirm
<Popconfirm title="归档后不会删除数据,可随时恢复。有在住人员将无法归档。"
title="归档后不会删除数据,可随时恢复。有在住人员将无法归档。" onConfirm={() => handleArchive(record.id)}
onConfirm={() => handleArchive(record.id)} okText="归档"
okText="归档" cancelText="取消"
cancelText="取消" >
> <PermissionButton permission="room:delete" size="small" icon={<InboxOutlined />}>
<Button size="small" icon={<InboxOutlined />}>
</PermissionButton>
</Button> </Popconfirm>
</Popconfirm>
</PermissionButton>
</>
)} )}
</Space> </Space>
), ),
@@ -311,19 +306,17 @@ const RoomsPage: React.FC = () => {
</Button> </Button>
</Space> </Space>
<Space wrap> <Space wrap>
<PermissionButton permission="room:delete"> <Popconfirm
<Popconfirm title={`确定批量归档选中的 ${selectedRowKeys.length} 间宿舍?(有在住人员的会跳过)`}
title={`确定批量归档选中的 ${selectedRowKeys.length} 间宿舍?(有在住人员的会跳过)`} onConfirm={handleBatchDelete}
onConfirm={handleBatchDelete} okText="归档"
okText="归档" cancelText="取消"
cancelText="取消" disabled={selectedRowKeys.length === 0}
disabled={selectedRowKeys.length === 0} >
> <PermissionButton permission="room:delete" danger icon={<DeleteOutlined />} disabled={selectedRowKeys.length === 0}>
<Button danger icon={<DeleteOutlined />} disabled={selectedRowKeys.length === 0}>
</PermissionButton>
</Button> </Popconfirm>
</Popconfirm>
</PermissionButton>
<PermissionButton <PermissionButton
permission="room:create" permission="room:create"
type="primary" type="primary"
@@ -341,8 +334,6 @@ const RoomsPage: React.FC = () => {
accept=".xlsx,.xls" accept=".xlsx,.xls"
showUploadList={false} showUploadList={false}
customRequest={async ({ file, onSuccess, onError }: any) => { customRequest={async ({ file, onSuccess, onError }: any) => {
const formData = new FormData();
formData.append('file', file);
try { try {
const res: any = await api.post('/rooms/import', formData, { const res: any = await api.post('/rooms/import', formData, {
headers: { 'Content-Type': 'multipart/form-data' }, headers: { 'Content-Type': 'multipart/form-data' },