v1.0.3 (2026-04-12)

- 🗑️ 删除交易记录功能:支持删除误添加的交易记录,自动回滚账户余额和持仓变化
- 💰 显示货币选择器:支持 CNY/USD/HKD 三种货币显示,默认 CNY
- 🔄 实时货币转换:根据汇率自动转换总资产显示
- 💱 账户货币联动:选择账户时自动设置对应结算货币(美股→USD、A股→CNY、加密→USDT、港股→HKD)
- 🔧 加密货币格式化:USDT 映射为 USD 进行显示
This commit is contained in:
kennethcheng 2026-04-12 07:11:34 +08:00
parent 1df2950097
commit 08b0b129bc
3 changed files with 29 additions and 6 deletions

View File

@ -175,14 +175,17 @@ npm install
cp .env.example .env cp .env.example .env
# 编辑 .env 填入数据库连接信息 # 编辑 .env 填入数据库连接信息
# 4. 初始化数据库 # 4. 生成 Prisma 客户端
npx prisma generate
# 5. 初始化数据库
npx prisma migrate dev --name init npx prisma migrate dev --name init
npx prisma db seed npx prisma db seed
# 5. 启动开发服务器 # 6. 启动开发服务器
npm run dev npm run dev
# 6. 重置数据库 # 7. 重置数据库
npx prisma migrate reset --force npx prisma migrate reset --force
``` ```
@ -385,11 +388,21 @@ MIT License - 详见 [LICENSE](LICENSE) 文件
## 更新日志 ## 更新日志
### v1.0.2 (2026-04-12) ### v1.0.3 (2026-04-12)
- 🗑️ 删除交易记录功能:支持删除误添加的交易记录,自动回滚账户余额和持仓变化 - 🗑️ 删除交易记录功能:支持删除误添加的交易记录,自动回滚账户余额和持仓变化
- 💰 显示货币选择器:支持 CNY/USD/HKD 三种货币显示,默认 CNY - 💰 显示货币选择器:支持 CNY/USD/HKD 三种货币显示,默认 CNY
- 🔄 实时货币转换:根据汇率自动转换总资产显示 - 🔄 实时货币转换:根据汇率自动转换总资产显示
- 💱 账户货币联动选择账户时自动设置对应结算货币美股→USD、A股→CNY、加密→USDT、港股→HKD
- 🔧 加密货币格式化USDT 映射为 USD 进行显示
### v1.0.2 (2026-04-12)
- 🔧 账户名称优化改为港股账户、美股账户、A股账户、加密货币账户
- ✨ 成交总额自动计算:根据数量 × 价格自动计算
- 🗑️ 删除持仓功能:支持通过卖出全部来删除持仓
- 🎨 Select 组件显示优化:修复了下拉框显示问题
- 📝 代码注释中文化
### v1.0.1 (2026-04-12) ### v1.0.1 (2026-04-12)

View File

@ -876,7 +876,15 @@ export default function Dashboard() {
{/* 账户选择 */} {/* 账户选择 */}
<div className="space-y-2"> <div className="space-y-2">
<Label></Label> <Label></Label>
<Select value={selectedAccountId} onValueChange={(v) => v && setSelectedAccountId(v)}> <Select value={selectedAccountId} onValueChange={(v) => {
if (v) {
setSelectedAccountId(v)
const selected = accounts.find(a => a.id === v)
if (selected) {
setTxForm(prev => ({ ...prev, currency: selected.baseCurrency }))
}
}
}}>
<SelectTrigger> <SelectTrigger>
<SelectValue> <SelectValue>
{selectedAccount ? selectedAccount.name : '选择账户'} {selectedAccount ? selectedAccount.name : '选择账户'}

View File

@ -120,9 +120,11 @@ export async function createSecurity(data: {
// 格式化货币 // 格式化货币
export function formatCurrency(amount: number, currency: string = 'USD'): string { export function formatCurrency(amount: number, currency: string = 'USD'): string {
// USDT 视为 USD 进行格式化显示
const displayCurrency = currency === 'USDT' ? 'USD' : currency
return new Intl.NumberFormat('en-US', { return new Intl.NumberFormat('en-US', {
style: 'currency', style: 'currency',
currency, currency: displayCurrency,
minimumFractionDigits: 2, minimumFractionDigits: 2,
maximumFractionDigits: 2, maximumFractionDigits: 2,
}).format(amount) }).format(amount)