From 1474182404b10518552a2e9efd224464b9b85ead Mon Sep 17 00:00:00 2001
From: hzj <1304805162@qq.com>
Date: Tue, 18 Nov 2025 19:47:24 +0800
Subject: [PATCH] =?UTF-8?q?feat(=E6=9B=B4=E6=96=B0=E6=8E=A5=E5=8F=A3):=20b?=
=?UTF-8?q?d=E5=92=8Cbdleader=E7=9A=84=E6=93=8D=E4=BD=9C=E9=87=91=E9=A2=9D?=
=?UTF-8?q?=E9=A1=B5=EF=BC=8C=E9=92=88=E5=AF=B9=E5=85=91=E6=8D=A2=E5=92=8C?=
=?UTF-8?q?=E8=BD=AC=E8=B4=A6=E5=8A=9F=E8=83=BD=EF=BC=8C=E8=AE=BE=E7=BD=AE?=
=?UTF-8?q?=E4=BA=86pinia=E6=8C=81=E4=B9=85=E5=8C=96=E8=BA=AB=E4=BB=BD?=
=?UTF-8?q?=EF=BC=8C=E6=9B=B4=E6=96=B0=E4=BA=86=E6=8E=A5=E5=8F=A3=E3=80=82?=
=?UTF-8?q?=E5=B9=B6=E7=BB=99=E6=90=9C=E7=B4=A2=E9=A1=B5=E8=AE=BE=E7=BD=AE?=
=?UTF-8?q?=E8=BF=94=E5=9B=9E=E7=8A=B6=E6=80=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
package.json | 1 +
src/api/wallet.js | 22 +++++++++
src/locales/en.json | 6 +--
src/locales/zh.json | 2 +-
src/main.js | 3 ++
src/stores/identity.js | 15 +++++++
src/views/BDCenter/availableIncome.vue | 45 +++++++++++++------
src/views/BDCenter/index.vue | 34 ++++----------
src/views/BDLeaderCenter/index.vue | 24 ++++------
src/views/Wallet/Transfer/SearchPayeeView.vue | 18 +++++++-
10 files changed, 111 insertions(+), 59 deletions(-)
create mode 100644 src/stores/identity.js
diff --git a/package.json b/package.json
index 53aefe9..036e7d0 100644
--- a/package.json
+++ b/package.json
@@ -21,6 +21,7 @@
"@vueuse/core": "^13.9.0",
"airwallex-payment-elements": "^1.131.0",
"pinia": "^3.0.3",
+ "pinia-plugin-persistedstate": "^4.7.1",
"vant": "^4.9.21",
"vue": "^3.5.18",
"vue-i18n": "^11.1.12",
diff --git a/src/api/wallet.js b/src/api/wallet.js
index 335d854..cb874c2 100644
--- a/src/api/wallet.js
+++ b/src/api/wallet.js
@@ -368,3 +368,25 @@ export const apiGetBankBalance = async (salaryType) => {
throw error
}
}
+
+// 转账到金币
+export const apiTransfer = async (data) => {
+ try {
+ const response = await post('/wallet/salary-account/transferGold', data)
+ return response
+ } catch (error) {
+ console.error('Failed to fetch transfer Gold:', error)
+ throw error
+ }
+}
+
+// 兑换金币
+export const apiExchange = async (data) => {
+ try {
+ const response = await post('/wallet/salary-account/exchange/gold', data)
+ return response
+ } catch (error) {
+ console.error('Failed to fetch exchange Gold:', error)
+ throw error
+ }
+}
diff --git a/src/locales/en.json b/src/locales/en.json
index cb645c7..b333b5f 100644
--- a/src/locales/en.json
+++ b/src/locales/en.json
@@ -153,7 +153,7 @@
"please_select_coin_amount": "Please select a coin amount first",
"insufficient_balance": "Insufficient balance. Your current balance is ${balance}, but you need $${price} to exchange.",
"confirm_exchange_coins": "Do you want to exchange coins for $${price}?",
- "exchange_success": "Successfully exchanged coins for $${price}",
+ "exchange_success": "Successfully exchanged coins for ${price}",
"exchange_failed": "Exchange failed, please try again later.",
"exchange_error_occurred": "An error occurred during the exchange process. Please try again later.",
@@ -161,8 +161,8 @@
"please_select_payee": "Please select a payee first",
"enter_payment_password": "Please enter your payment password:",
"payment_password_required": "Payment password is required",
- "transfer_success": "Successfully transferred $${price} to ${name}",
- "transfer_failed": "Failed to transfer $${price}",
+ "transfer_success": "Successfully transferred ${price} to {name}",
+ "transfer_failed": "Failed to transfer ${price}",
"payment_password_error": "Payment password error",
"transfer_error": "Transfer failed, please try again later",
diff --git a/src/locales/zh.json b/src/locales/zh.json
index 4126604..7311f39 100644
--- a/src/locales/zh.json
+++ b/src/locales/zh.json
@@ -161,7 +161,7 @@
"please_select_payee": "请选择收款人",
"enter_payment_password": "请输入支付密码:",
"payment_password_required": "需要支付密码",
- "transfer_success": "成功转账${price}美元给${name}",
+ "transfer_success": "成功转账${price}美元给{name}",
"transfer_failed": "转账${price}美元失败",
"payment_password_error": "支付密码错误",
"transfer_error": "转账失败,请稍后重试",
diff --git a/src/main.js b/src/main.js
index cfe228d..b2862f3 100644
--- a/src/main.js
+++ b/src/main.js
@@ -3,6 +3,7 @@ import { logEnvInfo } from './utils/env.js'
import { versionChecker } from './utils/versionChecker.js'
import { smartImage } from './directives/smartImage.js'
import { createPinia } from 'pinia'
+import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'
import { createApp } from 'vue'
import i18n, { initI18n } from './locales/i18n'
@@ -19,6 +20,8 @@ versionChecker.checkVersion()
// 初始化权限系统
console.debug('🔐 Permission system initialized')
const pinia = createPinia()
+pinia.use(piniaPluginPersistedstate) //将插件添加到 pinia 实例上
+
const app = createApp(App)
// 注册智能图片指令
diff --git a/src/stores/identity.js b/src/stores/identity.js
new file mode 100644
index 0000000..3dd95d7
--- /dev/null
+++ b/src/stores/identity.js
@@ -0,0 +1,15 @@
+import { defineStore } from 'pinia'
+
+export const useIdentityStore = defineStore('identity', {
+ state: () => ({
+ identity: '',
+ }),
+
+ actions: {
+ setIdentity(identity) {
+ this.identity = identity
+ },
+ },
+
+ persist: true,
+})
diff --git a/src/views/BDCenter/availableIncome.vue b/src/views/BDCenter/availableIncome.vue
index 8bc6129..d48f78f 100644
--- a/src/views/BDCenter/availableIncome.vue
+++ b/src/views/BDCenter/availableIncome.vue
@@ -738,29 +738,33 @@
diff --git a/src/views/BDLeaderCenter/index.vue b/src/views/BDLeaderCenter/index.vue
index 4d3d237..7ae0d35 100644
--- a/src/views/BDLeaderCenter/index.vue
+++ b/src/views/BDLeaderCenter/index.vue
@@ -718,6 +718,7 @@ import { useRouter } from 'vue-router'
import { isInApp } from '@/utils/appBridge.js'
import { clearSelectedPayee } from '@/utils/payeeStore.js'
import { usePageInitializationWithConfig } from '@/utils/pageConfig.js'
+import { useIdentityStore } from '@/stores/identity.js'
import { getBdMemberBillList, getBdHistory, getBdHistoryMore } from '@/api/bdCenter.js'
import { getBdLeaderHistory, getBdLeaderHistoryMore } from '@/api/bdLeaderCenter'
@@ -730,6 +731,8 @@ import historySalary from '@/components/historySalary.vue'
const { t, locale } = useI18n()
const router = useRouter()
+const identityStore = useIdentityStore()
+
// 监听语言变化并设置文档方向
locale.value && setDocumentDirection(locale.value)
@@ -830,8 +833,6 @@ const goToInviteBD = () => {
const apiGetBdMemberBillList = async () => {
const res = await getBdMemberBillList('BD')
if (res.status && res.body) {
- // 处理返回的数据
- // console.log('BD member bill list:', res.body)
BDData.value = res.body || {}
}
}
@@ -840,8 +841,6 @@ const apiGetBdMemberBillList = async () => {
const apiGetBdLeaderMemberBillList = async () => {
const res = await getBdMemberBillList('BDLEADER')
if (res.status && res.body) {
- // 处理返回的数据
- // console.log('BD member bill list:', res.body)
BDLeaderData.value = res.body || {}
}
}
@@ -850,8 +849,6 @@ const apiGetBdLeaderMemberBillList = async () => {
const apiGetBdHistory = async () => {
const res = await getBdHistory()
if (res.status && res.body) {
- // 处理返回的数据
- console.log('BD History:', res.body)
BDSalary.value = res.body || {}
}
}
@@ -860,8 +857,6 @@ const apiGetBdHistory = async () => {
const apiGetBdLeaderHistory = async () => {
const res = await getBdLeaderHistory()
if (res.status && res.body) {
- // 处理返回的数据
- console.log('BD History:', res.body)
BDLeaderSalary.value = res.body || {}
}
}
@@ -870,17 +865,15 @@ const apiGetBdLeaderHistory = async () => {
const getBankBalance = async () => {
const res = await apiGetBankBalance('BD_LEADER_SALARY')
if (res.status && res.body) {
- // 处理返回的数据
salaryInfo.value = res.body || {}
}
}
-const { appConnected, userInfo, handleImageError, getAvatarPlaceholder } =
- usePageInitializationWithConfig('BD_LEADER_CENTER', {
- needsTeamInfo: true,
- needsBankBalance: false,
- onDataLoaded: () => {},
- })
+const { appConnected, userInfo } = usePageInitializationWithConfig('BD_LEADER_CENTER', {
+ needsTeamInfo: true,
+ needsBankBalance: false,
+ onDataLoaded: () => {},
+})
// 初始化数据
const initData = () => {
@@ -894,6 +887,7 @@ const initData = () => {
onMounted(() => {
clearSelectedPayee()
initData() // 初始化数据
+ identityStore.setIdentity('BD_LEADER')
})
diff --git a/src/views/Wallet/Transfer/SearchPayeeView.vue b/src/views/Wallet/Transfer/SearchPayeeView.vue
index 201c73f..d16d2e5 100644
--- a/src/views/Wallet/Transfer/SearchPayeeView.vue
+++ b/src/views/Wallet/Transfer/SearchPayeeView.vue
@@ -221,7 +221,7 @@