feat: 更新钱包管理功能,添加银行账户和余额的初始化逻辑,优化API请求和响应处理

This commit is contained in:
2025-12-17 02:09:07 +07:00
parent d375d12583
commit 2f1881cc81
8 changed files with 89 additions and 22 deletions

View File

@@ -1,16 +1,50 @@
import type { BalancesData } from "@/api/types";
import type { BalancesData, BankAccountsData } from "@/api/types";
import { defineStore } from "pinia";
import { client, safeClient } from "@/api";
interface State {
balances: BalancesData | null;
balances: BalancesData;
bankAccounts: BankAccountsData["data"];
}
export const useWalletStore = defineStore("wallet", () => {
const state = reactive<State>({
balances: null,
balances: [],
bankAccounts: [],
});
const balances = computed(() => state.balances);
const bankAccounts = computed(() => state.bankAccounts);
async function initializeWallet() {
updateBalances();
updateBankAccounts();
}
async function updateBalances(data?: BalancesData) {
if (data) {
state.balances = data;
return;
}
const { data: balances } = await safeClient(() => client.api.asset.balances.get(), { silent: true });
state.balances = balances.value || [];
}
async function updateBankAccounts(data?: BankAccountsData["data"]) {
if (data) {
state.bankAccounts = data;
return;
}
const { data: bankAccounts } = await safeClient(() => client.api.bank_account.get(), { silent: true });
state.bankAccounts = bankAccounts.value?.data || [];
}
return {
state,
balances,
bankAccounts,
initializeWallet,
updateBalances,
updateBankAccounts,
};
});