mirror of
https://github.com/mayswind/ezbookkeeping.git
synced 2026-05-15 15:37:33 +08:00
use for-of statements to replace for and for-in
This commit is contained in:
+11
-13
@@ -1,7 +1,7 @@
|
||||
import { ref, computed } from 'vue';
|
||||
import { defineStore } from 'pinia';
|
||||
|
||||
import type { BeforeResolveFunction } from '@/core/base.ts';
|
||||
import { type BeforeResolveFunction, itemAndIndex } from '@/core/base.ts';
|
||||
|
||||
import type {
|
||||
UserCustomExchangeRateUpdateResponse,
|
||||
@@ -65,15 +65,14 @@ export const useExchangeRatesStore = defineStore('exchangeRates', () => {
|
||||
return exchangeRateMap;
|
||||
}
|
||||
|
||||
for (let i = 0; i < latestExchangeRates.value.data.exchangeRates.length; i++) {
|
||||
const exchangeRate = latestExchangeRates.value.data.exchangeRates[i];
|
||||
for (const exchangeRate of latestExchangeRates.value.data.exchangeRates) {
|
||||
exchangeRateMap[exchangeRate.currency] = exchangeRate;
|
||||
}
|
||||
|
||||
return exchangeRateMap;
|
||||
});
|
||||
|
||||
function updateExchangeRateToLatestExchangeRateList(exchangeRate: LatestExchangeRate, updateTime: number): void {
|
||||
function updateExchangeRateToLatestExchangeRateList(latestExchangeRate: LatestExchangeRate, updateTime: number): void {
|
||||
if (!latestExchangeRates.value || !latestExchangeRates.value.data || !latestExchangeRates.value.data.exchangeRates) {
|
||||
return;
|
||||
}
|
||||
@@ -81,16 +80,16 @@ export const useExchangeRatesStore = defineStore('exchangeRates', () => {
|
||||
const exchangeRates = latestExchangeRates.value.data.exchangeRates;
|
||||
let changed = false;
|
||||
|
||||
for (let i = 0; i < exchangeRates.length; i++) {
|
||||
if (exchangeRates[i].currency === exchangeRate.currency) {
|
||||
exchangeRates.splice(i, 1, exchangeRate);
|
||||
for (const [exchangeRate, index] of itemAndIndex(exchangeRates)) {
|
||||
if (exchangeRate.currency === latestExchangeRate.currency) {
|
||||
exchangeRates.splice(index, 1, latestExchangeRate);
|
||||
changed = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!changed) {
|
||||
exchangeRates.push(exchangeRate);
|
||||
exchangeRates.push(latestExchangeRate);
|
||||
changed = true;
|
||||
}
|
||||
|
||||
@@ -109,9 +108,9 @@ export const useExchangeRatesStore = defineStore('exchangeRates', () => {
|
||||
const exchangeRates = latestExchangeRates.value.data.exchangeRates;
|
||||
let changed = false;
|
||||
|
||||
for (let i = 0; i < exchangeRates.length; i++) {
|
||||
if (exchangeRates[i].currency === currency) {
|
||||
exchangeRates.splice(i, 1);
|
||||
for (const [exchangeRate, index] of itemAndIndex(exchangeRates)) {
|
||||
if (exchangeRate.currency === currency) {
|
||||
exchangeRates.splice(index, 1);
|
||||
changed = true;
|
||||
break;
|
||||
}
|
||||
@@ -262,8 +261,7 @@ export const useExchangeRatesStore = defineStore('exchangeRates', () => {
|
||||
const exchangeRates = latestExchangeRates.value.data.exchangeRates;
|
||||
const exchangeRateMap: Record<string, LatestExchangeRate> = {};
|
||||
|
||||
for (let i = 0; i < exchangeRates.length; i++) {
|
||||
const exchangeRate = exchangeRates[i];
|
||||
for (const exchangeRate of exchangeRates) {
|
||||
exchangeRateMap[exchangeRate.currency] = exchangeRate;
|
||||
}
|
||||
|
||||
|
||||
+17
-18
@@ -1,6 +1,10 @@
|
||||
import { ref, computed } from 'vue';
|
||||
import { defineStore } from 'pinia';
|
||||
|
||||
import {
|
||||
values
|
||||
} from '@/core/base.ts';
|
||||
|
||||
import {
|
||||
type ApplicationSettingValue,
|
||||
type ApplicationSettingSubValue,
|
||||
@@ -39,13 +43,15 @@ export const useSettingsStore = defineStore('settings', () => {
|
||||
|
||||
function updateApplicationSettingsValueAndAppSettingsFromCloudSetting(key: string, value: string | number | boolean | Record<string, boolean>): void {
|
||||
const keyItems = key.split('.');
|
||||
const keyFirstPart = keyItems[0] as string;
|
||||
|
||||
if (keyItems.length === 1) {
|
||||
updateApplicationSettingsValue(keyItems[0], value);
|
||||
appSettings.value[keyItems[0]] = value;
|
||||
updateApplicationSettingsValue(keyFirstPart, value);
|
||||
appSettings.value[keyFirstPart] = value;
|
||||
} else if (keyItems.length === 2) {
|
||||
updateApplicationSettingsSubValue(keyItems[0], keyItems[1], value);
|
||||
(appSettings.value[keyItems[0]] as Record<string, ApplicationSettingSubValue>)[keyItems[1]] = value;
|
||||
const subKey = keyItems[1] as string;
|
||||
updateApplicationSettingsSubValue(keyFirstPart, subKey, value);
|
||||
(appSettings.value[keyFirstPart] as Record<string, ApplicationSettingSubValue>)[subKey] = value;
|
||||
} else {
|
||||
logger.warn(`cannot load application cloud setting "${key}", because it has invalid key format`);
|
||||
}
|
||||
@@ -60,10 +66,12 @@ export const useSettingsStore = defineStore('settings', () => {
|
||||
}
|
||||
|
||||
const keyItems = key.split('.');
|
||||
let value: ApplicationSettingValue | ApplicationSettingSubValue = appSettings.value[key];
|
||||
let value: ApplicationSettingValue | ApplicationSettingSubValue = appSettings.value[key] as (ApplicationSettingValue | ApplicationSettingSubValue);
|
||||
|
||||
if (keyItems.length === 2) {
|
||||
value = (appSettings.value[keyItems[0]] as Record<string, ApplicationSettingSubValue>)[keyItems[1]];
|
||||
const primaryKey = keyItems[0] as string;
|
||||
const subKey = keyItems[1] as string;
|
||||
value = (appSettings.value[primaryKey] as Record<string, ApplicationSettingSubValue>)[subKey] as ApplicationSettingSubValue;
|
||||
} else if (keyItems.length > 2) {
|
||||
logger.warn(`cannot get application cloud setting "${key}", because it has invalid key format`);
|
||||
return null;
|
||||
@@ -313,8 +321,7 @@ export const useSettingsStore = defineStore('settings', () => {
|
||||
|
||||
const settings: ApplicationCloudSetting[] = [];
|
||||
|
||||
for (let i = 0; i < applicationSettingKeys.length; i++) {
|
||||
const settingKey = applicationSettingKeys[i];
|
||||
for (const settingKey of applicationSettingKeys) {
|
||||
const cloudSetting = createUserApplicationCloudSetting(settingKey);
|
||||
|
||||
if (cloudSetting) {
|
||||
@@ -333,9 +340,7 @@ export const useSettingsStore = defineStore('settings', () => {
|
||||
|
||||
syncedAppSettings.value = arrayItemToObjectField(cloudSettings.map(item => item.settingKey), true);
|
||||
|
||||
for (let i = 0; i < cloudSettings.length; i++) {
|
||||
const setting = cloudSettings[i];
|
||||
|
||||
for (const setting of cloudSettings) {
|
||||
if (!setting || !setting.settingKey) {
|
||||
continue;
|
||||
}
|
||||
@@ -371,13 +376,7 @@ export const useSettingsStore = defineStore('settings', () => {
|
||||
let isValid = isObject(map);
|
||||
|
||||
if (isValid) {
|
||||
for (const key in map) {
|
||||
if (!Object.prototype.hasOwnProperty.call(map, key)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const value = map[key];
|
||||
|
||||
for (const value of values(map)) {
|
||||
if (!isBoolean(value)) {
|
||||
isValid = false;
|
||||
break;
|
||||
|
||||
@@ -140,11 +140,9 @@ export const useTransactionsStore = defineStore('transactions', () => {
|
||||
const allFilterTagIdsCount = computed<number>(() => countSplitItems(transactionsFilter.value.tagIds, ','));
|
||||
|
||||
const noTransaction = computed<boolean>(() => {
|
||||
for (let i = 0; i < transactions.value.length; i++) {
|
||||
const transactionMonthList = transactions.value[i];
|
||||
|
||||
for (let j = 0; j < transactionMonthList.items.length; j++) {
|
||||
if (transactionMonthList.items[j]) {
|
||||
for (const transactionMonthList of transactions.value) {
|
||||
for (const transaction of transactionMonthList.items) {
|
||||
if (transaction) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { ref, computed } from 'vue';
|
||||
import { defineStore } from 'pinia';
|
||||
|
||||
import type { BeforeResolveFunction } from '@/core/base.ts';
|
||||
import { type BeforeResolveFunction, itemAndIndex } from '@/core/base.ts';
|
||||
|
||||
import {
|
||||
type TransactionTagCreateBatchRequest,
|
||||
@@ -49,37 +49,37 @@ export const useTransactionTagsStore = defineStore('transactionTags', () => {
|
||||
allTransactionTagsMap.value[tag.id] = tag;
|
||||
}
|
||||
|
||||
function updateTagInTransactionTagList(tag: TransactionTag): void {
|
||||
for (let i = 0; i < allTransactionTags.value.length; i++) {
|
||||
if (allTransactionTags.value[i].id === tag.id) {
|
||||
allTransactionTags.value.splice(i, 1, tag);
|
||||
function updateTagInTransactionTagList(currentTag: TransactionTag): void {
|
||||
for (const [transactionTag, index] of itemAndIndex(allTransactionTags.value)) {
|
||||
if (transactionTag.id === currentTag.id) {
|
||||
allTransactionTags.value.splice(index, 1, currentTag);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
allTransactionTagsMap.value[tag.id] = tag;
|
||||
allTransactionTagsMap.value[currentTag.id] = currentTag;
|
||||
}
|
||||
|
||||
function updateTagDisplayOrderInTransactionTagList({ from, to }: { from: number, to: number }): void {
|
||||
allTransactionTags.value.splice(to, 0, allTransactionTags.value.splice(from, 1)[0]);
|
||||
allTransactionTags.value.splice(to, 0, allTransactionTags.value.splice(from, 1)[0] as TransactionTag);
|
||||
}
|
||||
|
||||
function updateTagVisibilityInTransactionTagList({ tag, hidden }: { tag: TransactionTag, hidden: boolean }): void {
|
||||
if (allTransactionTagsMap.value[tag.id]) {
|
||||
allTransactionTagsMap.value[tag.id].hidden = hidden;
|
||||
allTransactionTagsMap.value[tag.id]!.hidden = hidden;
|
||||
}
|
||||
}
|
||||
|
||||
function removeTagFromTransactionTagList(tag: TransactionTag): void {
|
||||
for (let i = 0; i < allTransactionTags.value.length; i++) {
|
||||
if (allTransactionTags.value[i].id === tag.id) {
|
||||
allTransactionTags.value.splice(i, 1);
|
||||
function removeTagFromTransactionTagList(currentTag: TransactionTag): void {
|
||||
for (const [transactionTag, index] of itemAndIndex(allTransactionTags.value)) {
|
||||
if (transactionTag.id === currentTag.id) {
|
||||
allTransactionTags.value.splice(index, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (allTransactionTagsMap.value[tag.id]) {
|
||||
delete allTransactionTagsMap.value[tag.id];
|
||||
if (allTransactionTagsMap.value[currentTag.id]) {
|
||||
delete allTransactionTagsMap.value[currentTag.id];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -223,16 +223,16 @@ export const useTransactionTagsStore = defineStore('transactionTags', () => {
|
||||
|
||||
function changeTagDisplayOrder({ tagId, from, to }: { tagId: string, from: number, to: number }): Promise<void> {
|
||||
return new Promise((resolve, reject) => {
|
||||
let tag: TransactionTag | null = null;
|
||||
let currentTag: TransactionTag | null = null;
|
||||
|
||||
for (let i = 0; i < allTransactionTags.value.length; i++) {
|
||||
if (allTransactionTags.value[i].id === tagId) {
|
||||
tag = allTransactionTags.value[i];
|
||||
for (const transactionTag of allTransactionTags.value) {
|
||||
if (transactionTag.id === tagId) {
|
||||
currentTag = transactionTag;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!tag || !allTransactionTags.value[to]) {
|
||||
if (!currentTag || !allTransactionTags.value[to]) {
|
||||
reject({ message: 'Unable to move tag' });
|
||||
return;
|
||||
}
|
||||
@@ -250,10 +250,10 @@ export const useTransactionTagsStore = defineStore('transactionTags', () => {
|
||||
function updateTagDisplayOrders(): Promise<boolean> {
|
||||
const newDisplayOrders: TransactionTagNewDisplayOrderRequest[] = [];
|
||||
|
||||
for (let i = 0; i < allTransactionTags.value.length; i++) {
|
||||
for (const [transactionTag, index] of itemAndIndex(allTransactionTags.value)) {
|
||||
newDisplayOrders.push({
|
||||
id: allTransactionTags.value[i].id,
|
||||
displayOrder: i + 1
|
||||
id: transactionTag.id,
|
||||
displayOrder: index + 1
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user