This commit is contained in:
2026-08-14 16:11:07 +08:00
parent 3194356859
commit a4417e8976
4 changed files with 23 additions and 6 deletions
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -28,7 +28,7 @@
}
})();
</script>
<script type="module" crossorigin src="/assets/index-BOVkHU6U.js"></script>
<script type="module" crossorigin src="/assets/index-BgSEIhFU.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-D3fwIbOp.css">
</head>
<body>
@@ -48,7 +48,18 @@ const AdminBankTransactions: React.FC = () => {
const loadAccounts = async () => {
try {
const res = await listBankAccounts();
setAccounts(res.items || []);
const items = res.items || [];
setAccounts(items);
// 默认选中默认账户(或第一个账户)
const defaultAccount = items.find(a => a.isDefault) || items[0];
if (defaultAccount) {
setSelectedAccountId(defaultAccount.id);
}
// 默认日期范围:今天
const today = new Date().toISOString().slice(0, 10);
setDateRange([today, today]);
} catch (err: any) {
message.error(err?.message || '加载银行账户失败');
}
+9 -3
View File
@@ -1,5 +1,7 @@
"""银行账户管理与交易查询后台路由。"""
from datetime import datetime, time
from fastapi import APIRouter, Depends, HTTPException, Path, Query
import sqlalchemy as sa
from sqlalchemy import select
@@ -163,12 +165,16 @@ async def list_transactions(
if account is None:
raise HTTPException(status_code=404, detail="银行账户不存在")
# 构建查询条件
# 构建查询条件(日期字符串转为 datetime,避免 PostgreSQL 类型错误)
conditions = [BankTransaction.account_id == account_id]
if start_date:
conditions.append(BankTransaction.transaction_time >= start_date)
start_dt = datetime.strptime(start_date, "%Y-%m-%d")
conditions.append(BankTransaction.transaction_time >= start_dt)
if end_date:
conditions.append(BankTransaction.transaction_time < end_date + " 23:59:59")
end_dt = datetime.strptime(end_date, "%Y-%m-%d").replace(
hour=23, minute=59, second=59
)
conditions.append(BankTransaction.transaction_time <= end_dt)
if dc_flag is not None:
direction = "DR" if dc_flag == 0 else "CR"
conditions.append(BankTransaction.balance_direction == direction)