feat: deduct personal expenses from deposit refunds

This commit is contained in:
2026-07-15 09:03:20 +08:00
parent 17a5046ea0
commit c86550f894
5 changed files with 105 additions and 10 deletions

View File

@@ -37,6 +37,8 @@ const isFormValidationError = (error: unknown) =>
&& error !== null
&& Array.isArray((error as { errorFields?: unknown }).errorFields);
const moneyNumber = (value: unknown) => Number(Number(value || 0).toFixed(2));
const DepositsPage: React.FC = () => {
const [data, setData] = useState<any[]>([]);
const [students, setStudents] = useState<any[]>([]);
@@ -350,7 +352,38 @@ const DepositsPage: React.FC = () => {
>
<Form form={refundForm} layout="vertical">
<div style={{ marginBottom: 16, padding: 12, background: '#f5f5f5', borderRadius: 8 }}>
: <strong>¥{Number(refundModal?.amount || 0).toFixed(2)}</strong>
<div>
:{' '}
<strong>¥{moneyNumber(refundModal?.amount).toFixed(2)}</strong>
</div>
<div style={{ marginTop: 4 }}>
:{' '}
<strong>¥{moneyNumber(refundModal?.personalExpenseAmount).toFixed(2)}</strong>
</div>
<div style={{ marginTop: 4 }}>
:{' '}
<strong style={{ color: '#fa8c16' }}>
¥
{Math.min(
moneyNumber(refundModal?.amount),
moneyNumber(refundModal?.personalExpenseAmount),
).toFixed(2)}
</strong>
</div>
<div style={{ marginTop: 4 }}>
退:{' '}
<strong style={{ color: '#52c41a' }}>
¥
{Math.max(
0,
moneyNumber(refundModal?.amount) -
Math.min(
moneyNumber(refundModal?.amount),
moneyNumber(refundModal?.personalExpenseAmount),
),
).toFixed(2)}
</strong>
</div>
</div>
<Form.Item name="refundDate" label="退还日期" rules={[{ required: true }]}>
<DatePicker style={{ width: '100%' }} placeholder="选择退还日期" format="YYYY-MM-DD" />