fix the result of detecting whether a transaction has been modified is wrong when no default account is set

This commit is contained in:
MaysWind
2025-09-22 00:59:10 +08:00
parent 245fdd78e4
commit d4fee27a3d
4 changed files with 15 additions and 11 deletions
+4 -4
View File
@@ -453,7 +453,7 @@ export const useTransactionsStore = defineStore('transactions', () => {
}
}
function isTransactionDraftModified(transaction?: Transaction, initAmount?: number, initCategoryId?: string, initAccountId?: string, initTagIds?: string): boolean {
function isTransactionDraftModified(transaction?: Transaction, initAmount?: number, initCategoryId?: string, initAccountId?: string, initTagIds?: string, firstVisibleAccountId?: string): boolean {
if (!transaction) {
return false;
}
@@ -466,7 +466,7 @@ export const useTransactionsStore = defineStore('transactions', () => {
return true;
}
if (transaction.sourceAccountId && transaction.sourceAccountId !== '0' && transaction.sourceAccountId !== userStore.currentUserDefaultAccountId && transaction.sourceAccountId !== initAccountId) {
if (transaction.sourceAccountId && transaction.sourceAccountId !== '0' && transaction.sourceAccountId !== userStore.currentUserDefaultAccountId && ((userStore.currentUserDefaultAccountId !== '' && userStore.currentUserDefaultAccountId !== '0') || transaction.sourceAccountId !== firstVisibleAccountId) && transaction.sourceAccountId !== initAccountId) {
return true;
}
@@ -517,14 +517,14 @@ export const useTransactionsStore = defineStore('transactions', () => {
return false;
}
function saveTransactionDraft(transaction?: Transaction, initAmount?: number, initCategoryId?: string, initAccountId?: string, initTagIds?: string): void {
function saveTransactionDraft(transaction?: Transaction, initAmount?: number, initCategoryId?: string, initAccountId?: string, initTagIds?: string, firstVisibleAccountId?: string): void {
if (settingsStore.appSettings.autoSaveTransactionDraft !== 'enabled' && settingsStore.appSettings.autoSaveTransactionDraft !== 'confirmation') {
clearTransactionDraft();
return;
}
if (transaction) {
if (!isTransactionDraftModified(transaction, initAmount, initCategoryId, initAccountId, initTagIds)) {
if (!isTransactionDraftModified(transaction, initAmount, initCategoryId, initAccountId, initTagIds, firstVisibleAccountId)) {
clearTransactionDraft();
return;
}