zhb 1 month ago
parent
commit
5affc6997e

+ 1 - 1
components/cwg-charts.vue

@@ -88,7 +88,7 @@ function debounce(fn, wait) {
 
 export default {
   name: 'cwg-charts',
-  mixins: [uniCloud.mixinDatacom],
+  // mixins: [uniCloud.mixinDatacom],
   props: {
     type: {
       type: String,

+ 33 - 23
pages/activities/index.vue

@@ -177,11 +177,11 @@
                         <!-- 加载更多状态 -->
                         <view v-if="loadingMore" class="loading-more">
                             <uni-icons type="spinner-cycle" size="20" color="#999" class="spin"></uni-icons>
-                            <text>{{ t('common.loadingMore') }}</text>
+                            <!-- <text>{{ t('common.loadingMore') }}</text> -->
                         </view>
                         <!-- 没有更多数据 -->
                         <view v-if="!hasMore && tableData.length > 0" class="no-more">
-                            <text>{{ t('common.noMore') }}</text>
+                            <!-- <text>{{ t('common.noMore') }}</text> -->
                         </view>
                     </scroll-view>
                 </view>
@@ -434,7 +434,7 @@
                 <button type="primary" @click="toApplyNoWorries">{{
                     t('news_add_field1.activitiesNoWorries.item6_1') }}</button>
                 <button @click="toApplyNoWorriesCancel">{{ t('news_add_field1.activitiesNoWorries.item6_2')
-                    }}</button>
+                }}</button>
             </template>
         </cwg-popup>
 
@@ -449,7 +449,7 @@
                 <button type="primary" @click="realizationNoWorries">{{
                     t('news_add_field1.activitiesNoWorries.item6_1') }}</button>
                 <button @click="dialogNoWorries = false">{{ t('news_add_field1.activitiesNoWorries.item6_2')
-                }}</button>
+                    }}</button>
             </template>
         </cwg-popup>
 
@@ -464,7 +464,7 @@
                 <button type="primary" @click="dialogNoWorriesApply = false">{{
                     t('news_add_field1.activitiesNoWorries.item6_1') }}</button>
                 <button @click="dialogNoWorriesApply = false">{{ t('news_add_field1.activitiesNoWorries.item6_2')
-                    }}</button>
+                }}</button>
             </template>
         </cwg-popup>
 
@@ -489,7 +489,7 @@
             </view>
             <template #footer>
                 <button type="primary" @click="calculateIncome">{{ t('news_add_field1.NewYear24.item8_1')
-                }}</button>
+                    }}</button>
                 <button @click="openCalculatorFlag = false">{{ t('news_add_field1.NewYear24.item8_2') }}</button>
             </template>
         </cwg-popup>
@@ -498,7 +498,7 @@
         <!-- 11111111Surplus活动弹框 -->
         <cwg-popup v-model:visible="dialogSurplusActivity" :title="t('surplusList.item1')" type="center"
             :mask-click="false" :show-footers="true" width="600px">
-            <view class="dia-content">
+            <view class="dia-content surplusActivityDialog">
                 <view class="content" style="padding: 20px">
                     <view class="form-item">
                         <view class="form-label">{{
@@ -1887,18 +1887,22 @@ const closeSurplusActivityDialog = () => {
 
 // 确认参加surplus活动
 const confirmSurplusActivity = async () => {
-    surplusActivityLoading.value = true
-    let res = await activityApi.ActivitySurplusAdd({
-        login: selectedAccount.value.login,
-        platform: selectedAccount.value.platform,
-        level: selectedSurplusActivity.value,
-    })
-    if (res.code == Code.StatusOK) {
-        uni.showToast({ title: res.msg, icon: "success" })
-        closeSurplusActivityDialog()
-        surplusActivityLoading.value = false
-    } else {
-        uni.showToast({ title: res.msg, icon: "none" })
+    try {
+        surplusActivityLoading.value = true
+        let res = await activityApi.ActivitySurplusAdd({
+            login: selectedAccount.value.login,
+            platform: selectedAccount.value.platform,
+            level: selectedSurplusActivity.value,
+        })
+        if (res.code == Code.StatusOK) {
+            uni.showToast({ title: res.msg, icon: "success" })
+            closeSurplusActivityDialog()
+            surplusActivityLoading.value = false
+        } else {
+            uni.showToast({ title: res.msg, icon: "none" })
+        }
+    } catch (error) {
+        uni.showToast({ title: error?.msg, icon: "none" })
     }
 }
 
@@ -2047,6 +2051,12 @@ const handleValueInfoChange = (value: any) => {
 watch(NewYear24DataBalance, (newVal) => {
     NewYear24Data.balance = Number(newVal) || 0
 })
+watch(dialogSurplusActivity, (newVal) => {
+    if (!newVal) { closeSurplusActivityDialog() }
+})
+watch(dialogSurplusActivity1, (newVal) => {
+    if (!newVal) { closeSurplusActivityDialog1() }
+})
 
 // ==================== 生命周期 ====================
 onMounted(() => {
@@ -2283,10 +2293,6 @@ onReachBottom(() => {
 
 // 弹窗样式优化
 .dia-content {
-    padding: 11px;
-    height: 400px;
-
-
     .content {
         padding: 20px !important;
     }
@@ -2321,4 +2327,8 @@ onReachBottom(() => {
         }
     }
 }
+
+.surplusActivityDialog {
+    height: 300px;
+}
 </style>

+ 1 - 1
pages/customer/components/VietnamNoticePopup.vue

@@ -1,5 +1,5 @@
 <template>
-    <cwg-popup v-model:visible="visible" type="center" :mask-click="false" :showFooters="true" :width="'60%'">
+    <cwg-popup v-model:visible="visible" type="center" :mask-click="false" :showFooters="true">
         <view class="popup-content">
             <view class="des1">
                 <view><text class="bold">Quý khách hàng thân mến:</text></view>

+ 9 - 10
pages/customer/deposit-select.vue

@@ -1,8 +1,7 @@
 <template>
     <cwg-page-wrapper class="create-page" :isHeaderFixed="true">
         <cwg-header :title="t('Home.page_customer.item2')" />
-        <uni-loading v-if="loading" />
-        <view class="custom-deposit" v-else>
+        <view class="custom-deposit">
             <!-- 步骤1:选择账户 -->
             <view class="box box-step1">
                 <view class="b-card">
@@ -20,10 +19,14 @@
                     <view class="card-top">
                         <text class="tit"><text class="iconfont icon-caret-right"></text>{{ t('Custom.Deposit.Title2')
                         }}</text>
-                        <cwg-asset-tabs v-if="tabsConfig.length > 0" v-model="activeTab" :tabs="tabsConfig" />
-                        <view v-if="currentTableData.length">
-                            <PaymentMethodsList :list="currentTableData" @select="isShowStep3" />
-                        </view>
+                        <uni-loading v-if="currentTableData.length == 0" />
+                        <template v-if="currentTableData.length">
+                            <cwg-asset-tabs v-if="tabsConfig.length > 0" v-model="activeTab" :tabs="tabsConfig" />
+                            <view>
+                                <PaymentMethodsList :list="currentTableData" @select="isShowStep3" />
+                            </view>
+                        </template>
+
                         <!-- <view v-if="step3" class="reselect-btn">
                             <button class="s-btn reselect" type="primary" @click="showTable">{{
                                 t('Custom.Deposit.Reselect') }}</button>
@@ -1865,9 +1868,6 @@ watch(loginValue, (login) => {
     if (login) {
         step2.value = true
         getDepositList()
-        get23nianzhongTwoLogin(login)
-        getActivityExtensionGiveLogin(login)
-        getActivityExtensionGiveLoginJoin(login)
         loginOptions.value.forEach(item => {
             if (item.login == login) ACCType.value = item.type
         })
@@ -1881,7 +1881,6 @@ watch(() => params.amount, (newVal) => {
     }
 })
 watch(() => imageUrl, (newVal) => {
-    console.log(newVal, 12);
 }, { deep: true })
 watch(() => params.agree3, (newVal) => {
     if (newVal) {

+ 18 - 16
pages/customer/deposit.vue

@@ -11,7 +11,7 @@
                         <view class="card-top">
                             <text class="tit"><text class="iconfont icon-caret-right"></text>{{
                                 t('Custom.Deposit.Title1')
-                            }}</text>
+                                }}</text>
                             <cwg-combox :clearable="false" v-model:value="loginValue" :options="loginComboxOptions"
                                 :placeholder="t('placeholder.choose')" />
                         </view>
@@ -23,7 +23,7 @@
                         <view class="card-top">
                             <text class="tit"><text class="iconfont icon-caret-right"></text>{{
                                 t('Custom.Deposit.Title2')
-                            }}</text>
+                                }}</text>
                             <cwg-combox :clearable="false" v-model:value="channelId" :options="channelListOptions"
                                 :placeholder="t('placeholder.choose')">
                             </cwg-combox>
@@ -72,7 +72,7 @@
                                     <view>
                                         <text class="tit"><text class="iconfont icon-caret-right"></text>{{
                                             t('news_add_field.Label.Title4')
-                                        }}</text>
+                                            }}</text>
                                     </view>
                                     <view>
                                         <uni-forms-item>
@@ -103,7 +103,7 @@
                                                         WireTransferAccount.bankUname || '--'
                                                     }}</text></view>
                                             <view class="row"><text class="label">{{ t('Custom.Deposit.bankName')
-                                            }}</text><text class="content">{{ WireTransferAccount.bankName
+                                                    }}</text><text class="content">{{ WireTransferAccount.bankName
                                                         ||
                                                         '--'
                                                     }}</text></view>
@@ -113,7 +113,7 @@
                                                         WireTransferAccount.bankCardNum || '--'
                                                     }}</text></view>
                                             <view class="row"><text class="label">{{ t('Custom.Deposit.bankAddr')
-                                            }}</text><text class="content">{{ WireTransferAccount.bankAddr
+                                                    }}</text><text class="content">{{ WireTransferAccount.bankAddr
                                                         ||
                                                         '--'
                                                     }}</text></view>
@@ -123,7 +123,7 @@
                                                         WireTransferAccount.swiftCode || '--'
                                                     }}</text></view>
                                             <view class="row"><text class="label">{{ t('Custom.Deposit.bankCode')
-                                            }}</text><text class="content">{{ WireTransferAccount.bankCode
+                                                    }}</text><text class="content">{{ WireTransferAccount.bankCode
                                                         ||
                                                         '--'
                                                     }}</text></view>
@@ -151,7 +151,7 @@
                                                         + '-' +
                                                         WireTransferAccount.type }}</text></view>
                                             <view class="row"><text class="label">{{ t('Custom.Withdraw.Title6')
-                                            }}</text><text class="content">{{ WireTransferAccount.address ||
+                                                    }}</text><text class="content">{{ WireTransferAccount.address ||
                                                         '--'
                                                     }}</text></view>
                                             <view class="row"><text class="label">QR Code</text>
@@ -246,16 +246,16 @@
                                                     <checkbox :checked="params.agree4"
                                                         @click="params.agree4 = !params.agree4" />
                                                     <text>{{ t('news_add_field1.activitiesNZ.itemDeposit1')
-                                                    }}</text>
+                                                        }}</text>
                                                 </label>
                                                 <view style="line-height: 1.5; font-size: 14px">
                                                     <text>{{ t('news_add_field1.activitiesNZ.itemDeposit2')
-                                                    }}</text>
+                                                        }}</text>
                                                     <text class="clause crm-cursor" @click="dialogClauseNZ = true">{{
                                                         t('news_add_field1.activitiesNZ.itemDeposit3')
-                                                    }}</text>
+                                                        }}</text>
                                                     <text>{{ t('news_add_field1.activitiesNZ.itemDeposit4')
-                                                    }}</text>
+                                                        }}</text>
                                                 </view>
                                             </uni-forms-item>
 
@@ -268,15 +268,15 @@
                                                     <checkbox :checked="params.agree5"
                                                         @click="params.agree5 = !params.agree5" />
                                                     <text>{{ t('news_add_field1.activitiesNZTwo.itemDeposit1')
-                                                    }}</text>
+                                                        }}</text>
                                                 </label>
                                                 <view style="line-height: 1.5; font-size: 14px">
                                                     <text>{{ t('news_add_field1.activitiesNZTwo.itemDeposit2')
-                                                    }}</text>
+                                                        }}</text>
                                                     <text class="clause crm-cursor" @click="dialogClauseNZTwo = true">{{
                                                         t('news_add_field1.activitiesNZTwo.itemDeposit3') }}</text>
                                                     <text>{{ t('news_add_field1.activitiesNZTwo.itemDeposit4')
-                                                    }}</text>
+                                                        }}</text>
                                                 </view>
                                             </uni-forms-item>
 
@@ -360,7 +360,7 @@
                                     </view>
                                 </template>
                                 <button class="s-btn" type="primary" @click="submitConfirm">{{ t('Btn.Submit')
-                                }}</button>
+                                    }}</button>
                             </uni-forms>
                         </view>
                     </view>
@@ -448,7 +448,6 @@ import VietnamNoticePopup from './components/VietnamNoticePopup.vue'
 import NewYear24Popup from './components/NewYear24Popup.vue'
 // 假设原有导入路径保持不变
 import tool from "@/global/tool"
-import { object } from 'uview-plus/libs/function/test'
 // import { createUploadRequest } from "@/lib/upload"
 // 常量
 const countries = [
@@ -1919,6 +1918,9 @@ watch(isStep3, async (newVal) => {
 watch(loginValue, (login) => {
     if (login) {
         step3.value = true
+        get23nianzhongTwoLogin(login);
+        getActivityExtensionGiveLogin(login);
+        getActivityExtensionGiveLoginJoin(login);
     }
 })
 watch(() => params.amount, (newVal) => {

+ 8 - 3
pages/customer/wallet-transfer.vue

@@ -57,7 +57,7 @@
 
                                 <view class="form-row">
                                     <button class="s-btn reselect" type="primary" @click="toTransfer">{{ t('Btn.Submit')
-                                    }}</button>
+                                        }}</button>
                                 </view>
                             </uni-forms>
                         </view>
@@ -110,9 +110,14 @@ const groupTypeName = (type) => {
     return ''
 }
 
+// 单位类型
+function groupCurrency(type) {
+    const map = { GBP: ': £', USD: ': $', EUR: ': €', USC: ': ¢' }
+    return map[type] || ': $'
+}
 const toOptionsDisplay = computed(() => {
     return toOptions.value.map(item => ({
-        text: `${item.login} - ${item.platform} - ${groupTypeName(item.type)}`,
+        text: `${item.login} - ${groupTypeName(item.type)} - ${t('Custom.Deposit.AvailableBalance')}${groupCurrency(item.currency)}${item.balance}`,
         value: item.login
     }))
 })
@@ -149,7 +154,7 @@ const rules = {
 }
 const amountErrorMessage = ref('')
 const setAllAmount = () => {
-    form.amount = walletbalance.value
+    form.amount = walletbalance.value.toFixed(2)
     validateAmount()
 }
 function validateAmount() {

+ 3 - 6
pages/customer/withdrawal-select.vue

@@ -1,6 +1,6 @@
 <template>
   <cwg-page-wrapper class="create-page" :isHeaderFixed="true">
-    <cwg-header :title="t('Custom.Withdraw.Title')" />
+    <cwg-header :title="t('Home.page_customer.item3')" />
     <view class="custom-withdraw">
       <!-- 步骤1:选择账户 -->
       <view class="box box-step1">
@@ -415,7 +415,6 @@ const dialogCheckTip = ref(false)
 const isChannel = ref(true)
 const pictLoading = ref(false)
 const tableData = reactive({
-
   Digital_Currency: [],
   China_UnionPay: [],
   Electronic_Wallet: [],
@@ -425,22 +424,20 @@ const tableData = reactive({
   Ucard_Wallet: [],
 })
 //通道table-选择前后
-const activeTab = ref(1)
+const activeTab = ref(6)
 // 🔥 自动过滤掉空数据的 tab
 const tabsConfig = computed(() => {
-
   const allTabs = [
+    { text: t('card.title'), value: 6, type: 'Ucard_Wallet' },
     { text: t('Custom.Deposit.Channel3'), value: 1, type: 'Digital_Currency' },
     { text: t('Custom.Deposit.Channel2'), value: 2, type: 'China_UnionPay' },
     { text: t('Custom.Deposit.Channel4'), value: 3, type: 'Electronic_Wallet' },
     { text: t('Custom.Deposit.Channel1'), value: 4, type: 'International_Transfer' },
     { text: t('PersonalManagement.Label.CreditCard'), value: 5, type: 'CHANNEL_TYPE_CARD' },
-    { text: t('card.title'), value: 6, type: 'Ucard_Wallet' },
     { text: t('Label.Ali'), value: 7, type: 'CHANNEL_TYPE_ALI_WALLET' },
   ]
   // ✅ 只保留有数据的 tab
   return allTabs.filter(tab => {
-    console.log(tableData[tab.type], tab.type);
     return tableData[tab.type]?.length > 0
   })
 })

+ 23 - 12
pages/customer/withdrawal.vue

@@ -1,6 +1,6 @@
 <template>
   <cwg-page-wrapper class="create-page" :isHeaderFixed="true">
-    <cwg-header :title="t('Custom.Withdraw.Title')" />
+    <cwg-header :title="t('Home.page_customer.item3')" />
 
     <uni-loading v-if="loading" />
     <view class="custom-deposit-container" v-else>
@@ -1710,35 +1710,46 @@ const setAllAmount = () => {
 }
 const allTabs = computed(() => {
   return {
+    "Ucard_Wallet": t('card.title'),
     "Digital_Currency": t('Custom.Deposit.Channel3'),
     "China_UnionPay": t('Custom.Deposit.Channel2'),
     "Electronic_Wallet": t('Custom.Deposit.Channel4'),
     "International_Transfer": t('Custom.Deposit.Channel1'),
     "CHANNEL_TYPE_CARD": t('PersonalManagement.Label.CreditCard'),
-    "Ucard_Wallet": t('card.title'),
     "CHANNEL_TYPE_ALI_WALLET": t('Label.Ali'),
   }
 })
+
+// 固定顺序数组
+const tabOrder = [
+  "Ucard_Wallet",
+  "Digital_Currency",
+  "China_UnionPay",
+  "Electronic_Wallet",
+  "International_Transfer",
+  "CHANNEL_TYPE_CARD",
+  "CHANNEL_TYPE_ALI_WALLET"
+]
+
 function formatChannels(data) {
   const result = []
-  // 遍历每个分类
-  for (const key in data) {
+  // 按固定顺序遍历
+  for (const key of tabOrder) {
     const list = data[key] || []
-    // 插入分类标题(禁用项)
     if (list.length) {
       result.push({
         text: allTabs.value[key],
         value: key,
         disable: true
       })
-    }
-    list.forEach(item => {
-      result.push({
-        ...item,
-        text: item.name,
-        value: item.code
+      list.forEach(item => {
+        result.push({
+          ...item,
+          text: item.name,
+          value: item.code
+        })
       })
-    })
+    }
   }
   return result
 }

+ 6 - 5
pages/ib/agent-transfer.vue

@@ -75,7 +75,7 @@
                                 <!-- 20%赠金-年中赠金 -->
                                 <view class="form-row" v-if="tableData4TwoFlag">
                                     <view class="form-col-full">
-                                        <uni-forms-item class="agree" name="agree5">
+                                        <uni-forms-item class="agree">
                                             <view class="agree-content">
                                                 <checkbox :checked="form.agree5" @click="form.agree5 = !form.agree5" />
                                                 <view class="agree-text">
@@ -86,8 +86,9 @@
                                         </uni-forms-item>
                                         <view class="agree-detail">
                                             <text>{{ t('news_add_field1.activitiesNZTwo.itemDeposit2') }}</text>
-                                            <text class="clause" @click="dialogClauseNZTwo = true">{{
-                                                t('news_add_field1.activitiesNZTwo.itemDeposit3') }}</text>
+                                            <text class="clause crm-cursor" style="text-decoration: underline;"
+                                                @click="dialogClauseNZTwo = true">{{
+                                                    t('news_add_field1.activitiesNZTwo.itemDeposit3') }}</text>
                                             <text>{{ t('news_add_field1.activitiesNZTwo.itemDeposit4') }}</text>
                                         </view>
                                     </view>
@@ -96,7 +97,7 @@
                                 <!-- 赠送活动 -->
                                 <view class="form-row" v-if="tableDataNewListFlag">
                                     <view class="form-col-full">
-                                        <uni-forms-item class="agree" name="agree6">
+                                        <uni-forms-item class="agree">
                                             <view class="agree-content">
                                                 <checkbox :checked="form.agree6" @click="form.agree6 = !form.agree6" />
                                                 <view class="agree-text">
@@ -383,7 +384,7 @@ const withdrawDisplayList = computed(() => {
 // 转入账户列表
 const depositDisplayList = computed(() => {
     return toOptions.value.map(item => ({
-        text: `${item.login} - ${item.cId || '--'} - ${groupTypeName(item.type)} - ${t('Custom.Deposit.AvailableBalance')}${groupCurrency(item.currency)}${item.balance}`,
+        text: `${item.login} - ${groupTypeName(item.type)} - ${t('Custom.Deposit.AvailableBalance')}${groupCurrency(item.currency)}${item.balance}`,
         value: item.login
     }))
 })

+ 1 - 1
pages/ib/recording.vue

@@ -78,7 +78,7 @@
     { text: t('Ib.Recording.MaidAdjust'), value: 5 },
     { text: t('Ib.Recording.BelongingAdjust'), value: 6 },
     { text: t('Ib.Recording.CommissionAllocation'), value: 7 },
-    { text: t('Custom.Withdraw.Title'), value: 8 },
+    { text: t('Home.page_ib.item8'), value: 8 },
     { text: t('Ib.Recording.MamHangUndo'), value: 9 },
     { text: t('Home.page_ib.item9'), value: 10 },
     { text: t('Ib.PammManager.title2'), value: 11 },

+ 174 - 107
pages/ib/transfer.vue

@@ -12,13 +12,17 @@
                     <view class="b-card">
                         <view class="card-top">
                             <view class="tit">
-                                <text v-t="'Label.AgentNumber'"></text>
-                                <text>:{{ ibInfo.ibNo }}</text>
+                                <text>
+                                    <text v-t="'Label.AgentNumber'"></text>
+                                    :{{ ibInfo.ibNo }}
+                                </text>
                                 <text class="balance-kg"></text>
-                                <text v-t="'Label.CommissionBalance'"></text>
-                                <text>:$</text>
-                                <text>{{ balanceInt }}</text>
-                                <text>.{{ balanceDecimal }}</text>
+                                <text>
+                                    <text v-t="'Label.CommissionBalance'"></text>
+                                    <text>:$</text>
+                                    <text>{{ balanceInt }}</text>
+                                    <text>.{{ balanceDecimal }}</text>
+                                </text>
                             </view>
                             <uni-forms ref="formRef" :model="form" :rules="rules" label-width="300" label-position="top"
                                 validate-trigger="submit">
@@ -44,54 +48,60 @@
                                         <view class="btn" v-t="'State.All'" @click="setAllAmount"></view>
                                     </view>
                                 </view>
+                                <template v-if="activeTab != 3">
 
-                                <!-- 20%赠金-年中赠金 -->
-                                <view class="form-row" v-if="tableData4TwoFlag">
-                                    <uni-forms-item class="agree" name="agree5">
-                                        <checkbox-group :value="form.agree5 ? ['1'] : []" @change="onAgree5Change">
-                                            <label class="checkbox">
-                                                <checkbox value="1" :checked="form.agree5" />
-                                                <text>{{ t('news_add_field1.activitiesNZTwo.itemDeposit1')
-                                                    }}</text>
-
-                                                <view style="margin-top: 10px;line-height: 1.5; font-size: 14px">
-                                                    <text class="crm-cursor" @click.stop="dialogCheckTip = true">{{
-                                                        t('Custom.Withdraw.Des') }}</text>
-                                                    <text>{{ t('news_add_field1.activitiesNZTwo.itemDeposit2')
-                                                    }}</text>
-                                                    <text class="clause crm-cursor" style="text-decoration: underline;"
-                                                        @click.stop="dialogClauseNZTwo = true">{{
-                                                            t('news_add_field1.activitiesNZTwo.itemDeposit3') }}</text>
-                                                    <text>{{ t('news_add_field1.activitiesNZTwo.itemDeposit4')
+                                    <!-- 20%赠金-年中赠金 -->
+                                    <view class="form-row" v-if="tableData4TwoFlag">
+                                        <uni-forms-item class="agree">
+                                            <checkbox-group :value="form.agree5 ? ['1'] : []" @change="onAgree5Change">
+                                                <label class="checkbox">
+                                                    <checkbox value="1" :checked="form.agree5" />
+                                                    <text>{{ t('news_add_field1.activitiesNZTwo.itemDeposit1')
                                                     }}</text>
-                                                </view>
 
-                                            </label>
-                                        </checkbox-group>
-                                    </uni-forms-item>
-                                </view>
-
-                                <!-- 赠送活动 -->
-                                <view class="form-row" v-if="tableDataNewListFlag">
-                                    <view class="form-col-full">
-                                        <uni-forms-item name="agree6">
-                                            <checkbox-group :value="form.agree6 ? ['1'] : []" @change="onAgree6Change">
-                                                <label class="checkbox">
-                                                    <checkbox value="1" :checked="form.agree6" />
-                                                    <text @click.stop="dialogClauseNewList = true"
-                                                        style="text-decoration: underline;">{{
-                                                            tableDataNewList.title }}</text>
-                                                    <view style="margin-top: 10px; line-height: 1.5; font-size: 14px">
-                                                        <text> {{
-                                                            t('news_add_field1.activitiesNewList.item1') }}{{
-                                                                t('news_add_field1.activitiesNewList.item2') }}</text>
+                                                    <view style="margin-top: 10px;line-height: 1.5; font-size: 14px">
+                                                        <text class="crm-cursor" @click.stop="dialogCheckTip = true">{{
+                                                            t('Custom.Withdraw.Des') }}</text>
+                                                        <text>{{ t('news_add_field1.activitiesNZTwo.itemDeposit2')
+                                                        }}</text>
+                                                        <text class="clause crm-cursor"
+                                                            style="text-decoration: underline;"
+                                                            @click.stop="dialogClauseNZTwo = true">{{
+                                                                t('news_add_field1.activitiesNZTwo.itemDeposit3') }}</text>
+                                                        <text>{{ t('news_add_field1.activitiesNZTwo.itemDeposit4')
+                                                        }}</text>
                                                     </view>
 
                                                 </label>
                                             </checkbox-group>
                                         </uni-forms-item>
                                     </view>
-                                </view>
+
+                                    <!-- 赠送活动 -->
+                                    <view class="form-row" v-if="tableDataNewListFlag">
+                                        <view class="form-col-full">
+                                            <uni-forms-item name="agree6">
+                                                <checkbox-group :value="form.agree6 ? ['1'] : []"
+                                                    @change="onAgree6Change">
+                                                    <label class="checkbox">
+                                                        <checkbox value="1" :checked="form.agree6" />
+                                                        <text @click.stop="dialogClauseNewList = true"
+                                                            style="text-decoration: underline;">{{
+                                                                tableDataNewList.title }}</text>
+                                                        <view
+                                                            style="margin-top: 10px; line-height: 1.5; font-size: 14px">
+                                                            <text> {{
+                                                                t('news_add_field1.activitiesNewList.item1') }}{{
+                                                                    t('news_add_field1.activitiesNewList.item2') }}</text>
+                                                        </view>
+
+                                                    </label>
+                                                </checkbox-group>
+                                            </uni-forms-item>
+                                        </view>
+                                    </view>
+                                </template>
+
 
                                 <view class="form-row">
                                     <button class="s-btn reselect" type="primary" @click="toTransfer">{{ locale === 'es'
@@ -136,6 +146,7 @@ import BonusAgreementPopup from './components/BonusAgreementPopup.vue'
 import { useFilters } from '@/composables/useFilters'
 const { numberFormat } = useFilters()
 const userStore = useUserStore()
+import { isAfterJuly28 } from '@/utils/dateUtils'
 const ibInfo = computed(() => {
     return userStore?.userInfo?.ibInfo || {}
 })
@@ -149,17 +160,18 @@ const tabsConfig = computed(() => [
 ])
 const title = computed(() => tabsConfig.value.find(item => item.value == activeTab.value)?.text || '')
 
-const toLabel = computed(() => activeTab.value == '1' || activeTab.value == '2' ? t('Label.IntoAccount') : t('Ib.Transfer.IbAccountTransfer'))
+const toLabel = computed(() => activeTab.value == '1' || activeTab.value == '2' ? t('Label.IntoAccount') : t('Ib.Transfer.IntoAgentAccount'))
 
 // 获取全局实例(用于访问 Session、$pigeon 等)
 const { proxy } = getCurrentInstance()
 const $pigeon = proxy?.$pigeon
-
+import { useConfirm } from '@/hooks/useConfirm'
+const confirm = useConfirm()
 // 响应式数据
 const loginValue = ref('')
 const flag = ref(false)
 const RES = ref('') // 弹窗响应信息
-const giveLoginJoin = ref('')
+const giveLoginJoin = ref(null)
 const step2 = ref(false)
 const amountLimits = reactive({
     minAmount: '',
@@ -334,12 +346,36 @@ const getInfoStatus5 = computed(() => {
     }
     return false
 })
+// 单位类型
+function groupCurrency(type) {
+    const map = { GBP: ': £', USD: ': $', EUR: ': €', USC: ': ¢' }
+    return map[type] || ': $'
+}
+// 单位类型
+function groupCurrency1(type) {
+    const map = { GBP: '£', USD: '$', EUR: '€', USC: '¢' }
+    return map[type] || '$'
+}
 
+
+// 账户类型
+function groupTypeName(type) {
+    const typeMap = {
+        '1': t('AccountType.ClassicAccount'),
+        '2': t('AccountType.SeniorAccount'),
+        '3': isAfterJuly28() ? '--' : t('AccountType.AgencyAccount'),
+        '5': t('AccountType.SpeedAccount'),
+        '6': t('AccountType.SpeedAccount'),
+        '7': t('AccountType.StandardAccount'),
+        '8': t('AccountType.CentAccount')
+    }
+    return typeMap[type] || ''
+}
 // 转入账户列表
 const depositDisplayList = computed(() => {
     if (activeTab.value != 3) {
         return toInfo.value.map(item => ({
-            text: [item.login, item.platform, item.cId, item.balance, item.groupTypeName].filter(field => field !== null && field !== undefined && field !== '').join('-'),
+            text: `${item.login} - ${groupTypeName(item.type)} - ${t('Custom.Deposit.AvailableBalance')}${groupCurrency(item.currency)}${item.balance}`,
             value: item.login,
             disabled: item.status
         }))
@@ -561,8 +597,7 @@ watch(activeTab, (newVal) => {
         } else {
             ransferToInfo()
         }
-        form.to = ''
-        form.amount = ''
+        resetForm()
     }
 })
 // 
@@ -580,66 +615,98 @@ watch(() => form.to, (newVal) => {
     }
 })
 // 监听 agree6 变化
-watch(() => form.agree6, (newVal) => {
-    if (newVal && giveLoginJoin.value?.flag === false) {
-        let tips = ''
-        if (giveLoginJoin.value.promptType == 1) {
-            tips = t('surplusList.item10')
-        } else {
-            tips = t('surplusList.item11')
-        }
-
-        return
-        // 活动相关方法,后续需要在调整
-        if (giveLoginJoin.value.activityCategory == 1) {
-            $pigeon?.MessageConfirm(
-                tips,
-                t('Msg.SystemPrompt'),
-                t('surplusList.item12'),
-                t('Home.msg.item3'),
-                () => {
-                    $pigeon?.MessageConfirm(
-                        t('surplusList.item13'),
-                        t('Msg.SystemPrompt'),
-                        t('Btn.Confirm'),
-                        t('Btn.Cancel'),
-                        async () => {
-                            try {
-                                const res = await activityApi.ActivityGiveCancel({
-                                    login: loginValue.value,
-                                })
-                                if (res.code == Code.StatusOK) {
-                                    $pigeon?.MessageOK(res.msg || t('Msg.Success'))
-                                } else {
-                                    uni.showToast({ title: res.msg, icon: 'none' })
-                                }
-                            } catch (error) {
-                                $pigeon?.MessageError(t('Msg.Fail'))
-                            }
-                        },
-                        () => {
-                            form.agree6 = false
-                        }
-                    )
-                },
-                () => {
-                    form.agree6 = false
+watch(
+    () => form.agree6,
+    async (newVal) => {
+        if (newVal && giveLoginJoin.value?.flag === false) {
+            let tips = "";
+            if (giveLoginJoin.value.promptType == 1) {
+                tips = t("surplusList.item10");
+            } else {
+                tips = t("surplusList.item11");
+            }
+            // 根据 activityCategory 显示不同的操作按钮
+            if (giveLoginJoin.value.activityCategory == 1) {
+                try {
+                    // 第一次弹窗:取消活动
+                    await confirm({
+                        title: t("Msg.SystemPrompt"),
+                        content: tips,
+                        confirmText: t("surplusList.item12"),
+                        cancelText: t("Home.msg.item3"),
+                    });
+
+                    await new Promise((resolve) => {
+                        setTimeout(() => {
+                            resolve(true);
+                        }, 300);
+                    });
+                    await confirm({
+                        title: t("Msg.SystemPrompt"),
+                        content: t("surplusList.item13"),
+                        confirmText: t("Btn.Confirm"),
+                        cancelText: t("Btn.Cancel"),
+                    });
+                    // 调用取消接口
+                    const res = await activityApi.ActivityGiveCancel({
+                        login: loginValue.value,
+                    });
+
+                    if (res.code == Code.StatusOK) {
+                        MessageOK(res.msg || t("Msg.Success"));
+                    } else {
+                        MessageError(res.msg);
+                    }
+                } catch (error) {
+                    // 任意一步取消 → 取消勾选
+                    form.agree6 = false;
                 }
-            )
-        } else {
-            $pigeon?.MessageConfirm(
-                tips,
-                t('Msg.SystemPrompt'),
-                t('Btn.Confirm'),
-                t('Btn.Cancel'),
-                () => { },
-                () => {
-                    form.agree6 = false
+            } else if (giveLoginJoin.value.activityCategory == 2) {
+                try {
+                    // 第一次弹窗:跳转
+                    await confirm({
+                        title: t("Msg.SystemPrompt"),
+                        content: tips,
+                        confirmText: "跳转",
+                        cancelText: t("Btn.Cancel"),
+                        showCancelButton: false,
+                    });
+                    await new Promise((resolve) => {
+                        setTimeout(() => {
+                            resolve(true);
+                        }, 300);
+                    });
+                    await confirm({
+                        title: t("Msg.SystemPrompt"),
+                        content: "是否跳转到对应活动取消",
+                        confirmText: t("Btn.Confirm"),
+                        cancelText: t("Btn.Cancel"),
+                    });
+
+                    // 跳转到月盈活动
+                    uni.navigateTo({
+                        path: "/pages/activity/monthly-list",
+                    });
+                } catch (error) {
+                    // 取消 → 取消勾选
+                    form.agree6 = false;
                 }
-            )
+            } else {
+                // 默认情况
+                try {
+                    await confirm({
+                        title: t("Msg.SystemPrompt"),
+                        content: tips,
+                        confirmText: t("Btn.Confirm"),
+                        cancelText: t("Btn.Cancel"),
+                    });
+                } catch (error) {
+                    form.agree6 = false;
+                }
+            }
         }
     }
-})
+);
 onMounted(() => {
     if (getInfoStatus5.value) {
         InfoStatus5.value = true

+ 4 - 4
pages/ib/withdraw-select.vue

@@ -483,17 +483,17 @@ const tableData = reactive({
 })
 
 //通道table-选择前后
-const activeTab = ref(1)
+const activeTab = ref(4)
 // 🔥 自动过滤掉空数据的 tab
 const tabsConfig = computed(() => {
     const allTabs = [
-        { text: t('Custom.Deposit.Channel3'), value: 1, type: 'Digital_Currency' },
+        { text: t('Custom.Deposit.Channel1'), value: 4, type: 'International_Transfer' },
         { text: t('Custom.Deposit.Channel2'), value: 2, type: 'China_UnionPay' },
+        { text: t('Custom.Deposit.Channel3'), value: 1, type: 'Digital_Currency' },
         { text: t('Custom.Deposit.Channel4'), value: 3, type: 'Electronic_Wallet' },
-        { text: t('Custom.Deposit.Channel1'), value: 4, type: 'International_Transfer' },
         { text: t('PersonalManagement.Label.CreditCard'), value: 5, type: 'CHANNEL_TYPE_CARD' },
-        { text: t('card.title'), value: 6, type: 'UCARD_WALLET' },
         { text: t('Label.Ali'), value: 7, type: 'CHANNEL_TYPE_ALI_WALLET' },
+        { text: t('card.title'), value: 6, type: 'UCARD_WALLET' },
     ]
     // ✅ 只保留有数据的 tab
     return allTabs.filter(tab => {

+ 34 - 17
pages/ib/withdraw.vue

@@ -10,7 +10,7 @@
                     <view class="b-card">
                         <view class="card-top">
                             <text class="tit">{{ t('Custom.Deposit.Title22')
-                            }}</text>
+                                }}</text>
                             <cwg-combox :clearable="false" v-model:value="channelId" :options="channelListOptions"
                                 :placeholder="t('placeholder.choose')">
                             </cwg-combox>
@@ -116,7 +116,7 @@
 
                                     <!-- 银行卡/电汇/信用卡区域 -->
                                     <view class="card-tit"
-                                        v-if="isStep3 && (channelData.type == 'BANK_TELEGRAPHIC' || channelData.type == 'BANK' || channelData.type == 'CHANNEL_TYPE_CARD')">
+                                        v-if="(channelData.type == 'BANK_TELEGRAPHIC' || channelData.type == 'BANK' || channelData.type == 'CHANNEL_TYPE_CARD')">
                                         <div
                                             style="display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap;">
                                             <view class="tit">
@@ -133,7 +133,7 @@
                                                 </text>
                                                 <text v-if="channelData.type == 'BANK'">{{
                                                     t('Custom.Withdraw.addBank')
-                                                }}</text>
+                                                    }}</text>
                                                 <text v-if="channelData.type == 'BANK'" class="add-btn crm-cursor"
                                                     @click="openAddBankCard('add_bankCard')">
                                                     {{ t('Custom.Withdraw.addBank1') }}
@@ -280,7 +280,7 @@
                                     <view v-if="channelData.type != 'BANK_TELEGRAPHIC'">
                                         <view class="tit">
                                             <text>{{ t('Custom.Withdraw.Title3') + '(' + channelData.currency + ')'
-                                            }}</text>
+                                                }}</text>
                                         </view>
                                     </view>
                                     <view v-if="channelData.type != 'BANK_TELEGRAPHIC'" class="amount-box amount-box1">
@@ -1450,36 +1450,53 @@ const channelId = ref(null)
 const loading = ref(false)
 const allTabs = computed(() => {
     return {
-        "Digital_Currency": t('Custom.Deposit.Channel3'),
+        "International_Transfer": t('Custom.Deposit.Channel1'),
         "China_UnionPay": t('Custom.Deposit.Channel2'),
+        "Digital_Currency": t('Custom.Deposit.Channel3'),
         "Electronic_Wallet": t('Custom.Deposit.Channel4'),
-        "International_Transfer": t('Custom.Deposit.Channel1'),
         "CHANNEL_TYPE_CARD": t('PersonalManagement.Label.CreditCard'),
-        "UCARD_WALLET": t('card.title'),
         "CHANNEL_TYPE_ALI_WALLET": t('Label.Ali'),
+        "UCARD_WALLET": t('card.title'),
     }
 })
+
+// 固定顺序(和上面 allTabs 完全一致)
+const tabOrder = [
+    "International_Transfer",
+    "China_UnionPay",
+    "Digital_Currency",
+    "Electronic_Wallet",
+    "CHANNEL_TYPE_CARD",
+    "CHANNEL_TYPE_ALI_WALLET",
+    "UCARD_WALLET"
+]
+
 function formatChannels(data) {
     const result = []
-    // 遍历每个分类
-    for (const key in data) {
+
+    // 按照固定顺序遍历,保证顺序不乱
+    for (const key of tabOrder) {
         const list = data[key] || []
-        // 插入分类标题(禁用项)
+
         if (list.length) {
+            // 加入分类标题
             result.push({
                 text: allTabs.value[key],
                 value: key,
                 disable: true
             })
-        }
-        list.forEach(item => {
-            result.push({
-                ...item,
-                text: item.name,
-                value: item.code
+
+            // 加入子项
+            list.forEach(item => {
+                result.push({
+                    ...item,
+                    text: item.name,
+                    value: item.code
+                })
             })
-        })
+        }
     }
+
     return result
 }
 // ---------- 生命周期 ----------