use for-of statements to replace for and for-in

This commit is contained in:
MaysWind
2025-09-14 17:18:01 +08:00
parent 4700446ca0
commit 1a8ce7d58d
29 changed files with 455 additions and 579 deletions
+20 -19
View File
@@ -370,7 +370,7 @@
<template #default>
<div class="grid grid-cols-2">
<div class="list-item-subitem no-chevron">
<a class="item-link" href="#" @click="subAccountContexts[idx].showIconSelectionSheet = true">
<a class="item-link" href="#" @click="subAccountContexts[idx]!.showIconSelectionSheet = true">
<div class="item-content">
<div class="item-inner">
<div class="item-header">
@@ -387,12 +387,12 @@
<icon-selection-sheet :all-icon-infos="ALL_ACCOUNT_ICONS"
:color="subAccount.color"
v-model:show="subAccountContexts[idx].showIconSelectionSheet"
v-model:show="subAccountContexts[idx]!.showIconSelectionSheet"
v-model="subAccount.icon"
></icon-selection-sheet>
</div>
<div class="list-item-subitem no-chevron">
<a class="item-link" href="#" @click="subAccountContexts[idx].showColorSelectionSheet = true">
<a class="item-link" href="#" @click="subAccountContexts[idx]!.showColorSelectionSheet = true">
<div class="item-content">
<div class="item-inner">
<div class="item-header">
@@ -408,7 +408,7 @@
</a>
<color-selection-sheet :all-color-infos="ALL_ACCOUNT_COLORS"
v-model:show="subAccountContexts[idx].showColorSelectionSheet"
v-model:show="subAccountContexts[idx]!.showColorSelectionSheet"
v-model="subAccount.color"
></color-selection-sheet>
</div>
@@ -422,7 +422,7 @@
:class="{ 'disabled': editAccountId && !isNewAccount(subAccount) }"
:header="tt('Currency')"
:no-chevron="!!editAccountId && !isNewAccount(subAccount)"
@click="subAccountContexts[idx].showCurrencyPopup = true"
@click="subAccountContexts[idx]!.showCurrencyPopup = true"
>
<template #title>
<div class="no-padding no-margin">
@@ -438,7 +438,7 @@
:filter-placeholder="tt('Currency')"
:filter-no-items-text="tt('No results')"
:items="allCurrencies"
v-model:show="subAccountContexts[idx].showCurrencyPopup"
v-model:show="subAccountContexts[idx]!.showCurrencyPopup"
v-model="subAccount.currency">
</list-item-selection-popup>
</f7-list-item>
@@ -449,13 +449,13 @@
:class="{ 'disabled': editAccountId && !isNewAccount(subAccount) }"
:header="account.isLiability ? tt('Sub-account Outstanding Balance') : tt('Sub-account Balance')"
:title="formatAccountDisplayBalance(subAccount)"
@click="subAccountContexts[idx].showBalanceSheet = true"
@click="subAccountContexts[idx]!.showBalanceSheet = true"
>
<number-pad-sheet :min-value="TRANSACTION_MIN_AMOUNT"
:max-value="TRANSACTION_MAX_AMOUNT"
:currency="subAccount.currency"
:flip-negative="account.isLiability"
v-model:show="subAccountContexts[idx].showBalanceSheet"
v-model:show="subAccountContexts[idx]!.showBalanceSheet"
v-model="subAccount.balance"
></number-pad-sheet>
</f7-list-item>
@@ -467,15 +467,15 @@
v-if="!editAccountId || isNewAccount(subAccount)"
>
<template #header>
<div class="account-edit-balancetime-header" @click="showDateTimeDialog(subAccountContexts[idx], 'time')">{{ tt('Sub-account Balance Time') }}</div>
<div class="account-edit-balancetime-header" @click="showDateTimeDialog(subAccountContexts[idx] as AccountContext, 'time')">{{ tt('Sub-account Balance Time') }}</div>
</template>
<template #title>
<div class="account-edit-balancetime-title">
<div @click="showDateTimeDialog(subAccountContexts[idx], 'date')">{{ formatAccountBalanceDate(subAccount) }}</div>&nbsp;<div class="account-edit-balancetime-time" @click="showDateTimeDialog(subAccountContexts[idx], 'time')">{{ formatAccountBalanceTime(subAccount) }}</div>
<div @click="showDateTimeDialog(subAccountContexts[idx] as AccountContext, 'date')">{{ formatAccountBalanceDate(subAccount) }}</div>&nbsp;<div class="account-edit-balancetime-time" @click="showDateTimeDialog(subAccountContexts[idx] as AccountContext, 'time')">{{ formatAccountBalanceTime(subAccount) }}</div>
</div>
</template>
<date-time-selection-sheet :init-mode="subAccountContexts[idx].balanceDateTimeSheetMode"
v-model:show="subAccountContexts[idx].showBalanceDateTimeSheet"
<date-time-selection-sheet :init-mode="subAccountContexts[idx]!.balanceDateTimeSheetMode"
v-model:show="subAccountContexts[idx]!.showBalanceDateTimeSheet"
v-model="subAccount.balanceTime">
</date-time-selection-sheet>
</f7-list-item>
@@ -526,6 +526,7 @@ import { useAccountEditPageBaseBase } from '@/views/base/accounts/AccountEditPag
import { useAccountsStore } from '@/stores/account.ts';
import { itemAndIndex } from '@/core/base.ts';
import type { LocalizedCurrencyInfo } from '@/core/currency.ts';
import { AccountType } from '@/core/account.ts';
import { ALL_ACCOUNT_ICONS } from '@/consts/icon.ts';
@@ -709,14 +710,14 @@ function addSubAccountAndContext(): void {
}
}
function removeSubAccount(subAccount: Account | null, confirm: boolean): void {
if (!subAccount) {
function removeSubAccount(currentSubAccount: Account | null, confirm: boolean): void {
if (!currentSubAccount) {
showAlert('An error occurred');
return;
}
if (!confirm) {
subAccountToDelete.value = subAccount;
subAccountToDelete.value = currentSubAccount;
showDeleteActionSheet.value = true;
return;
}
@@ -724,10 +725,10 @@ function removeSubAccount(subAccount: Account | null, confirm: boolean): void {
showDeleteActionSheet.value = false;
subAccountToDelete.value = null;
for (let i = 0; i < subAccounts.value.length; i++) {
if (subAccounts.value[i] === subAccount) {
subAccounts.value.splice(i, 1);
subAccountContexts.value.splice(i, 1);
for (const [subAccount, index] of itemAndIndex(subAccounts.value)) {
if (subAccount === currentSubAccount) {
subAccounts.value.splice(index, 1);
subAccountContexts.value.splice(index, 1);
}
}
}