fix: simplify balance billing and govern operation logs
This commit is contained in:
@@ -8,7 +8,6 @@ import { formatAmount } from '@/utils/currency';
|
||||
type ManualRechargeForm = {
|
||||
tenantId: string;
|
||||
amount: string;
|
||||
smsUnits: string;
|
||||
operator: string;
|
||||
remark: string;
|
||||
};
|
||||
@@ -31,7 +30,7 @@ export function AdminRechargeRecordsPage() {
|
||||
const [enterpriseKeyword, setEnterpriseKeyword] = useState('');
|
||||
const [dateRange, setDateRange] = useState<DateRangeValue>({});
|
||||
const [manualOpen, setManualOpen] = useState(false);
|
||||
const [form, setForm] = useState<ManualRechargeForm>({ tenantId: '', amount: '', smsUnits: '0', operator: '运营', remark: '' });
|
||||
const [form, setForm] = useState<ManualRechargeForm>({ tenantId: '', amount: '', operator: '运营', remark: '' });
|
||||
const [page, setPage] = useState(1);
|
||||
const [loading, setLoading] = useState(true);
|
||||
const [error, setError] = useState('');
|
||||
@@ -93,9 +92,8 @@ export function AdminRechargeRecordsPage() {
|
||||
|
||||
async function submitManualRecharge() {
|
||||
const amount = Number(form.amount);
|
||||
const smsUnits = Number(form.smsUnits || 0);
|
||||
if (!form.tenantId || !Number.isFinite(amount) || !Number.isFinite(smsUnits) || (amount === 0 && smsUnits === 0)) {
|
||||
setManualError('请填写非 0 的充值金额或短信条数;金额支持负数冲正。');
|
||||
if (!form.tenantId || !Number.isFinite(amount) || amount === 0) {
|
||||
setManualError('请填写非 0 的充值金额;金额支持负数冲正。');
|
||||
return;
|
||||
}
|
||||
setSubmitting(true);
|
||||
@@ -104,12 +102,11 @@ export function AdminRechargeRecordsPage() {
|
||||
await adminApi.createManualRecharge({
|
||||
tenantId: form.tenantId,
|
||||
amountCents: Math.round(amount * 100),
|
||||
smsUnits,
|
||||
remark: [form.operator, form.remark].filter(Boolean).join(' / '),
|
||||
});
|
||||
await loadData();
|
||||
setManualOpen(false);
|
||||
setForm({ tenantId: tenants[0]?.id ?? '', amount: '', smsUnits: '0', operator: '运营', remark: '' });
|
||||
setForm({ tenantId: tenants[0]?.id ?? '', amount: '', operator: '运营', remark: '' });
|
||||
} catch (failure) {
|
||||
setManualError(failure instanceof Error ? failure.message : '人工充值失败');
|
||||
} finally {
|
||||
@@ -151,11 +148,11 @@ export function AdminRechargeRecordsPage() {
|
||||
</thead>
|
||||
<tbody>
|
||||
{error ? (
|
||||
<tr><td className="ui-table__empty" colSpan={7}>{error}</td></tr>
|
||||
<tr><td className="ui-table__empty" colSpan={6}>{error}</td></tr>
|
||||
) : loading ? (
|
||||
<tr><td className="ui-table__empty" colSpan={7}>正在加载真实充值记录...</td></tr>
|
||||
<tr><td className="ui-table__empty" colSpan={6}>正在加载真实充值记录...</td></tr>
|
||||
) : filteredRows.length === 0 ? (
|
||||
<tr><td className="ui-table__empty" colSpan={7}>暂无真实充值记录</td></tr>
|
||||
<tr><td className="ui-table__empty" colSpan={6}>暂无真实充值记录</td></tr>
|
||||
) : visibleRows.map((record) => {
|
||||
const tenantName = record.tenant?.name ?? tenants.find((tenant) => tenant.id === record.tenantId)?.name ?? record.tenantId;
|
||||
return (
|
||||
@@ -207,7 +204,6 @@ export function AdminRechargeRecordsPage() {
|
||||
value={form.tenantId}
|
||||
/>
|
||||
<Input label="充值金额" onChange={(event) => updateForm('amount', event.target.value)} prefix="¥" required type="number" value={form.amount} />
|
||||
<Input label="短信条数" onChange={(event) => updateForm('smsUnits', event.target.value)} type="number" value={form.smsUnits} />
|
||||
<Input label="操作人" onChange={(event) => updateForm('operator', event.target.value)} required value={form.operator} />
|
||||
<Textarea className="admin-system-modal-form__wide" label="充值备注" onChange={(event) => updateForm('remark', event.target.value)} rows={4} value={form.remark} />
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user