diff --git a/apps/admin/src/pages/Bills/index.tsx b/apps/admin/src/pages/Bills/index.tsx
index 640ab0a..2cd18c6 100644
--- a/apps/admin/src/pages/Bills/index.tsx
+++ b/apps/admin/src/pages/Bills/index.tsx
@@ -113,7 +113,7 @@ const BillsPage: React.FC = () => {
const res = await api.get(`/bills/${id}`);
setDetailModal(res);
} catch (e: any) {
- message.error(e?.message || '加载详情失败');
+ message.error(e?.message || '加载失败,请稍后重试');
} finally {
setDetailLoading(false);
}
@@ -134,6 +134,7 @@ const BillsPage: React.FC = () => {
const batchUpdateStatus = async (status: string) => {
if (selectedRows.length === 0) return message.warning('请先选择账单');
+ if (batchLoading) return;
setBatchLoading(true);
try {
await api.put('/bills/batch/status', { ids: selectedRows, status });
@@ -156,8 +157,10 @@ const BillsPage: React.FC = () => {
message.error(e?.message || '删除失败');
}
};
+
const batchDelete = async () => {
if (selectedRows.length === 0) return message.warning('请先选择账单');
+ if (batchLoading) return;
setBatchLoading(true);
try {
await api.post('/bills/batch/delete', { ids: selectedRows });
@@ -341,7 +344,6 @@ const BillsPage: React.FC = () => {
permission="bill:confirm"
onClick={() => batchUpdateStatus('confirmed')}
disabled={selectedRows.length === 0}
- loading={batchLoading}
>
批量确认
@@ -350,7 +352,6 @@ const BillsPage: React.FC = () => {
type="primary"
onClick={() => batchUpdateStatus('paid')}
disabled={selectedRows.length === 0}
- loading={batchLoading}
>
批量标记已付
@@ -366,7 +367,6 @@ const BillsPage: React.FC = () => {
danger
disabled={selectedRows.length === 0}
icon={}
- loading={batchLoading}
>
批量删除
@@ -399,8 +399,8 @@ const BillsPage: React.FC = () => {
dataSource={filteredBills}
rowKey="id"
loading={loading}
- locale={{ emptyText: }}
pagination={{ pageSize: 15, showTotal: (total) => `共 ${total} 条` }}
+ locale={{ emptyText: }}
rowSelection={{
selectedRowKeys: selectedRows,
onChange: (keys) => setSelectedRows(keys as number[]),
diff --git a/apps/admin/src/pages/Deposits/index.tsx b/apps/admin/src/pages/Deposits/index.tsx
index b0ef5b6..b2049a1 100644
--- a/apps/admin/src/pages/Deposits/index.tsx
+++ b/apps/admin/src/pages/Deposits/index.tsx
@@ -88,7 +88,7 @@ const DepositsPage: React.FC = () => {
const res = await api.get('/deposits/pending-refunds');
setPendingRefunds(res || []);
} catch (e: any) {
- message.error(e?.message || '加载待退款列表失败');
+ message.error(e?.message || '加载失败,请稍后重试');
}
setPendingLoading(false);
};
@@ -437,9 +437,9 @@ const DepositsPage: React.FC = () => {
dataSource={filteredData}
rowKey="id"
loading={loading}
- locale={{ emptyText: }}
scroll={{ x: 1200 }}
pagination={{ pageSize: 15, showTotal: (total) => `共 ${total} 条` }}
+ locale={{ emptyText: }}
/>
>
),
diff --git a/apps/admin/src/pages/Expenses/index.tsx b/apps/admin/src/pages/Expenses/index.tsx
index 4c2f252..928b950 100644
--- a/apps/admin/src/pages/Expenses/index.tsx
+++ b/apps/admin/src/pages/Expenses/index.tsx
@@ -80,6 +80,7 @@ const ExpensesPage: React.FC = () => {
}, []);
const handleBatchDeleteRoom = async () => {
+ if (batchLoading) return;
setBatchLoading(true);
try {
const res: any = await api.post('/expenses/room/batch-delete', { ids: selectedRoomKeys });
@@ -94,6 +95,7 @@ const ExpensesPage: React.FC = () => {
};
const handleBatchDeletePersonal = async () => {
+ if (batchLoading) return;
setBatchLoading(true);
try {
const res: any = await api.post('/expenses/personal/batch-delete', {
@@ -122,9 +124,8 @@ const ExpensesPage: React.FC = () => {
setPersonalExpenses(pe);
setRooms(rm);
setStudents(st);
- } catch (e: unknown) {
- const err = e as { message?: string };
- message.error(err?.message || '加载失败,请稍后重试');
+ } catch (e: any) {
+ message.error(e?.message || '加载失败,请稍后重试');
}
setLoading(false);
}, []);
@@ -419,7 +420,6 @@ const ExpensesPage: React.FC = () => {
danger
icon={}
disabled={selectedRoomKeys.length === 0}
- loading={batchLoading}
>
批量删除
@@ -443,9 +443,9 @@ const ExpensesPage: React.FC = () => {
dataSource={filteredRoomExpenses}
rowKey="id"
loading={loading}
- locale={{ emptyText: }}
scroll={{ x: 1200 }}
pagination={{ pageSize: 15, showTotal: (total) => `共 ${total} 条` }}
+ locale={{ emptyText: }}
rowSelection={{
selectedRowKeys: selectedRoomKeys,
onChange: (keys) => setSelectedRoomKeys(keys as number[]),
@@ -543,7 +543,6 @@ const ExpensesPage: React.FC = () => {
danger
icon={}
disabled={selectedPersonalKeys.length === 0}
- loading={batchLoading}
>
批量删除
@@ -561,14 +560,15 @@ const ExpensesPage: React.FC = () => {
录入个人费用
+
}}
scroll={{ x: 1200 }}
pagination={{ pageSize: 15, showTotal: (total) => `共 ${total} 条` }}
+ locale={{ emptyText: }}
rowSelection={{
selectedRowKeys: selectedPersonalKeys,
onChange: (keys) => setSelectedPersonalKeys(keys as number[]),