调整归档操作入口

This commit is contained in:
2026-07-16 10:44:21 +08:00
parent 1737563516
commit 200d2e423b
2 changed files with 43 additions and 32 deletions

View File

@@ -154,16 +154,6 @@ const ClassesPage: React.FC = () => {
} }
}; };
const handleDelete = async (id: number) => {
try {
await api.delete(`/classes/${id}`);
message.success('已删除');
fetchData();
} catch (e: any) {
message.error(e?.message || '删除失败');
}
};
const columns: ColumnsType<ClassItem> = useMemo(() => [ const columns: ColumnsType<ClassItem> = useMemo(() => [
{ {
title: '班级名称', dataIndex: 'name', width: 120, title: '班级名称', dataIndex: 'name', width: 120,
@@ -208,11 +198,6 @@ const ClassesPage: React.FC = () => {
<PermissionButton permission="class:edit" size="small"></PermissionButton> <PermissionButton permission="class:edit" size="small"></PermissionButton>
</Popconfirm> </Popconfirm>
)} )}
<Popconfirm title="确认删除?" onConfirm={() => handleDelete(r.id)}>
<PermissionButton permission="class:delete" size="small" danger>
</PermissionButton>
</Popconfirm>
</Space> </Space>
), ),
}, },

View File

@@ -1,6 +1,6 @@
import React, { useEffect, useMemo, useState } from 'react'; import React, { useEffect, useMemo, useState } from 'react';
import { Alert, Empty, Form, Input, Modal, Popconfirm, Select, Space, Table, Tag } from 'antd'; import { Alert, Empty, Form, Input, Modal, Popconfirm, Select, Space, Table, Tag } from 'antd';
import { BankOutlined, InboxOutlined, PlusOutlined } from '@ant-design/icons'; import { BankOutlined, InboxOutlined, PlusOutlined, UndoOutlined } from '@ant-design/icons';
import api from '../../api'; import api from '../../api';
import PermissionButton from '../../components/PermissionButton'; import PermissionButton from '../../components/PermissionButton';
import { message } from '../../ui/app-message'; import { message } from '../../ui/app-message';
@@ -148,6 +148,30 @@ const OrganizationsPage: React.FC = () => {
width: 160, width: 160,
render: (_: unknown, record: OrganizationItem) => ( render: (_: unknown, record: OrganizationItem) => (
<Space> <Space>
{record.status === 'archived' ? (
<Popconfirm
title="确定恢复此机构?"
onConfirm={async () => {
try {
await api.put(`/organizations/${record.id}`, { status: 'active' });
message.success('机构已恢复');
await fetchData();
} catch (error: any) {
message.error(error?.message || '恢复失败');
}
}}
>
<PermissionButton
permission="organization:edit"
size="small"
type="link"
icon={<UndoOutlined />}
>
</PermissionButton>
</Popconfirm>
) : (
<>
<PermissionButton <PermissionButton
permission="organization:edit" permission="organization:edit"
size="small" size="small"
@@ -155,7 +179,7 @@ const OrganizationsPage: React.FC = () => {
> >
</PermissionButton> </PermissionButton>
{!record.isHost && record.status === 'active' ? ( {!record.isHost ? (
<Popconfirm <Popconfirm
title="归档后仍保留历史学生、入住和租赁记录" title="归档后仍保留历史学生、入住和租赁记录"
onConfirm={async () => { onConfirm={async () => {
@@ -177,6 +201,8 @@ const OrganizationsPage: React.FC = () => {
</PermissionButton> </PermissionButton>
</Popconfirm> </Popconfirm>
) : null} ) : null}
</>
)}
</Space> </Space>
), ),
}, },