优化账户余额调整功能:新增调整余额的逻辑,更新相关页面以显示账户余额和可用额度,调整路由配置以移除不必要的动画效果。
This commit is contained in:
@@ -195,6 +195,7 @@
|
||||
:class="{ 'disabled': !allVisibleAccounts.length || (mode === TransactionEditPageMode.Edit && transaction.type === TransactionType.ModifyBalance), 'readonly': mode === TransactionEditPageMode.View }"
|
||||
:header="tt(sourceAccountTitle)"
|
||||
:title="sourceAccountName"
|
||||
:footer="sourceAccountBalanceDisplay"
|
||||
@click="showSourceAccountSheet = true"
|
||||
>
|
||||
<two-column-list-item-selection-sheet primary-key-field="id" primary-value-field="category"
|
||||
@@ -218,6 +219,7 @@
|
||||
:class="{ 'disabled': !allVisibleAccounts.length, 'readonly': mode === TransactionEditPageMode.View }"
|
||||
:header="tt('Destination Account')"
|
||||
:title="destinationAccountName"
|
||||
:footer="destinationAccountBalanceDisplay"
|
||||
v-if="transaction.type === TransactionType.Transfer"
|
||||
@click="showDestinationAccountSheet = true"
|
||||
>
|
||||
@@ -523,6 +525,7 @@ import {
|
||||
import { useSettingsStore } from '@/stores/setting.ts';
|
||||
import { useUserStore } from '@/stores/user.ts';
|
||||
import { useAccountsStore } from '@/stores/account.ts';
|
||||
import type { Account } from '@/models/account.ts';
|
||||
import { useTransactionCategoriesStore } from '@/stores/transactionCategory.ts';
|
||||
import { useTransactionTagsStore } from '@/stores/transactionTag.ts';
|
||||
import { useTransactionsStore } from '@/stores/transaction.ts';
|
||||
@@ -572,7 +575,8 @@ const {
|
||||
formatDateTimeToLongDate,
|
||||
formatDateTimeToLongTime,
|
||||
formatGregorianTextualYearMonthDayToLongDate,
|
||||
parseAmountFromLocalizedNumerals
|
||||
parseAmountFromLocalizedNumerals,
|
||||
formatAmountToLocalizedNumeralsWithCurrency
|
||||
} = useI18n();
|
||||
const { showAlert, showConfirm, showToast, routeBackOnError } = useI18nUIComponents();
|
||||
|
||||
@@ -679,6 +683,31 @@ const quickSaveButtonFloatingPosition = computed<string>(() => {
|
||||
}
|
||||
});
|
||||
|
||||
function getAccountBalanceDisplay(account: Account): string {
|
||||
if (account.creditLimit) {
|
||||
const outstanding = -account.balance;
|
||||
const available = account.creditLimit + account.balance;
|
||||
return formatAmountToLocalizedNumeralsWithCurrency(outstanding, account.currency)
|
||||
+ ' · ' + tt('Available') + ' ' + formatAmountToLocalizedNumeralsWithCurrency(available, account.currency);
|
||||
}
|
||||
const displayBalance = account.isLiability ? -account.balance : account.balance;
|
||||
return formatAmountToLocalizedNumeralsWithCurrency(displayBalance, account.currency);
|
||||
}
|
||||
|
||||
const sourceAccountBalanceDisplay = computed<string>(() => {
|
||||
if (!transaction.value.sourceAccountId) return '';
|
||||
const account = allVisibleAccounts.value.find(a => a.id === transaction.value.sourceAccountId);
|
||||
if (!account) return '';
|
||||
return getAccountBalanceDisplay(account);
|
||||
});
|
||||
|
||||
const destinationAccountBalanceDisplay = computed<string>(() => {
|
||||
if (!transaction.value.destinationAccountId) return '';
|
||||
const account = allVisibleAccounts.value.find(a => a.id === transaction.value.destinationAccountId);
|
||||
if (!account) return '';
|
||||
return getAccountBalanceDisplay(account);
|
||||
});
|
||||
|
||||
const sourceAmountClass = computed<Record<string, boolean>>(() => {
|
||||
const classes: Record<string, boolean> = {
|
||||
'readonly': mode.value === TransactionEditPageMode.View,
|
||||
|
||||
Reference in New Issue
Block a user