fix: 归档删除改为软删除

This commit is contained in:
2026-07-17 14:13:17 +08:00
parent 3131d2e141
commit f7328d670d
49 changed files with 520 additions and 354 deletions

View File

@@ -15,7 +15,7 @@ import {
} from 'antd';
import {
FileTextOutlined,
DeleteOutlined,
InboxOutlined,
DownloadOutlined,
FilePdfOutlined,
} from '@ant-design/icons';
@@ -135,21 +135,21 @@ const BillsPage: React.FC = () => {
});
};
const handleDelete = async (id: number) => {
const handleArchive = async (id: number) => {
try {
await api.delete(`/bills/${id}`);
message.success('删除成功');
message.success('账单已归档');
fetchData();
} catch (error: any) { message.error(error?.message || '删除失败'); }
} catch (error: any) { message.error(error?.message || '归档失败'); }
};
const batchDelete = async () => {
const batchArchive = async () => {
if (selectedRows.length === 0) return message.warning('请先选择账单');
if (batchLoading) return;
setBatchLoading(true);
try {
await api.post('/bills/batch/delete', { ids: selectedRows });
message.success(`删除 ${selectedRows.length} 条账单`);
message.success(`归档 ${selectedRows.length} 条账单`);
setSelectedRows([]);
fetchData();
} catch (e: any) {
@@ -260,14 +260,14 @@ const BillsPage: React.FC = () => {
</PermissionButton>
)}
{Number(record.paidAmount || 0) === 0 && record.status !== 'cancelled' && (
<Popconfirm title="确定删除此未支付账单?" onConfirm={() => handleDelete(record.id)} okText="删除" cancelText="取消">
<PermissionButton permission="bill:delete" size="small" danger icon={<DeleteOutlined />}></PermissionButton>
<Popconfirm title="确定归档此未支付账单?" onConfirm={() => handleArchive(record.id)} okText="归档" cancelText="取消">
<PermissionButton permission="bill:delete" size="small" danger icon={<InboxOutlined />}></PermissionButton>
</Popconfirm>
)}
</Space>
),
},
], [showDetail, handleDelete, handleCancel, handleExportPdf]);
], [showDetail, handleArchive, handleCancel, handleExportPdf]);
return (
<div>
@@ -298,9 +298,9 @@ const BillsPage: React.FC = () => {
<Select placeholder="费用类型" allowClear style={{ width: 120 }} value={filterExpenseType} onChange={setFilterExpenseType}
options={[{value:'water',label:'水费'},{value:'electricity',label:'电费'},{value:'cleaning',label:'保洁费'},{value:'rent',label:'租金'},{value:'other',label:'其他'}]} />
<Popconfirm
title={`确定删除选中的 ${selectedRows.length} 条账单?`}
onConfirm={batchDelete}
okText="删除"
title={`确定归档选中的 ${selectedRows.length} 条账单?`}
onConfirm={batchArchive}
okText="归档"
cancelText="取消"
disabled={selectedRows.length === 0}
>
@@ -308,9 +308,9 @@ const BillsPage: React.FC = () => {
permission="bill:delete"
danger
disabled={selectedRows.length === 0}
icon={<DeleteOutlined />}
icon={<InboxOutlined />}
>
</PermissionButton>
</Popconfirm>
</Space>