feat: 更新钱包管理功能,添加银行账户和余额的初始化逻辑,优化API请求和响应处理
This commit is contained in:
@@ -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,
|
||||
};
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user