zhb 1 місяць тому
батько
коміт
4a0bb935fe
64 змінених файлів з 1296 додано та 1275 видалено
  1. 1 1
      App.vue
  2. 382 396
      components/AddBankDialog.vue
  3. 4 4
      components/cwg-complex-search.vue
  4. 4 4
      components/cwg-detail-popup.vue
  5. 1 1
      components/cwg-dropdown.vue
  6. 1 1
      components/cwg-empty-state.vue
  7. 3 3
      components/cwg-file-picker-wrapper.vue
  8. 3 3
      components/cwg-file-picker.vue
  9. 2 2
      components/cwg-header.vue
  10. 4 4
      components/cwg-sidebar.vue
  11. 11 8
      components/cwg-tabel.vue
  12. 1 1
      components/cwg-tabs.vue
  13. 15 15
      pages/activities/components/ActivityDialogs.vue
  14. 9 9
      pages/activities/content.vue
  15. 9 9
      pages/activities/detail.vue
  16. 6 6
      pages/activities/index.vue
  17. 1 1
      pages/analytics/components/List.vue
  18. 1 1
      pages/analytics/detail.vue
  19. 3 3
      pages/common/download.vue
  20. 1 1
      pages/customer/account-select.vue
  21. 7 7
      pages/customer/components/AccountCardDesktop.vue
  22. 15 15
      pages/customer/components/AccountCardMobile.vue
  23. 2 2
      pages/customer/components/AccountList.vue
  24. 1 1
      pages/customer/components/ActivitiesSwiper.vue
  25. 1 1
      pages/customer/components/AmountWallet.vue
  26. 2 2
      pages/customer/components/TerminalChangePasswordDialog.vue
  27. 2 2
      pages/customer/components/TerminalDialog.vue
  28. 5 5
      pages/customer/components/TerminalNickNameDialog.vue
  29. 1 1
      pages/customer/components/TransactionCharts.vue
  30. 12 12
      pages/customer/deposit-select.vue
  31. 19 19
      pages/customer/deposit.vue
  32. 3 3
      pages/customer/style.scss
  33. 2 2
      pages/customer/transfer.vue
  34. 3 3
      pages/customer/wallet-transfer.vue
  35. 5 5
      pages/customer/withdrawal-select.vue
  36. 5 5
      pages/customer/withdrawal.vue
  37. 1 1
      pages/follow/account-management.vue
  38. 2 2
      pages/follow/follow-list.vue
  39. 1 1
      pages/follow/index.vue
  40. 19 19
      pages/follow/subscribe-list.vue
  41. 3 3
      pages/follow/trading-center.vue
  42. 1 1
      pages/follow/trading-management.vue
  43. 3 3
      pages/follow/transfer.vue
  44. 2 2
      pages/ib/agent-transfer.vue
  45. 526 560
      pages/ib/linkList.vue
  46. 1 1
      pages/ib/promotion.vue
  47. 2 2
      pages/ib/settingPammManager.vue
  48. 4 4
      pages/ib/transfer.vue
  49. 6 6
      pages/ib/withdraw-select.vue
  50. 6 6
      pages/ib/withdraw.vue
  51. 7 7
      pages/login/index.vue
  52. 10 10
      pages/login/regist.vue
  53. 2 2
      pages/login/reset.vue
  54. 1 1
      pages/mine/components/AddFileDialog.vue
  55. 5 5
      pages/mine/components/BankInfoTab.vue
  56. 3 3
      pages/mine/components/BankItem.vue
  57. 3 3
      pages/mine/components/CardAuthDialog.vue
  58. 2 2
      pages/mine/components/KycAuthDialog.vue
  59. 2 2
      pages/mine/improveImmediately.vue
  60. 1 1
      pages/mine/info.vue
  61. 130 65
      static/scss/global/global.scss
  62. 3 2
      uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue
  63. 1 1
      uni_modules/x-dropdown/components/x-dropdown/x-dropdown.vue
  64. 2 2
      windows/left-window.vue

+ 1 - 1
App.vue

@@ -69,7 +69,7 @@ onLaunch((options) => {
 	// updateRoute();
 	// checkUpdate()
 	// 调用初始化
-	// initTheme()
+	initTheme()
 })
 
 watch(locale, () => {

+ 382 - 396
components/AddBankDialog.vue

@@ -8,27 +8,19 @@
         </view>
       </view>
       <uni-forms ref="formRef" :rules="rules" :model="form" labelWidth="200" label-position="top"
-                 validate-trigger="submit" class="crm-form">
+        validate-trigger="submit" class="crm-form">
         <uni-row class="form-row uni-row1">
           <template v-if="form.type === 1">
             <uni-col :xs="24" :sm="24" :md="16" :lg="16" :xl="16">
               <uni-forms-item>
-                <cwg-file-picker-wrapper
-                  v-model:value="form.bankFront"
-                  :limit="1"
-                  uploadUrl="/custom/bank/upload"
-                  :baseUrl="updateUrl"
-                  :imageWidth="200"
-                  :imageHeight="200"
-                  uploadText="点击上传"
-                  replaceText="点击替换"
-                  noImageText="暂无图片"
-                  @update:modelValue="(val) => handleFileUpdate(val, form, 'bankFront')" />
+                <cwg-file-picker-wrapper v-model:value="form.bankFront" :limit="1" uploadUrl="/custom/bank/upload"
+                  :baseUrl="updateUrl" :imageWidth="200" :imageHeight="200" uploadText="点击上传" replaceText="点击替换"
+                  noImageText="暂无图片" @update:modelValue="(val) => handleFileUpdate(val, form, 'bankFront')" />
               </uni-forms-item>
             </uni-col>
             <uni-col :xs="24" :sm="24" :md="8" :lg="8" :xl="8">
               <view class="qrcode">
-                <cwg-icon name="icon_mobile" :size="36"/>
+                <cwg-icon name="icon_mobile" :size="36" />
                 <view class="qr-code-wrapper">
                   <image v-if="mobile" :src="mobile" mode="aspectFit" class="qr-image" @click="previewImage" />
                   <view v-else class="image-slot">
@@ -40,34 +32,31 @@
             <uni-col :span="24">
               <view class="updatePrompt">
                 <text class="icon-tip">ⓘ</text>
-                <text>{{ t('Drawer.Content.UpdatePrompt')}}</text>
+                <text>{{ t('Drawer.Content.UpdatePrompt') }}</text>
               </view>
             </uni-col>
 
             <uni-col :xs="24">
               <uni-forms-item :label="t('PersonalManagement.Label.BankAccountName')">
                 <uni-easyinput disabled v-model="username"
-                               :placeholder="locale == 'es' ? 'Introduzca el nombre de la red' : t('placeholder.input')" />
+                  :placeholder="locale == 'es' ? 'Introduzca el nombre de la red' : t('placeholder.input')" />
               </uni-forms-item>
             </uni-col>
             <uni-col :xs="24">
               <uni-forms-item required :label="t('PersonalManagement.Label.BankName')" name="bankName">
-                <cwg-combox :clearable="false" :filterable="true" v-model:value="form.bankName"
-                            :options="bankOptions" :placeholder="t('placeholder.choose')"
-                />
+                <cwg-combox :clearable="false" :filterable="true" v-model:value="form.bankName" :options="bankOptions"
+                  :placeholder="t('placeholder.choose')" />
               </uni-forms-item>
             </uni-col>
             <uni-col :xs="24">
               <uni-forms-item required :label="t('PersonalManagement.Label.BankAccount')" name="bankCardNum">
-                <uni-easyinput :clearable="false" v-model="form.bankCardNum"
-                               :placeholder="t('placeholder.input')" />
+                <uni-easyinput :clearable="false" v-model="form.bankCardNum" :placeholder="t('placeholder.input')" />
               </uni-forms-item>
             </uni-col>
             <uni-col :xs="24">
               <uni-forms-item required :label="t('PersonalManagement.Label.AccountOpeningBranch')"
-                              name="bankBranchName">
-                <uni-easyinput :clearable="false" v-model="form.bankBranchName"
-                               :placeholder="t('placeholder.input')" />
+                name="bankBranchName">
+                <uni-easyinput :clearable="false" v-model="form.bankBranchName" :placeholder="t('placeholder.input')" />
               </uni-forms-item>
             </uni-col>
           </template>
@@ -75,15 +64,13 @@
             <!-- 区块链名称 -->
             <uni-col :xs="24">
               <uni-forms-item required name="addressName" :label="t('blockchain.item3')">
-                <uni-easyinput :clearable="false" v-model="form.addressName"
-                               :placeholder="t('placeholder.input')" />
+                <uni-easyinput :clearable="false" v-model="form.addressName" :placeholder="t('placeholder.input')" />
               </uni-forms-item>
             </uni-col>
             <!-- 钱包地址 -->
             <uni-col :xs="24">
               <uni-forms-item required name="address" :label="t('blockchain.item4')">
-                <uni-easyinput :clearable="false" v-model="form.address"
-                               :placeholder="t('placeholder.input')" />
+                <uni-easyinput :clearable="false" v-model="form.address" :placeholder="t('placeholder.input')" />
               </uni-forms-item>
             </uni-col>
           </template>
@@ -91,44 +78,43 @@
             <uni-col :xs="24">
               <uni-forms-item :label="t('PersonalManagement.Label.BankAccountName')">
                 <uni-easyinput :clearable="false" v-model="username" :disabled="true"
-                               :placeholder="locale == 'es' ? 'Introduzca el nombre de la red' : t('placeholder.input')" />
+                  :placeholder="locale == 'es' ? 'Introduzca el nombre de la red' : t('placeholder.input')" />
               </uni-forms-item>
             </uni-col>
             <uni-col :xs="24">
               <uni-forms-item required :label="t('PersonalManagement.Label.BankAccount')" name="bankCardNum">
                 <uni-easyinput :clearable="false" v-model="form.bankCardNum"
-                               :placeholder="locale == 'es' ? 'Introduzca la dirección de la billetera' : t('placeholder.input')" />
+                  :placeholder="locale == 'es' ? 'Introduzca la dirección de la billetera' : t('placeholder.input')" />
               </uni-forms-item>
             </uni-col>
             <uni-col :xs="24">
               <uni-forms-item required :label="t('PersonalManagement.Label.BankName')" name="bankName">
                 <uni-easyinput :clearable="false" v-model="form.bankName"
-                               :placeholder="locale == 'es' ? 'Introduzca el nombre del banco' : t('placeholder.input')" />
+                  :placeholder="locale == 'es' ? 'Introduzca el nombre del banco' : t('placeholder.input')" />
               </uni-forms-item>
             </uni-col>
             <uni-col :xs="24">
               <uni-forms-item required :label="t('PersonalManagement.Label.BankAddress')" name="bankAddr">
                 <uni-easyinput :clearable="false" v-model="form.bankAddr"
-                               :placeholder="locale == 'es' ? 'Introduzca la dirección del banco' : t('placeholder.input')" />
+                  :placeholder="locale == 'es' ? 'Introduzca la dirección del banco' : t('placeholder.input')" />
               </uni-forms-item>
             </uni-col>
             <uni-col :xs="24">
               <uni-forms-item required :label="t('PersonalManagement.Label.SwiftBIC')" name="swiftCode">
                 <uni-easyinput :clearable="false" v-model="form.swiftCode"
-                               :placeholder="locale == 'es' ? 'Introduzca el SWIFT/BIC' : t('placeholder.input')" />
+                  :placeholder="locale == 'es' ? 'Introduzca el SWIFT/BIC' : t('placeholder.input')" />
               </uni-forms-item>
             </uni-col>
             <uni-col :xs="24">
               <uni-forms-item required :label="t('PersonalManagement.Label.BankCode')" name="bankCode">
                 <uni-easyinput :clearable="false" v-model="form.bankCode"
-                               :placeholder="locale == 'es' ? 'Introduzca el código del banco' : t('placeholder.input')" />
+                  :placeholder="locale == 'es' ? 'Introduzca el código del banco' : t('placeholder.input')" />
               </uni-forms-item>
             </uni-col>
             <uni-col :xs="24">
-              <uni-forms-item
-                :label="locale == 'es' ? 'Número de sucursal (opcional)' : 'Account Agency NO'">
+              <uni-forms-item :label="locale == 'es' ? 'Número de sucursal (opcional)' : 'Account Agency NO'">
                 <uni-easyinput :clearable="false" v-model="form.agencyNo"
-                               :placeholder="locale == 'es' ? 'Introduzca el número de sucursal' : t('placeholder.input')" />
+                  :placeholder="locale == 'es' ? 'Introduzca el número de sucursal' : t('placeholder.input')" />
               </uni-forms-item>
             </uni-col>
           </template>
@@ -136,26 +122,25 @@
             <uni-col :xs="24">
               <uni-forms-item :label="t('PersonalManagement.Label.CreditCardAccountName')">
                 <uni-easyinput :clearable="false" v-model="username" :disabled="true"
-                               :placeholder="t('placeholder.input')" />
+                  :placeholder="t('placeholder.input')" />
               </uni-forms-item>
             </uni-col>
             <uni-col :xs="24">
               <uni-forms-item required :label="t('PersonalManagement.Label.CreditCardAccount')" name="bankCardNum">
                 <uni-easyinput :clearable="false" v-model="form.bankCardNum"
-                               :placeholder="locale == 'es' ? 'Introduzca el número de tarjeta' : t('placeholder.input')" />
+                  :placeholder="locale == 'es' ? 'Introduzca el número de tarjeta' : t('placeholder.input')" />
               </uni-forms-item>
             </uni-col>
             <uni-col :xs="24">
-              <uni-forms-item required :label="t('PersonalManagement.Label.ExpirationYear')"
-                              name="expiryYearMonth">
+              <uni-forms-item required :label="t('PersonalManagement.Label.ExpirationYear')" name="expiryYearMonth">
                 <uni-easyinput :clearable="false" v-model="form.expiryYearMonth"
-                               :placeholder="locale == 'es' ? 'Introduzca MM/AA' : t('placeholder.input')" />
+                  :placeholder="locale == 'es' ? 'Introduzca MM/AA' : t('placeholder.input')" />
               </uni-forms-item>
             </uni-col>
             <uni-col :xs="24">
               <uni-forms-item :label="t('CVV')">
                 <uni-easyinput :clearable="false" v-model="form.cvv"
-                               :placeholder="locale == 'es' ? 'Introduzca el CVV' : t('placeholder.input')" />
+                  :placeholder="locale == 'es' ? 'Introduzca el CVV' : t('placeholder.input')" />
               </uni-forms-item>
             </uni-col>
           </template>
@@ -175,398 +160,399 @@
 </template>
 
 <script setup lang="ts">
-  import { ref, nextTick, computed, onMounted } from 'vue'
-  import { useI18n } from 'vue-i18n'
-  import { personalApi } from '@/service/personal'
-  import useUserStore from '@/stores/use-user-store'
-  import config from '@/config'
-
-  const userStore = useUserStore()
-  const { t, locale } = useI18n()
-  const updateUrl = config.Host80
-  const typeMap = {
-    4: 'blockchain.item2',
-    1: 'PersonalManagement.Title.ChinaUnionPayCard',
-    2: 'PersonalManagement.Title.BankWireTransfer',
-    3: 'PersonalManagement.Label.CreditCard',
+import { ref, nextTick, computed, onMounted } from 'vue'
+import { useI18n } from 'vue-i18n'
+import { personalApi } from '@/service/personal'
+import useUserStore from '@/stores/use-user-store'
+import config from '@/config'
+
+const userStore = useUserStore()
+const { t, locale } = useI18n()
+const updateUrl = config.Host80
+const typeMap = {
+  4: 'blockchain.item2',
+  1: 'PersonalManagement.Title.ChinaUnionPayCard',
+  2: 'PersonalManagement.Title.BankWireTransfer',
+  3: 'PersonalManagement.Label.CreditCard',
+}
+const username = computed(() => {
+  let first = userStore?.userInfo?.customInfo.firstName
+  let middle = userStore?.userInfo?.customInfo.middle
+  let lastName = userStore?.userInfo?.customInfo.lastName
+  return (first ? first + ' ' : '') +
+    (middle ? middle + ' ' : '') +
+    (lastName ? lastName : '')
+})
+
+interface AddBankForm {
+  addressName: string;
+  address: string;
+  checkboxGroup: string[];
+}
+
+const hobbys = computed(() => {
+  let value = [
+    { value: 1, text: t('blockchain.item8') },
+  ]
+  switch (form.value.type) {
+    case 1:
+      value = [
+        { value: 1, text: t('PersonalManagement.Title.DefaultBank') },
+      ]
+      break
+    case 2:
+      value = [
+        { value: 1, text: t('PersonalManagement.Title.DefaultWire') },
+      ]
+      break
+    case 3:
+      value = [
+        { value: 1, text: t('PersonalManagement.Title.DefaultCredit') },
+      ]
+      break
+    case 4:
+      value = [
+        { value: 1, text: t('blockchain.item8') },
+      ]
+      break
   }
-  const username = computed(() => {
-    let first = userStore?.userInfo?.customInfo.firstName
-    let middle = userStore?.userInfo?.customInfo.middle
-    let lastName = userStore?.userInfo?.customInfo.lastName
-    return (first ? first + ' ' : '') +
-      (middle ? middle + ' ' : '') +
-      (lastName ? lastName : '')
-  })
-
-  interface AddBankForm {
-    addressName: string;
-    address: string;
-    checkboxGroup: string[];
+  return value
+
+})
+const emit = defineEmits(['success'])
+
+const popupRef = ref<any>(null)
+const formRef = ref<any>(null)
+
+const form = ref({
+  bankFront: ''
+})
+
+const rules = computed(() => ({
+  bankName: {
+    rules: [
+      {
+        required: true,
+        errorMessage: t('vaildate.input.empty'),
+        trigger: 'blur',
+      },
+    ],
+  },
+  bankCardNum: {
+    rules: [
+      {
+        required: true,
+        errorMessage: t('vaildate.input.empty'),
+        trigger: 'change',
+      },
+    ],
+  },
+  bankBranchName: {
+    rules: [
+      {
+        required: true,
+        errorMessage: t('vaildate.input.empty'),
+        trigger: 'blur',
+      },
+    ],
+  },
+  bankAddr: {
+    rules: [
+      {
+        required: true,
+        errorMessage: t('vaildate.input.empty'),
+        trigger: 'blur',
+      },
+    ],
+  },
+  swiftCode: {
+    rules: [
+      {
+        required: true,
+        errorMessage: t('vaildate.input.empty'),
+        trigger: 'blur',
+      },
+    ],
+  },
+  bankCode: {
+    rules: [
+      {
+        required: true,
+        errorMessage: t('vaildate.input.empty'),
+        trigger: 'blur',
+      },
+    ],
+  },
+  expiryYearMonth: {
+    rules: [
+      {
+        required: true,
+        errorMessage: t('vaildate.input.empty'),
+        trigger: 'blur',
+      },
+    ],
+  },
+  addressName: {
+    rules: [
+      {
+        required: true,
+        errorMessage: t('vaildate.input.empty'),
+        trigger: 'blur',
+      },
+    ],
+  },
+  address: {
+    rules: [
+      {
+        required: true,
+        errorMessage: t('vaildate.input.empty'),
+        trigger: 'blur',
+      },
+    ],
+  },
+}))
+
+// 打开弹窗
+const open = async (type: number) => {
+  form.value = {}
+  await nextTick()
+  form.value.type = type
+  getBankList()
+  if (type === 1) {
+    getMobileInfo()
   }
-
-  const hobbys = computed(() => {
-    let value = [
-      { value: 1, text: t('blockchain.item8') },
-    ]
-    switch (form.value.type) {
-      case 1:
-        value = [
-          { value: 1, text: t('PersonalManagement.Title.DefaultBank') },
-        ]
-        break
-      case 2:
-        value = [
-          { value: 1, text: t('PersonalManagement.Title.DefaultWire') },
-        ]
-        break
-      case 3:
-        value = [
-          { value: 1, text: t('PersonalManagement.Title.DefaultCredit') },
-        ]
-        break
-      case 4:
-        value = [
-          { value: 1, text: t('blockchain.item8') },
-        ]
-        break
+  popupRef.value?.open()
+}
+
+// 关闭弹窗
+const close = () => {
+  popupRef.value?.close()
+  resetForm()
+}
+
+// 重置表单
+const resetForm = () => {
+  form.value = {}
+  formRef.value?.clearValidate()
+}
+
+// 提交表单
+const submit = async () => {
+  try {
+    // 校验表单
+    await formRef.value?.validate()
+    // 调用 API 添加钱包
+    const submitData = {
+      ...form.value,
+      expiryYear: form.value?.expiryYearMonth ? form.value.expiryYearMonth.split('/')[0] : undefined,
+      expiryMonth: form.value?.expiryYearMonth ? form.value.expiryYearMonth.split('/')[1] : undefined,
+      defaultBank: form.value?.defaultBank && form.value?.defaultBank[0] ? 1 : 0,
     }
-    return value
-
-  })
-  const emit = defineEmits(['success'])
-
-  const popupRef = ref<any>(null)
-  const formRef = ref<any>(null)
-
-  const form = ref({
-    bankFront:''
-  })
-
-  const rules = computed(() => ({
-    bankName: {
-      rules: [
-        {
-          required: true,
-          errorMessage: t('vaildate.input.empty'),
-          trigger: 'blur',
-        },
-      ],
-    },
-    bankCardNum: {
-      rules: [
-        {
-          required: true,
-          errorMessage: t('vaildate.input.empty'),
-          trigger: 'change',
-        },
-      ],
-    },
-    bankBranchName: {
-      rules: [
-        {
-          required: true,
-          errorMessage: t('vaildate.input.empty'),
-          trigger: 'blur',
-        },
-      ],
-    },
-    bankAddr: {
-      rules: [
-        {
-          required: true,
-          errorMessage: t('vaildate.input.empty'),
-          trigger: 'blur',
-        },
-      ],
-    },
-    swiftCode: {
-      rules: [
-        {
-          required: true,
-          errorMessage: t('vaildate.input.empty'),
-          trigger: 'blur',
-        },
-      ],
-    },
-    bankCode: {
-      rules: [
-        {
-          required: true,
-          errorMessage: t('vaildate.input.empty'),
-          trigger: 'blur',
-        },
-      ],
-    },
-    expiryYearMonth: {
-      rules: [
-        {
-          required: true,
-          errorMessage: t('vaildate.input.empty'),
-          trigger: 'blur',
-        },
-      ],
-    },
-    addressName: {
-      rules: [
-        {
-          required: true,
-          errorMessage: t('vaildate.input.empty'),
-          trigger: 'blur',
-        },
-      ],
-    },
-    address: {
-      rules: [
-        {
-          required: true,
-          errorMessage: t('vaildate.input.empty'),
-          trigger: 'blur',
-        },
-      ],
-    },
-  }))
-
-  // 打开弹窗
-  const open = async (type: number) => {
-    form.value = {}
-    await nextTick()
-    form.value.type = type
-    getBankList()
-    if (type === 1) {
-      getMobileInfo()
+    let res = await personalApi.customBankAdd({
+      bankUname: username.value,
+      ...submitData,
+    })
+    if (res.code == 200) {
+      uni.showToast({ title: t('Msg.Success'), icon: 'success' })
+      emit('success', res.data)
+    } else {
+      uni.showToast({ title: res.msg || t('common.error'), icon: 'none' })
     }
-    popupRef.value?.open()
-  }
-
-  // 关闭弹窗
-  const close = () => {
-    popupRef.value?.close()
-    resetForm()
-  }
-
-  // 重置表单
-  const resetForm = () => {
-    form.value = {}
-    formRef.value?.clearValidate()
-  }
-
-  // 提交表单
-  const submit = async () => {
-    try {
-      // 校验表单
-      await formRef.value?.validate()
-      // 调用 API 添加钱包
-      const submitData = {
-        ...form.value,
-        expiryYear: form.value?.expiryYearMonth ? form.value.expiryYearMonth.split('/')[0] : undefined,
-        expiryMonth: form.value?.expiryYearMonth ? form.value.expiryYearMonth.split('/')[1] : undefined,
-        defaultBank: form.value?.defaultBank && form.value?.defaultBank[0] ? 1 : 0,
-      }
-      let res = await personalApi.customBankAdd({
-        bankUname: username.value,
-        ...submitData,
-      })
-      if (res.code == 200) {
-        uni.showToast({ title: t('Msg.Success'), icon: 'success' })
-        emit('success', res.data)
-      } else {
-        uni.showToast({ title: res.msg || t('common.error'), icon: 'none' })
-      }
-      close()
-    } catch (error) {
-      console.log(error, 12121)
-
-      if (error instanceof Array) {
-        uni.showToast({ title: error[0].errorMessage, icon: 'none' })
-        return
-      } else {
-        uni.showToast({ title: error.msg || t('common.error'), icon: 'none' })
-      }
+    close()
+  } catch (error) {
+    console.log(error, 12121)
+
+    if (error instanceof Array) {
+      uni.showToast({ title: error[0].errorMessage, icon: 'none' })
+      return
+    } else {
+      uni.showToast({ title: error.msg || t('common.error'), icon: 'none' })
     }
   }
-
-  const bankList = ref([])
-  const isZh = computed(() => ['cn', 'zh', 'zhHant'].includes(locale.value))
-  const getLangName = (item: any) => (isZh.value ? item.name : item.enName)
-  const createOptions = (list: any[], valueKey = 'code') => {
-    return list.map((item) => ({
-      text: getLangName(item),
-      value: getLangName(item),
-    }))
-  }
-
-  const bankOptions = computed(() => createOptions(bankList.value, 'name'))
-  // 获取银行列表
-  const getBankList = async () => {
-    const res = await personalApi.BankList({})
-    if (res.code === 200) {
-      bankList.value = res.data
-    }
-  }
-  // 文件更新处理
-  const handleFileUpdate = (newValue, item, field) => {
-    item[field] = newValue
+}
+
+const bankList = ref([])
+const isZh = computed(() => ['cn', 'zh', 'zhHant'].includes(locale.value))
+const getLangName = (item: any) => (isZh.value ? item.name : item.enName)
+const createOptions = (list: any[], valueKey = 'code') => {
+  return list.map((item) => ({
+    text: getLangName(item),
+    value: getLangName(item),
+  }))
+}
+
+const bankOptions = computed(() => createOptions(bankList.value, 'name'))
+// 获取银行列表
+const getBankList = async () => {
+  const res = await personalApi.BankList({})
+  if (res.code === 200) {
+    bankList.value = res.data
   }
-
-  const mobile = ref('')
-  // 获取二维码
-  const getMobileInfo = async () => {
-    try {
-      let res = await personalApi.CustomFileMobileFiles({}, {
-        responseType: 'arraybuffer',
-      })
-      mobile.value = 'data:image/png;base64,' + uni.arrayBufferToBase64(res)
-    } catch (error) {
-      console.error(error)
-    }
+}
+// 文件更新处理
+const handleFileUpdate = (newValue, item, field) => {
+  item[field] = newValue
+}
+
+const mobile = ref('')
+// 获取二维码
+const getMobileInfo = async () => {
+  try {
+    let res = await personalApi.CustomFileMobileFiles({}, {
+      responseType: 'arraybuffer',
+    })
+    mobile.value = 'data:image/png;base64,' + uni.arrayBufferToBase64(res)
+  } catch (error) {
+    console.error(error)
   }
-
-  // 预览二维码图片
-  const previewImage = () => {
-    if (mobile.value) {
-      uni.previewImage({
-        urls: [mobile.value],
-        current: 0,
-      })
-    }
+}
+
+// 预览二维码图片
+const previewImage = () => {
+  if (mobile.value) {
+    uni.previewImage({
+      urls: [mobile.value],
+      current: 0,
+    })
   }
+}
 
-  // 暴露方法
-  defineExpose({
-    open,
-    close,
-  })
+// 暴露方法
+defineExpose({
+  open,
+  close,
+})
 </script>
 
 <style scoped lang="scss">
-  @import "@/uni.scss";
-  .qrcode {
+@import "@/uni.scss";
+
+.qrcode {
+  display: flex;
+  align-items: end;
+  margin-bottom: px2rpx(20);
+}
+
+.qr-code-wrapper {
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+  justify-content: center;
+  width: px2rpx(100);
+  height: px2rpx(100);
+  border: 1px dashed #dcdfe6;
+  border-radius: px2rpx(8);
+  background-color: #fafafa;
+  //margin: 0 auto;
+
+  .qr-image {
+    width: 100%;
+    height: 100%;
+    object-fit: contain;
+  }
+
+  .image-slot {
     display: flex;
-    align-items: end;
-    margin-bottom: px2rpx(20);
+    justify-content: center;
+    align-items: center;
+    width: 100%;
+    height: 100%;
+    color: #909399;
   }
-  .qr-code-wrapper {
+}
+
+.dialog-container {
+  width: 80vw;
+  max-width: px2rpx(600);
+  max-height: 85vh;
+  padding: px2rpx(24);
+  overflow: hidden;
+  border-radius: px2rpx(12);
+
+  .dialog-header {
     display: flex;
-    flex-direction: row;
+    justify-content: space-between;
     align-items: center;
-    justify-content: center;
-    width: px2rpx(100);
-    height: px2rpx(100);
-    border: 1px dashed #dcdfe6;
-    border-radius: px2rpx(8);
-    background-color: #fafafa;
-    //margin: 0 auto;
-
-    .qr-image {
-      width: 100%;
-      height: 100%;
-      object-fit: contain;
+    margin-bottom: px2rpx(24);
+    padding-bottom: px2rpx(16);
+    border-bottom: 1px solid #f3f4f6;
+
+    .dialog-title {
+      font-size: px2rpx(18);
+      font-weight: 600;
+      color: #1f2937;
     }
 
-    .image-slot {
+    .dialog-close {
+      width: px2rpx(32);
+      height: px2rpx(32);
       display: flex;
-      justify-content: center;
       align-items: center;
-      width: 100%;
-      height: 100%;
-      color: #909399;
+      justify-content: center;
+      font-size: px2rpx(28);
+      color: #9ca3af;
+      cursor: pointer;
+      transition: all 0.3s;
+
+      &:hover {
+        color: #1f2937;
+      }
     }
   }
 
-  .dialog-container {
-    width: 80vw;
-    max-width: px2rpx(600);
-    max-height: 85vh;
-    padding: px2rpx(24);
-    overflow: hidden;
-    border-radius: px2rpx(12);
-
-    .dialog-header {
+  .dialog-footer {
+    display: flex;
+    gap: px2rpx(12);
+    justify-content: space-between;
+    padding: px2rpx(16) 0 0;
+    border-top: 1px solid #f3f4f6;
+
+    .btn {
+      min-width: px2rpx(120);
+      padding: px2rpx(12) px2rpx(24);
+      border-radius: px2rpx(6);
+      font-size: px2rpx(14);
+      font-weight: 600;
+      box-sizing: border-box;
+      border: none;
+      cursor: pointer;
+      text-align: center;
+      transition: all 0.3s;
       display: flex;
-      justify-content: space-between;
       align-items: center;
-      margin-bottom: px2rpx(24);
-      padding-bottom: px2rpx(16);
-      border-bottom: 1px solid #f3f4f6;
-
-      .dialog-title {
-        font-size: px2rpx(18);
-        font-weight: 600;
-        color: #1f2937;
-      }
+      justify-content: center;
 
-      .dialog-close {
-        width: px2rpx(32);
-        height: px2rpx(32);
-        display: flex;
-        align-items: center;
-        justify-content: center;
-        font-size: px2rpx(28);
-        color: #9ca3af;
-        cursor: pointer;
-        transition: all 0.3s;
+      &.btn-cancel {
+        background: #f3f4f6;
+        color: #6b7280;
 
         &:hover {
-          color: #1f2937;
+          background: #e5e7eb;
         }
-      }
-    }
 
-    .dialog-footer {
-      display: flex;
-      gap: px2rpx(12);
-      justify-content: space-between;
-      padding: px2rpx(16) 0 0;
-      border-top: 1px solid #f3f4f6;
-
-      .btn {
-        min-width: px2rpx(120);
-        padding: px2rpx(12) px2rpx(24);
-        border-radius: px2rpx(6);
-        font-size: px2rpx(14);
-        font-weight: 600;
-        box-sizing: border-box;
-        border: none;
-        cursor: pointer;
-        text-align: center;
-        transition: all 0.3s;
-        display: flex;
-        align-items: center;
-        justify-content: center;
-
-        &.btn-cancel {
-          background: #f3f4f6;
-          color: #6b7280;
-
-          &:hover {
-            background: #e5e7eb;
-          }
-
-          &:active {
-            background: #d1d5db;
-          }
+        &:active {
+          background: #d1d5db;
         }
+      }
 
-        &.btn-confirm {
-          background: #ea2027;
-          color: #fff;
+      &.btn-confirm {
+        background: #ea2027;
+        color: var(--bs-emphasis-color);
 
-          &:hover {
-            background: #d11920;
-          }
+        &:hover {
+          background: #d11920;
+        }
 
-          &:active {
-            background: #c01819;
-          }
+        &:active {
+          background: #c01819;
         }
       }
     }
-
-    .crm-form {
-      overflow-y: auto;
-      max-height: 70vh;
-    }
   }
 
+  .crm-form {
+    overflow-y: auto;
+    max-height: 70vh;
+  }
+}
 </style>

+ 4 - 4
components/cwg-complex-search.vue

@@ -464,7 +464,7 @@ onMounted(() => {
         padding: px2rpx(0) px2rpx(8);
         font-size: px2rpx(16);
         font-weight: 500;
-        color: #fff;
+        color: var(--bs-emphasis-color);
         line-height: px2rpx(35);
         transition: all 0.2s ease;
         box-shadow: none;
@@ -472,7 +472,7 @@ onMounted(() => {
         .iconfont,
         .uni-icons {
             font-size: 32rpx;
-            color: #fff;
+            color: var(--bs-emphasis-color);
         }
 
         /* 按下反馈效果 */
@@ -540,7 +540,7 @@ onMounted(() => {
             transition: all 0.2s ease;
             background-color: #ffffff;
             border: px2rpx(1) solid #d1d5db;
-            color: #fff;
+            color: var(--bs-emphasis-color);
             cursor: pointer;
 
             &:active {
@@ -558,7 +558,7 @@ onMounted(() => {
             &.chip-outlined {
                 background-color: #ffffff;
                 border-color: #d1d5db;
-                color: #fff;
+                color: var(--bs-emphasis-color);
             }
         }
     }

+ 4 - 4
components/cwg-detail-popup.vue

@@ -247,7 +247,7 @@ const formatDate = (date, format) => {
     .confirm-btn {
         &.primary {
             background-color: #cf1322;
-            color: #fff;
+            color: var(--bs-emphasis-color);
 
             &:active {
                 background-color: #0056b3;
@@ -256,7 +256,7 @@ const formatDate = (date, format) => {
 
         &.danger {
             background-color: #ff6b6b;
-            color: #fff;
+            color: var(--bs-emphasis-color);
 
             &:active {
                 background-color: #ff5252;
@@ -269,12 +269,12 @@ const formatDate = (date, format) => {
 
         &.primary {
             background-color: #cf1322;
-            color: #fff;
+            color: var(--bs-emphasis-color);
         }
 
         &.danger {
             background-color: #ff6b6b;
-            color: #fff;
+            color: var(--bs-emphasis-color);
         }
 
         &.default {

+ 1 - 1
components/cwg-dropdown.vue

@@ -189,7 +189,7 @@ defineExpose({
             padding: px2rpx(10) px2rpx(16);
             font-size: px2rpx(14);
             line-height: px2rpx(30);
-            color: #fff;
+            color: var(--bs-emphasis-color);
             transition: background 0.2s;
             box-sizing: border-box;
             cursor: pointer;

+ 1 - 1
components/cwg-empty-state.vue

@@ -32,7 +32,7 @@ const props = defineProps({
   }
 
   .title {
-    color: #fff;
+    color: var(--bs-emphasis-color);
     font-family: Roboto;
     font-size: px2rpx(26);
     font-style: normal;

+ 3 - 3
components/cwg-file-picker-wrapper.vue

@@ -458,7 +458,7 @@ const reUploadFile = (index) => {
   align-items: center;
   justify-content: center;
   flex-direction: column;
-  color: #fff;
+  color: var(--bs-emphasis-color);
 }
 
 /* 视频 */
@@ -469,7 +469,7 @@ const reUploadFile = (index) => {
 .video-play-icon {
   position: absolute;
   font-size: 30px;
-  color: #fff;
+  color: var(--bs-emphasis-color);
   background: rgba(0, 0, 0, 0.5);
   width: 50px;
   height: 50px;
@@ -568,7 +568,7 @@ const reUploadFile = (index) => {
   right: 0;
   bottom: 0;
   background: rgba(0, 0, 0, 0.4);
-  color: #fff;
+  color: var(--bs-emphasis-color);
   display: flex;
   align-items: center;
   justify-content: center;

+ 3 - 3
components/cwg-file-picker.vue

@@ -705,7 +705,7 @@ defineExpose({
 
                         &::before {
                             content: '×';
-                            color: #fff;
+                            color: var(--bs-emphasis-color);
                             font-size: 28px;
                             line-height: 1;
                         }
@@ -739,7 +739,7 @@ defineExpose({
             .file-picker__box-progress {
                 border-radius: v-bind(imageBorderRadiusPx);
                 background: rgba(0, 0, 0, 0.5);
-                color: #fff;
+                color: var(--bs-emphasis-color);
             }
         }
 
@@ -810,7 +810,7 @@ defineExpose({
                     cursor: pointer;
 
                     .delete-icon {
-                        color: #fff;
+                        color: var(--bs-emphasis-color);
                         font-size: 28px;
                         line-height: 1;
                     }

+ 2 - 2
components/cwg-header.vue

@@ -137,7 +137,7 @@ function handleBack() {
   position: relative;
   text-align: left;
   font-size: px2rpx(24);
-  color: #fff;
+  color: var(--bs-emphasis-color);
   font-weight: 700;
   margin: px2rpx(10) 0;
   height: px2rpx(40);
@@ -164,7 +164,7 @@ function handleBack() {
 
 .wallet-header {
   .header {
-    color: #fff;
+    color: var(--bs-emphasis-color);
   }
 }
 </style>

+ 4 - 4
components/cwg-sidebar.vue

@@ -325,7 +325,7 @@ onUnmounted(() => {
 
       .wallet-header-text {
         font-size: 14px;
-        color: #fff;
+        color: var(--bs-emphasis-color);
         font-weight: 500;
       }
 
@@ -359,7 +359,7 @@ onUnmounted(() => {
         .balance-amount {
           font-size: 16px;
           font-weight: 600;
-          color: #fff;
+          color: var(--bs-emphasis-color);
           margin-bottom: px2rpx(4);
         }
 
@@ -390,7 +390,7 @@ onUnmounted(() => {
           height: px2rpx(32);
           line-height: px2rpx(32);
           background-color: rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important;
-          color: #fff;
+          color: var(--bs-emphasis-color);
           font-size: 13px;
           border-radius: px2rpx(4);
           margin: 0;
@@ -469,7 +469,7 @@ onUnmounted(() => {
     background-color: var(--bs-btn-bg);
     font-size: px2rpx(18);
     font-weight: 600;
-    color: #fff;
+    color: var(--bs-emphasis-color);
 
     &:hover {
       color: var(--bs-btn-hover-color);

+ 11 - 8
components/cwg-tabel.vue

@@ -820,12 +820,14 @@ defineExpose({
         }
 
         &::-webkit-scrollbar-track {
-            background-color: var(--color-slate-800);;
+            background-color: var(--color-slate-800);
+            ;
             border-radius: 4px;
         }
 
         &::-webkit-scrollbar-thumb {
-            background-color: var(--color-slate-800);;
+            background-color: var(--color-slate-800);
+            ;
             border-radius: 4px;
 
             &:hover {
@@ -845,7 +847,7 @@ defineExpose({
             transition: all 0.3s;
             background-color: rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important;
             border-bottom: 1px solid var(--bs-light-bg-subtle) !important;
-            color: rgb(var(--bs-white-rgb))!important;
+            color: rgb(var(--bs-white-rgb)) !important;
 
             .header-content {
                 display: flex;
@@ -875,7 +877,8 @@ defineExpose({
         .uni-table-tr {
             transition: background-color 0.2s ease;
             border-bottom: 1px solid var(--bs-light-bg-subtle) !important;
-            color: rgb(var(--bs-white-rgb))!important;
+            color: rgb(var(--bs-white-rgb)) !important;
+
             // 奇数行背景颜色
             &:nth-child(odd) {
                 background-color: var(--bs-light-bg-subtle);
@@ -910,8 +913,8 @@ defineExpose({
 
         .uni-table-td {
             padding: px2rpx(16) px2rpx(5);
-            color: rgb(var(--bs-white-rgb))!important;
-          border-bottom: 1px solid var(--bs-light-bg-subtle) !important;
+            color: rgb(var(--bs-white-rgb)) !important;
+            border-bottom: 1px solid var(--bs-light-bg-subtle) !important;
             box-sizing: border-box;
             vertical-align: middle;
             font-size: 14px;
@@ -1060,11 +1063,11 @@ defineExpose({
 
         &.active {
             background-color: #cf1322;
-            color: #fff;
+            color: var(--bs-emphasis-color);
             border-color: #cf1322;
 
             &:hover {
-                color: #fff;
+                color: var(--bs-emphasis-color);
             }
         }
     }

+ 1 - 1
components/cwg-tabs.vue

@@ -52,7 +52,7 @@ const handleTabClick = (index: number) => {
 
     .active {
         background-color: var(--color-error);
-        color: #fff;
+        color: var(--bs-emphasis-color);
         border: 1px solid var(--bs-bg-color);
     }
 }

+ 15 - 15
pages/activities/components/ActivityDialogs.vue

@@ -13,7 +13,7 @@
                 </view>
                 <view class="popup-footer">
                     <button class="btn-cancel" @click="closeDialog('dialogChinaUnionPay')">{{ t('Btn.Cancel')
-                    }}</button>
+                        }}</button>
                     <button class="btn-confirm" type="primary" @click="handleConfirm('toTransformActive')">{{
                         t('Btn.Confirm') }}</button>
                 </view>
@@ -33,7 +33,7 @@
                 </view>
                 <view class="popup-footer">
                     <button class="btn-cancel" @click="closeDialog('dialogChinaUnionPay1')">{{ t('Btn.Cancel')
-                    }}</button>
+                        }}</button>
                     <button class="btn-confirm" type="primary" @click="handleConfirm('toRealizationActive')">{{
                         t('Btn.Confirm') }}</button>
                 </view>
@@ -53,7 +53,7 @@
                 </view>
                 <view class="popup-footer">
                     <button class="btn-cancel" @click="closeDialog('dialogChinaUnionPayJX')">{{ t('Btn.Cancel')
-                    }}</button>
+                        }}</button>
                     <button class="btn-confirm" type="primary" @click="closeDialog('dialogChinaUnionPayJX')">{{
                         t('Btn.Confirm') }}</button>
                 </view>
@@ -80,7 +80,7 @@
                 <view class="popup-footer">
                     <button class="btn-cancel" @click="closeDialog('dialogDealResult')">{{ t('Btn.Cancel') }}</button>
                     <button class="btn-confirm" type="primary" @click="handleConfirm('toApply23')">{{ t('Btn.Confirm')
-                    }}</button>
+                        }}</button>
                 </view>
             </view>
         </uni-popup>
@@ -105,7 +105,7 @@
                 <view class="popup-footer">
                     <button class="btn-cancel" @click="closeDialog('dialogDealResultJx')">{{ t('Btn.Cancel') }}</button>
                     <button class="btn-confirm" type="primary" @click="handleConfirm('toApply23Jx')">{{ t('Btn.Confirm')
-                    }}</button>
+                        }}</button>
                 </view>
             </view>
         </uni-popup>
@@ -129,7 +129,7 @@
                 </scroll-view>
                 <view class="popup-footer">
                     <button class="btn-cancel" @click="closeDialog('dialogDealResultJxVip')">{{ t('Btn.Cancel')
-                    }}</button>
+                        }}</button>
                     <button class="btn-confirm" type="primary" @click="handleConfirm('toApply23JxVip')">{{
                         t('Btn.Confirm') }}</button>
                 </view>
@@ -176,9 +176,9 @@
                 </scroll-view>
                 <view class="popup-footer">
                     <button class="btn-cancel" @click="closeDialog('dialogDealResultCpt')">{{ t('Btn.Cancel')
-                    }}</button>
+                        }}</button>
                     <button class="btn-confirm" type="primary" @click="handleConfirm('toApplyCpt')">{{ t('Btn.Confirm')
-                    }}</button>
+                        }}</button>
                 </view>
             </view>
         </uni-popup>
@@ -202,7 +202,7 @@
                 </scroll-view>
                 <view class="popup-footer">
                     <button class="btn-cancel" @click="closeDialog('dialogDealResultJxJYB')">{{ t('Btn.Cancel')
-                    }}</button>
+                        }}</button>
                     <button class="btn-confirm" type="primary" @click="handleConfirm('toApply24JYBVip')">{{
                         t('Btn.Confirm') }}</button>
                 </view>
@@ -229,7 +229,7 @@
                 </scroll-view>
                 <view class="popup-footer">
                     <button class="btn-cancel" @click="closeDialog('dialogDealResultNoWorries')">{{ t('Btn.Cancel')
-                    }}</button>
+                        }}</button>
                     <button class="btn-confirm" type="primary" @click="handleConfirm('toApplyNoWorries')">{{
                         t('news_add_field1.activitiesNoWorries.item6_1') }}</button>
                 </view>
@@ -292,7 +292,7 @@
                 <view class="popup-footer">
                     <button class="btn-cancel" @click="closeDialog('dialogNewTask')">{{ t('Home.msg.item3') }}</button>
                     <button class="btn-confirm" type="primary" @click="closeDialog('dialogNewTask')">{{ t('Btn.Confirm')
-                    }}</button>
+                        }}</button>
                 </view>
             </view>
         </uni-popup>
@@ -310,7 +310,7 @@
                 </view>
                 <view class="popup-footer">
                     <button class="btn-cancel" @click="closeDialog('dialogNewTaskDraw')">{{ t('Home.msg.item3')
-                    }}</button>
+                        }}</button>
                 </view>
             </view>
         </uni-popup>
@@ -340,7 +340,7 @@
                 </scroll-view>
                 <view class="popup-footer">
                     <button class="btn-cancel" @click="closeDialog('dialogSurplusActivity')">{{ t('Btn.Cancel')
-                    }}</button>
+                        }}</button>
                     <button class="btn-confirm" type="primary" @click="handleConfirm('confirmSurplusActivity')"
                         :disabled="!selectedAccount || !selectedSurplusValue">{{ t('Btn.Confirm') }}</button>
                 </view>
@@ -361,7 +361,7 @@
                 </view>
                 <view class="popup-footer">
                     <button class="btn-cancel" @click="closeDialog('dialogSurplusActivity1')">{{ t('Btn.Cancel')
-                    }}</button>
+                        }}</button>
                     <button class="btn-confirm" type="primary" @click="handleConfirm('confirmSurplusActivity1')">{{
                         t('Btn.Confirm') }}</button>
                 </view>
@@ -675,7 +675,7 @@ const setPopupRef = (el: any, key: string) => {
 
             &.btn-confirm {
                 background-color: #cf1322;
-                color: #fff;
+                color: var(--bs-emphasis-color);
 
                 &:disabled {
                     opacity: 0.5;

+ 9 - 9
pages/activities/content.vue

@@ -298,11 +298,11 @@
                                 <view class="lis" style="margin-left: 15px;margin-top: 20px;">
                                     <h4><span v-t="'news_add_field1.activitiesJX.item8'" />{{
                                         timeJx.applicationStartTime
-                                        }}
+                                    }}
                                         - {{ timeJx.applicationEndTime }}</h4>
                                     <h4><span v-t="'news_add_field1.activitiesJX.item9'" />{{
                                         timeJx.activityStartTime
-                                        }} -
+                                    }} -
                                         {{ timeJx.activityEndTime }}</h4>
                                 </view>
                             </view>
@@ -435,7 +435,7 @@
                                 <view class="lis" style="margin-left: 15px;margin-top: 20px;">
                                     <h4><span v-t="'news_add_field1.activitiesNZ.item8'" />{{
                                         timeJx.applicationStartTime
-                                        }}
+                                    }}
                                         - {{ timeJx.applicationEndTime }}</h4>
                                 </view>
                             </view>
@@ -969,13 +969,13 @@
                                                 <view>
                                                     <span v-t="'news_add_field1.NewYear24.item10BG9'" v-if="!isZh" />
                                                     <span v-if="item.interestRateExtraDay == 1">{{ isCountDown1
-                                                        }}</span>
+                                                    }}</span>
                                                     <span v-if="item.interestRateExtraDay == 3">{{ isCountDown3
-                                                        }}</span>
+                                                    }}</span>
                                                     <span v-if="item.interestRateExtraDay == 5">{{ isCountDown5
-                                                        }}</span>
+                                                    }}</span>
                                                     <span v-if="item.interestRateExtraDay == 7">{{ isCountDown7
-                                                        }}</span>
+                                                    }}</span>
                                                     <span v-t="'news_add_field1.NewYear24.item10BG9'" v-if="!isZh" />
                                                 </view>
                                                 <view v-t="'news_add_field1.NewYear24.item10BG10'" />
@@ -1527,7 +1527,7 @@ th {
         position: relative;
         height: 80px;
         background-image: radial-gradient(circle at 100px -8px, #fff 20px, var(--main-color) 21px);
-        color: #fff;
+        color: var(--bs-emphasis-color);
         font-size: 14px;
         text-align: center;
         padding-top: 30px;
@@ -1579,7 +1579,7 @@ th {
         box-shadow: none;
         outline: none;
         background-color: var(--main-color);
-        color: #fff;
+        color: var(--bs-emphasis-color);
         width: 50%;
         border-radius: 20px;
         line-height: 30px;

+ 9 - 9
pages/activities/detail.vue

@@ -301,11 +301,11 @@
                                 <view class="lis" style="margin-left: 15px;margin-top: 20px;">
                                     <h4><span v-t="'news_add_field1.activitiesJX.item8'" />{{
                                         timeJx.applicationStartTime
-                                        }}
+                                    }}
                                         - {{ timeJx.applicationEndTime }}</h4>
                                     <h4><span v-t="'news_add_field1.activitiesJX.item9'" />{{
                                         timeJx.activityStartTime
-                                        }} -
+                                    }} -
                                         {{ timeJx.activityEndTime }}</h4>
                                 </view>
                             </view>
@@ -438,7 +438,7 @@
                                 <view class="lis" style="margin-left: 15px;margin-top: 20px;">
                                     <h4><span v-t="'news_add_field1.activitiesNZ.item8'" />{{
                                         timeJx.applicationStartTime
-                                        }}
+                                    }}
                                         - {{ timeJx.applicationEndTime }}</h4>
                                 </view>
                             </view>
@@ -972,13 +972,13 @@
                                                 <view>
                                                     <span v-t="'news_add_field1.NewYear24.item10BG9'" v-if="!isZh" />
                                                     <span v-if="item.interestRateExtraDay == 1">{{ isCountDown1
-                                                        }}</span>
+                                                    }}</span>
                                                     <span v-if="item.interestRateExtraDay == 3">{{ isCountDown3
-                                                        }}</span>
+                                                    }}</span>
                                                     <span v-if="item.interestRateExtraDay == 5">{{ isCountDown5
-                                                        }}</span>
+                                                    }}</span>
                                                     <span v-if="item.interestRateExtraDay == 7">{{ isCountDown7
-                                                        }}</span>
+                                                    }}</span>
                                                     <span v-t="'news_add_field1.NewYear24.item10BG9'" v-if="!isZh" />
                                                 </view>
                                                 <view v-t="'news_add_field1.NewYear24.item10BG10'" />
@@ -1526,7 +1526,7 @@ th {
         position: relative;
         height: 80px;
         background-image: radial-gradient(circle at 100px -8px, #fff 20px, var(--main-color) 21px);
-        color: #fff;
+        color: var(--bs-emphasis-color);
         font-size: 14px;
         text-align: center;
         padding-top: 30px;
@@ -1578,7 +1578,7 @@ th {
         box-shadow: none;
         outline: none;
         background-color: var(--main-color);
-        color: #fff;
+        color: var(--bs-emphasis-color);
         width: 50%;
         border-radius: 20px;
         line-height: 30px;

+ 6 - 6
pages/activities/index.vue

@@ -415,7 +415,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>
 
@@ -430,7 +430,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>
 
@@ -445,7 +445,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>
 
@@ -470,7 +470,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>
@@ -2399,7 +2399,7 @@ onReachBottom(() => {
                 top: 4px;
                 left: -15px;
                 background: #eb3f57;
-                color: #fff;
+                color: var(--bs-emphasis-color);
                 transform: rotate(-45deg);
                 -ms-transform: rotate(-45deg);
                 -moz-transform: rotate(-45deg);
@@ -2485,7 +2485,7 @@ onReachBottom(() => {
 
                 &.primary {
                     background: #eb3f57;
-                    color: #fff;
+                    color: var(--bs-emphasis-color);
                 }
 
                 &.secondary {

+ 1 - 1
pages/analytics/components/List.vue

@@ -217,7 +217,7 @@ defineExpose({ load, loadMore })
     .title {
       font-size: px2rpx(17);
       font-weight: 600;
-      color: #fff;
+      color: var(--bs-emphasis-color);
       line-height: 1.5;
       margin-bottom: px2rpx(8);
       display: -webkit-box;

+ 1 - 1
pages/analytics/detail.vue

@@ -351,7 +351,7 @@ onUnmounted(() => {
                 a {
                     display: inline-block;
                     background-color: #EB3F57;
-                    color: #fff;
+                    color: var(--bs-emphasis-color);
                     padding: 8rpx 30rpx;
                     border-radius: 8rpx;
                     font-weight: bold;

+ 3 - 3
pages/common/download.vue

@@ -318,7 +318,7 @@ onMounted(async () => {
         align-items: center;
         padding: px2rpx(24) px2rpx(20);
         background: linear-gradient(135deg, #4990EF 0%, #3A7BE0 100%);
-        color: #fff;
+        color: var(--bs-emphasis-color);
         border-radius: px2rpx(12);
         min-width: px2rpx(160);
         max-width: px2rpx(200);
@@ -485,7 +485,7 @@ onMounted(async () => {
         background-size: cover;
         background-repeat: no-repeat;
         background-position: center;
-        color: #fff;
+        color: var(--bs-emphasis-color);
         text-align: center;
         border-radius: px2rpx(12);
         margin-bottom: px2rpx(16);
@@ -519,7 +519,7 @@ onMounted(async () => {
             align-items: center;
             padding: px2rpx(14) px2rpx(25);
             background-color: #EB3F57;
-            color: #fff;
+            color: var(--bs-emphasis-color);
             font-size: px2rpx(14);
             text-decoration: none;
             border-radius: px2rpx(8);

+ 1 - 1
pages/customer/account-select.vue

@@ -521,7 +521,7 @@ radio {
         }
 
         .button-text {
-            color: #fff;
+            color: var(--bs-emphasis-color);
             font-size: px2rpx(16);
             font-weight: 600;
         }

+ 7 - 7
pages/customer/components/AccountCardDesktop.vue

@@ -457,7 +457,7 @@ onBeforeUnmount(() => {
                     &.primary {
                         background-color: #cf1322;
                         ;
-                        color: #fff;
+                        color: var(--bs-emphasis-color);
                     }
 
                     &:hover {
@@ -506,7 +506,7 @@ onBeforeUnmount(() => {
                 &.primary {
                     background-color: #cf1322;
                     ;
-                    color: #fff;
+                    color: var(--bs-emphasis-color);
 
 
                     &:hover {
@@ -564,7 +564,7 @@ onBeforeUnmount(() => {
             font-size: px2rpx(14);
 
             .label {
-                color: #fff;
+                color: var(--bs-emphasis-color);
             }
 
             .line {
@@ -577,7 +577,7 @@ onBeforeUnmount(() => {
 
             .value {
                 font-weight: 500;
-                color: #fff;
+                color: var(--bs-emphasis-color);
             }
         }
     }
@@ -603,13 +603,13 @@ onBeforeUnmount(() => {
             font-size: px2rpx(14);
 
             .label {
-                color: #fff;
+                color: var(--bs-emphasis-color);
                 min-width: px2rpx(70);
             }
 
             .value {
                 flex: 1;
-                color: #fff;
+                color: var(--bs-emphasis-color);
                 font-family: monospace;
             }
 
@@ -618,7 +618,7 @@ onBeforeUnmount(() => {
                 border: 1px solid rgba(108, 133, 149, 0);
                 padding: 0;
                 cursor: pointer;
-                color: #fff;
+                color: var(--bs-emphasis-color);
                 width: px2rpx(32);
                 height: px2rpx(32);
                 display: flex;

+ 15 - 15
pages/customer/components/AccountCardMobile.vue

@@ -263,7 +263,7 @@ onBeforeUnmount(() => {
     margin-bottom: px2rpx(16);
     position: relative;
     border: 1px solid rgba(108, 133, 149, 0.12);
-    color: #fff;
+    color: var(--bs-emphasis-color);
 
 
 
@@ -286,7 +286,7 @@ onBeforeUnmount(() => {
             border-radius: px2rpx(4);
             padding: px2rpx(4) px2rpx(8);
             font-size: px2rpx(12);
-            color: #fff;
+            color: var(--bs-emphasis-color);
             font-weight: 500;
         }
 
@@ -301,7 +301,7 @@ onBeforeUnmount(() => {
             font-weight: 600;
             line-height: 1.3;
             cursor: pointer;
-            color: #fff;
+            color: var(--bs-emphasis-color);
 
             &:hover {
                 color: #1e2a3a;
@@ -310,7 +310,7 @@ onBeforeUnmount(() => {
 
         .account-nickname {
             font-size: px2rpx(14);
-            color: #fff;
+            color: var(--bs-emphasis-color);
         }
     }
 
@@ -325,7 +325,7 @@ onBeforeUnmount(() => {
 
             .balance-decimal {
                 font-size: px2rpx(16);
-                color: #fff;
+                color: var(--bs-emphasis-color);
                 margin-left: px2rpx(4);
             }
         }
@@ -354,7 +354,7 @@ onBeforeUnmount(() => {
             font-size: px2rpx(14);
 
             .label {
-                color: #fff;
+                color: var(--bs-emphasis-color);
             }
 
             .line {
@@ -367,7 +367,7 @@ onBeforeUnmount(() => {
 
             .value {
                 font-weight: 500;
-                color: #fff;
+                color: var(--bs-emphasis-color);
             }
         }
     }
@@ -393,13 +393,13 @@ onBeforeUnmount(() => {
             font-size: px2rpx(14);
 
             .label {
-                color: #fff;
+                color: var(--bs-emphasis-color);
                 min-width: px2rpx(30);
             }
 
             .value {
                 flex: 1;
-                color: #fff;
+                color: var(--bs-emphasis-color);
                 font-family: monospace;
             }
 
@@ -408,7 +408,7 @@ onBeforeUnmount(() => {
                 border: 1px solid rgba(108, 133, 149, 0);
                 padding: 0;
                 cursor: pointer;
-                color: #fff;
+                color: var(--bs-emphasis-color);
                 width: px2rpx(24);
                 height: px2rpx(24);
                 display: flex;
@@ -441,7 +441,7 @@ onBeforeUnmount(() => {
             border-radius: px2rpx(8);
             padding: px2rpx(8) px2rpx(16);
             font-size: px2rpx(14);
-            color: #fff;
+            color: var(--bs-emphasis-color);
             display: inline-flex;
             gap: px2rpx(8);
             cursor: pointer;
@@ -523,13 +523,13 @@ onBeforeUnmount(() => {
                 display: flex;
                 align-items: center;
                 justify-content: center;
-                color: #fff;
+                color: var(--bs-emphasis-color);
                 transition: background-color 0.2s;
 
                 &.primary {
                     background-color: #cf1322;
                     ;
-                    color: #fff;
+                    color: var(--bs-emphasis-color);
                 }
 
                 &:hover {
@@ -539,7 +539,7 @@ onBeforeUnmount(() => {
                 &.primary:hover {
                     background-color: #cf1322;
                     ;
-                    color: #fff;
+                    color: var(--bs-emphasis-color);
                 }
 
                 svg {
@@ -551,7 +551,7 @@ onBeforeUnmount(() => {
             .circle-label {
                 font-size: px2rpx(12);
                 margin-top: px2rpx(4);
-                color: #fff;
+                color: var(--bs-emphasis-color);
             }
         }
     }

+ 2 - 2
pages/customer/components/AccountList.vue

@@ -348,7 +348,7 @@ onMounted(async () => {
     align-items: center;
     font-size: px2rpx(22);
     font-weight: 500;
-    color: #fff;
+    color: var(--bs-emphasis-color);
     background-color: rgba(255, 255, 255, 0);
 
     .content-title-btns {
@@ -361,7 +361,7 @@ onMounted(async () => {
         .btn-primary {
             min-width: px2rpx(120);
             background-color: var(--color-error);
-            color: #fff;
+            color: var(--bs-emphasis-color);
             padding: 0 px2rpx(12);
             border: none;
             font-size: px2rpx(14);

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

@@ -69,7 +69,7 @@ const toActivities = () => {
         .font-medium {
             font-size: px2rpx(21);
             font-weight: 600;
-            color: #fff;
+            color: var(--bs-emphasis-color);
         }
 
         .btn {

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

@@ -113,7 +113,7 @@ getPendingWithdrawAmount()
         align-items: center;
         font-size: px2rpx(20);
         font-weight: 500;
-        color: #fff;
+        color: var(--bs-emphasis-color);
         background-color: rgba(255, 255, 255, 0);
 
         .content-title-btns {

+ 2 - 2
pages/customer/components/TerminalChangePasswordDialog.vue

@@ -158,7 +158,7 @@ watch(() => props.visible, (newVal) => {
     text-align: left;
     display: block;
     font-size: px2rpx(14);
-    color: #fff;
+    color: var(--bs-emphasis-color);
     margin-bottom: px2rpx(24);
 }
 
@@ -214,7 +214,7 @@ watch(() => props.visible, (newVal) => {
         &.primary {
             background-color: #cf1322;
             ;
-            color: #fff;
+            color: var(--bs-emphasis-color);
 
             &:hover {
                 background-color: var(--color-navy-600);

+ 2 - 2
pages/customer/components/TerminalDialog.vue

@@ -265,7 +265,7 @@ onMounted(() => {
     font-size: px2rpx(14);
     font-weight: 600;
     line-height: 1.4;
-    color: #fff;
+    color: var(--bs-emphasis-color);
 }
 
 .card-desc {
@@ -282,6 +282,6 @@ onMounted(() => {
     justify-content: center;
     margin-left: 16rpx;
     flex-shrink: 0;
-    color: #fff;
+    color: var(--bs-emphasis-color);
 }
 </style>

+ 5 - 5
pages/customer/components/TerminalNickNameDialog.vue

@@ -98,14 +98,14 @@ const save = async () => {
 .account-number {
     display: block;
     font-size: px2rpx(14);
-    color: #fff;
+    color: var(--bs-emphasis-color);
     margin-bottom: px2rpx(40);
 }
 
 .account-hint {
     display: block;
     font-size: px2rpx(13);
-    color: #fff;
+    color: var(--bs-emphasis-color);
     margin-bottom: px2rpx(40);
 }
 
@@ -115,7 +115,7 @@ const save = async () => {
 
 .input-label {
     font-size: px2rpx(12);
-    color: #fff;
+    color: var(--bs-emphasis-color);
     margin-bottom: px2rpx(4);
 }
 
@@ -140,7 +140,7 @@ const save = async () => {
 .save-btn {
     width: 100%;
     height: px2rpx(40);
-    color: #fff;
+    color: var(--bs-emphasis-color);
     border-radius: px2rpx(8);
     font-size: px2rpx(16);
     font-weight: 500;
@@ -170,7 +170,7 @@ const save = async () => {
         &.primary {
             background-color: #cf1322;
             ;
-            color: #fff;
+            color: var(--bs-emphasis-color);
 
             svg {
                 stroke: #fff;

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

@@ -217,7 +217,7 @@ onMounted(() => {
     .charts-title {
         font-size: px2rpx(21);
         font-weight: 500;
-        color: #fff;
+        color: var(--bs-emphasis-color);
     }
 
     .charts-account {

+ 12 - 12
pages/customer/deposit-select.vue

@@ -7,7 +7,7 @@
                 <view class="b-card">
                     <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>
@@ -18,7 +18,7 @@
                 <view class="b-card">
                     <view class="card-top">
                         <text class="tit"><text class="iconfont icon-caret-right"></text>{{ t('Custom.Deposit.Title2')
-                        }}</text>
+                            }}</text>
                         <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" />
@@ -50,7 +50,7 @@
                             </view>
                             <view class="btn-bottom">
                                 <text class="btn crm-cursor" @click="isStep3Open()">{{ t('Btn.Confirm')
-                                    }}</text>
+                                }}</text>
                             </view>
 
                         </view>
@@ -88,7 +88,7 @@
                                     <uni-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
                                         <text class="tit"><text class="iconfont icon-caret-right"></text>{{
                                             t('news_add_field.Label.Title4')
-                                            }}</text>
+                                        }}</text>
                                     </uni-col>
                                     <uni-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
                                         <uni-forms-item>
@@ -120,7 +120,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>
                                             <view class="row"><text class="label SpecialColor">{{
@@ -129,7 +129,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>
                                             <view class="row"><text class="label SpecialColor">{{
@@ -138,7 +138,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>
                                             <view class="row"><text class="label SpecialColor">{{
@@ -165,7 +165,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>
@@ -267,7 +267,7 @@
                                                     <text>{{ t('news_add_field1.activitiesNZ.itemDeposit2') }}</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>
                                                 </view>
                                             </uni-forms-item>
@@ -2070,7 +2070,7 @@ watch(() => params.agree6, (newVal) => {
         width: 100%;
         height: px2rpx(48);
         background-color: #cf1322;
-        color: #fff;
+        color: var(--bs-emphasis-color);
         border-radius: px2rpx(12);
         font-size: px2rpx(16);
         font-weight: 600;
@@ -2215,7 +2215,7 @@ watch(() => params.agree6, (newVal) => {
 
             .btn {
                 background: var(--color-error-600, #cf1322);
-                color: #fff;
+                color: var(--bs-emphasis-color);
                 padding: px2rpx(10) px2rpx(48);
                 border-radius: px2rpx(24);
                 font-size: px2rpx(15);
@@ -2409,7 +2409,7 @@ watch(() => params.agree6, (newVal) => {
 
                 &[type="primary"] {
                     background-color: #cf1322;
-                    color: #fff;
+                    color: var(--bs-emphasis-color);
                 }
 
                 &:not([type="primary"]) {

+ 19 - 19
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>
@@ -2119,7 +2119,7 @@ watch(() => params.agree6, (newVal) => {
         width: 100%;
         height: px2rpx(48);
         background-color: #cf1322;
-        color: #fff;
+        color: var(--bs-emphasis-color);
         border-radius: px2rpx(12);
         font-size: px2rpx(16);
         font-weight: 600;
@@ -2264,7 +2264,7 @@ watch(() => params.agree6, (newVal) => {
 
             .btn {
                 background: var(--color-error-600, #cf1322);
-                color: #fff;
+                color: var(--bs-emphasis-color);
                 padding: px2rpx(10) px2rpx(48);
                 border-radius: px2rpx(24);
                 font-size: px2rpx(15);
@@ -2449,7 +2449,7 @@ watch(() => params.agree6, (newVal) => {
 
                 &[type="primary"] {
                     background-color: #cf1322;
-                    color: #fff;
+                    color: var(--bs-emphasis-color);
                 }
 
                 &:not([type="primary"]) {
@@ -2539,7 +2539,7 @@ watch(() => params.agree6, (newVal) => {
         margin-bottom: px2rpx(12);
         height: px2rpx(35);
         background-color: #cf1322;
-        color: #fff;
+        color: var(--bs-emphasis-color);
         border-radius: px2rpx(4);
         font-weight: 600;
         display: flex;

+ 3 - 3
pages/customer/style.scss

@@ -65,7 +65,7 @@
       width: 100%;
       height: px2rpx(48);
       background-color: #cf1322;
-      color: #fff;
+      color: var(--bs-emphasis-color);
       border-radius: px2rpx(12);
       font-size: px2rpx(16);
       font-weight: 600;
@@ -185,7 +185,7 @@
 
       .btn {
         background: var(--color-error-600, #cf1322);
-        color: #fff;
+        color: var(--bs-emphasis-color);
         padding: px2rpx(10) px2rpx(48);
         border-radius: px2rpx(24);
         font-size: px2rpx(15);
@@ -301,7 +301,7 @@
 
           &[type="primary"] {
             background-color: #cf1322;
-            color: #fff;
+            color: var(--bs-emphasis-color);
           }
 
           &:not([type="primary"]) {

+ 2 - 2
pages/customer/transfer.vue

@@ -609,7 +609,7 @@ watch(transferType, (newVal) => {
                             margin-bottom: px2rpx(22);
                             height: px2rpx(35);
                             background-color: #cf1322;
-                            color: #fff;
+                            color: var(--bs-emphasis-color);
                             border-radius: px2rpx(4);
                             font-weight: 600;
                             display: flex;
@@ -825,7 +825,7 @@ watch(transferType, (newVal) => {
 
                 &[type="primary"] {
                     background-color: #409eff;
-                    color: #fff;
+                    color: var(--bs-emphasis-color);
                     border: none;
 
                     &:hover {

+ 3 - 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>
@@ -305,7 +305,7 @@ onMounted(() => {
                             margin-bottom: px2rpx(22);
                             height: px2rpx(35);
                             background-color: #cf1322;
-                            color: #fff;
+                            color: var(--bs-emphasis-color);
                             border-radius: px2rpx(4);
                             font-weight: 600;
                             display: flex;
@@ -521,7 +521,7 @@ onMounted(() => {
 
                 &[type="primary"] {
                     background-color: #409eff;
-                    color: #fff;
+                    color: var(--bs-emphasis-color);
                     border: none;
 
                     &:hover {

+ 5 - 5
pages/customer/withdrawal-select.vue

@@ -29,7 +29,7 @@
             </view>
             <view v-if="step3" class="reselect-btn">
               <button class="s-btn reselect" type="primary" @click="showTable">{{ t('Custom.Deposit.Reselect')
-                }}</button>
+              }}</button>
             </view>
           </view>
         </view>
@@ -149,7 +149,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') }}
@@ -274,7 +274,7 @@
                 <uni-col :span="24" v-if="channelData.type != 'BANK_TELEGRAPHIC' && isStep3">
                   <view class="tit">
                     <text>{{ t('Custom.Withdraw.Title3') + '(' + channelData.currency + ')'
-                      }}</text>
+                    }}</text>
                   </view>
                 </uni-col>
                 <uni-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12" v-if="channelData.type !== 'BANK_TELEGRAPHIC'">
@@ -1864,7 +1864,7 @@ onMounted(() => {
       width: 100%;
       height: px2rpx(48);
       background-color: #cf1322;
-      color: #fff;
+      color: var(--bs-emphasis-color);
       border-radius: px2rpx(12);
       font-size: px2rpx(16);
       font-weight: 600;
@@ -1983,7 +1983,7 @@ onMounted(() => {
 
       .btn {
         background: var(--color-error-600, #cf1322);
-        color: #fff;
+        color: var(--bs-emphasis-color);
         padding: px2rpx(10) px2rpx(48);
         border-radius: px2rpx(24);
         font-size: px2rpx(15);

+ 5 - 5
pages/customer/withdrawal.vue

@@ -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') }}
@@ -257,7 +257,7 @@
                   <view v-if="channelData.type != 'BANK_TELEGRAPHIC' && isStep3">
                     <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">
@@ -1925,7 +1925,7 @@ watch(() => form.amount, (newVal) => {
       width: 100%;
       height: px2rpx(48);
       background-color: #cf1322;
-      color: #fff;
+      color: var(--bs-emphasis-color);
       border-radius: px2rpx(12);
       font-size: px2rpx(16);
       font-weight: 600;
@@ -2042,7 +2042,7 @@ watch(() => form.amount, (newVal) => {
 
       .btn {
         background: var(--color-error-600, #cf1322);
-        color: #fff;
+        color: var(--bs-emphasis-color);
         padding: px2rpx(10) px2rpx(48);
         border-radius: px2rpx(24);
         font-size: px2rpx(15);
@@ -2106,7 +2106,7 @@ watch(() => form.amount, (newVal) => {
     margin-bottom: px2rpx(12);
     height: px2rpx(35);
     background-color: #cf1322;
-    color: #fff;
+    color: var(--bs-emphasis-color);
     border-radius: px2rpx(4);
     font-weight: 600;
     border: none;

+ 1 - 1
pages/follow/account-management.vue

@@ -274,7 +274,7 @@ onMounted(() => {
         .btn-primary {
             min-width: px2rpx(120);
             background-color: var(--color-error);
-            color: #fff;
+            color: var(--bs-emphasis-color);
             padding: 0 px2rpx(12);
             border: none;
             font-size: px2rpx(14);

+ 2 - 2
pages/follow/follow-list.vue

@@ -337,7 +337,7 @@ onMounted(() => {
     align-items: center;
     font-size: px2rpx(22);
     font-weight: 500;
-    color: #fff;
+    color: var(--bs-emphasis-color);
     background-color: rgba(255, 255, 255, 0);
 
     .content-title-btns {
@@ -350,7 +350,7 @@ onMounted(() => {
         .btn-primary {
             min-width: px2rpx(120);
             background-color: var(--color-error);
-            color: #fff;
+            color: var(--bs-emphasis-color);
             padding: 0 px2rpx(12);
             border: none;
             font-size: px2rpx(14);

+ 1 - 1
pages/follow/index.vue

@@ -755,7 +755,7 @@ onMounted(async () => {
   text-align: center;
   background-color: #4497ff;
   font-size: px2rpx(16);
-  color: #fff;
+  color: var(--bs-emphasis-color);
   padding: px2rpx(10);
   border-radius: px2rpx(4);
 }

+ 19 - 19
pages/follow/subscribe-list.vue

@@ -60,7 +60,7 @@
                             <view class="delete-item">
                                 <text class="delete-label">{{ t('Documentary.tradingCenter.item29') }}</text>
                                 <text class="delete-value">{{ numberDesensitization(dialogSubscribeDataCancel.dealLogin)
-                                    }}</text>
+                                }}</text>
                             </view>
                             <view class="delete-item">
                                 <text class="delete-label">{{ t('Documentary.console.item3') }}</text>
@@ -71,7 +71,7 @@
                             <view class="delete-item">
                                 <text class="delete-label">{{ t('Documentary.console.item7') }}</text>
                                 <text class="delete-value">{{ numberFormat(dialogSubscribeDataCancel.dealBalance || 0)
-                                    }}</text>
+                                }}</text>
                             </view>
                             <view class="delete-item">
                                 <text class="delete-label">{{ t('Label.AccountType') }}</text>
@@ -83,7 +83,7 @@
                             <view class="delete-item">
                                 <text class="delete-label">{{ t('Documentary.console.item6') }}</text>
                                 <text class="delete-value">{{ numberFormat(dialogSubscribeDataCancel.dealEquity || 0)
-                                    }}</text>
+                                }}</text>
                             </view>
                             <view class="delete-item">
                                 <text class="delete-label">{{ t('Documentary.tradingCenter.item30') }}</text>
@@ -98,12 +98,12 @@
                             <view class="delete-item">
                                 <text class="delete-label">{{ t('Label.Credit') }}</text>
                                 <text class="delete-value">{{ numberFormat(dialogSubscribeDataCancel.dealCredit || 0)
-                                    }}</text>
+                                }}</text>
                             </view>
                             <view class="delete-item">
                                 <text class="delete-label">{{ t('Documentary.tradingCenter.item31') }}</text>
                                 <text class="delete-value">{{ dialogSubscribeDataCancel.distributionRatio || '0'
-                                    }}%</text>
+                                }}%</text>
                             </view>
                         </view>
                         <view class="delete-row">
@@ -114,7 +114,7 @@
                             <view class="delete-item">
                                 <text class="delete-label">{{ t('Documentary.tradingCenter.item32') }}</text>
                                 <text class="delete-value">{{ dialogSubscribeDataCancel.settlementCycle || '--'
-                                    }}</text>
+                                }}</text>
                             </view>
                         </view>
                     </view>
@@ -132,7 +132,7 @@
                             <view class="delete-item">
                                 <text class="delete-label">{{ t('Label.Leverage') }}</text>
                                 <text class="delete-value">1:{{ dialogSubscribeDataCancel.followLeverage || '--'
-                                    }}</text>
+                                }}</text>
                             </view>
                         </view>
                         <view class="delete-row">
@@ -171,12 +171,12 @@
                             <view class="delete-item" v-if="dialogSubscribeDataCancel.protectType == 1">
                                 <text class="delete-label">{{ t('Documentary.tradingCenter.item39') }}</text>
                                 <text class="delete-value">{{ dialogSubscribeDataCancel.protectAmount || '--'
-                                    }}($)</text>
+                                }}($)</text>
                             </view>
                             <view class="delete-item" v-if="dialogSubscribeDataCancel.protectType == 2">
                                 <text class="delete-label">{{ t('Documentary.tradingCenter.item122') }}</text>
                                 <text class="delete-value">{{ dialogSubscribeDataCancel.protectRatio || '--'
-                                    }}(%)</text>
+                                }}(%)</text>
                             </view>
                         </view>
                     </view>
@@ -207,7 +207,7 @@
             <template #footer>
                 <button @click="ToUnSubscribeCancel">{{ t('Btn.Cancel') }}</button>
                 <button type="primary" @click="dialogSubscribeCancelTipOpen" :disabled="flag">{{ t('Btn.Confirm')
-                    }}</button>
+                }}</button>
             </template>
         </cwg-popup>
 
@@ -226,7 +226,7 @@
                             <view class="delete-item">
                                 <text class="delete-label">{{ t('Documentary.tradingCenter.item29') }}</text>
                                 <text class="delete-value">{{ numberDesensitization(dialogSubscribeFllowData.dealLogin)
-                                    }}</text>
+                                }}</text>
                             </view>
                             <view class="delete-item">
                                 <text class="delete-label">{{ t('Documentary.console.item3') }}</text>
@@ -237,19 +237,19 @@
                             <view class="delete-item">
                                 <text class="delete-label">{{ t('Documentary.console.item7') }}</text>
                                 <text class="delete-value">{{ numberFormat(dialogSubscribeFllowData.dealBalance)
-                                    }}</text>
+                                }}</text>
                             </view>
                             <view class="delete-item">
                                 <text class="delete-label">{{ t('Label.AccountType') }}</text>
                                 <text class="delete-value">{{ accountTypeName(dialogSubscribeFllowData.dealLoginType)
-                                    }}</text>
+                                }}</text>
                             </view>
                         </view>
                         <view class="delete-row">
                             <view class="delete-item">
                                 <text class="delete-label">{{ t('Documentary.console.item6') }}</text>
                                 <text class="delete-value">{{ numberFormat(dialogSubscribeFllowData.dealEquity)
-                                    }}</text>
+                                }}</text>
                             </view>
                             <view class="delete-item">
                                 <text class="delete-label">{{ t('Documentary.tradingCenter.item30') }}</text>
@@ -264,12 +264,12 @@
                             <view class="delete-item">
                                 <text class="delete-label">{{ t('Label.Credit') }}</text>
                                 <text class="delete-value">{{ numberFormat(dialogSubscribeFllowData.dealCredit)
-                                    }}</text>
+                                }}</text>
                             </view>
                             <view class="delete-item">
                                 <text class="delete-label">{{ t('Documentary.tradingCenter.item31') }}</text>
                                 <text class="delete-value">{{ dialogSubscribeFllowData.distributionRatio || '0'
-                                    }}%</text>
+                                }}%</text>
                             </view>
                         </view>
                         <view class="delete-row">
@@ -297,7 +297,7 @@
                             <view class="delete-item">
                                 <text class="delete-label">{{ t('Label.Leverage') }}</text>
                                 <text class="delete-value">1:{{ dialogSubscribeFllowData.followLeverage || '--'
-                                    }}</text>
+                                }}</text>
                             </view>
                         </view>
                     </view>
@@ -938,7 +938,7 @@ onMounted(() => {
     align-items: center;
     font-size: px2rpx(22);
     font-weight: 500;
-    color: #fff;
+    color: var(--bs-emphasis-color);
     background-color: rgba(255, 255, 255, 0);
 
     .content-title-btns {
@@ -951,7 +951,7 @@ onMounted(() => {
         .btn-primary {
             min-width: px2rpx(120);
             background-color: var(--color-error);
-            color: #fff;
+            color: var(--bs-emphasis-color);
             padding: 0 px2rpx(12);
             border: none;
             font-size: px2rpx(14);

+ 3 - 3
pages/follow/trading-center.vue

@@ -81,7 +81,7 @@
           <view class="fllow-content">
             <text class="tit">{{ t('Documentary.tradingCenter.item30') }}</text>
             <text class="con">{{ dialogFllowData1.distributionType == 1 ? t('Documentary.TundManagement.item59') : '--'
-              }}
+            }}
             </text>
           </view>
           <view class="fllow-content">
@@ -573,7 +573,7 @@ const applyFllowCancel = () => {
 
 .recommend-tag {
   font-size: 12px;
-  color: #fff;
+  color: var(--bs-emphasis-color);
   padding: 2px 6px;
   border-radius: 4px;
   display: inline-block;
@@ -703,6 +703,6 @@ const applyFllowCancel = () => {
 
 .confirm-btn {
   background-color: #4497ff;
-  color: #fff;
+  color: var(--bs-emphasis-color);
 }
 </style>

+ 1 - 1
pages/follow/trading-management.vue

@@ -1216,7 +1216,7 @@ onMounted(() => {
         .btn-primary {
             min-width: px2rpx(120);
             background-color: var(--color-error);
-            color: #fff;
+            color: var(--bs-emphasis-color);
             padding: 0 px2rpx(12);
             border: none;
             font-size: px2rpx(14);

+ 3 - 3
pages/follow/transfer.vue

@@ -58,7 +58,7 @@
 
                                 <view class="form-row">
                                     <button class="s-btn reselect" type="primary" @click="toTransfer">{{ t('Btn.Submit')
-                                    }}</button>
+                                        }}</button>
                                 </view>
                             </uni-forms>
                         </view>
@@ -311,7 +311,7 @@ onMounted(() => {
                             margin-bottom: px2rpx(22);
                             height: px2rpx(35);
                             background-color: #cf1322;
-                            color: #fff;
+                            color: var(--bs-emphasis-color);
                             border-radius: px2rpx(4);
                             font-weight: 600;
                             display: flex;
@@ -527,7 +527,7 @@ onMounted(() => {
 
                 &[type="primary"] {
                     background-color: #409eff;
-                    color: #fff;
+                    color: var(--bs-emphasis-color);
                     border: none;
 
                     &:hover {

+ 2 - 2
pages/ib/agent-transfer.vue

@@ -795,7 +795,7 @@ onLoad((options) => {
                         margin-bottom: px2rpx(20);
                         height: px2rpx(35);
                         background-color: #cf1322;
-                        color: #fff;
+                        color: var(--bs-emphasis-color);
                         border-radius: px2rpx(4);
                         font-weight: 600;
                         display: flex;
@@ -947,7 +947,7 @@ onLoad((options) => {
 
                 &[type="primary"] {
                     background-color: #409eff;
-                    color: #fff;
+                    color: var(--bs-emphasis-color);
                     border: none;
 
                     &:hover {

+ 526 - 560
pages/ib/linkList.vue

@@ -8,14 +8,14 @@
           {{ t('Ib.Index.CreateLink') }}
         </view>
       </view>
-      <cwg-tabel ref="tableRef" :columns="columns" :mobilePrimaryFields="mobilePrimaryFields"
-                 :api="listApi" :show-operation="false" :showPagination="true" isPages pagesToDetail @goPages="openDetail">
+      <cwg-tabel ref="tableRef" :columns="columns" :mobilePrimaryFields="mobilePrimaryFields" :api="listApi"
+        :show-operation="false" :showPagination="true" isPages pagesToDetail @goPages="openDetail">
         <template #link="{ row }">
           <view class="link-cell">
             <uni-easyinput class="read-input" disabled v-model.trim="row.link"></uni-easyinput>
             <view class="qr-code-icon" @click.stop="showQrCodeDialog(row.link)">
               <svg style="width: 18px; height: 18px; fill: #409eff; vertical-align: middle;" viewBox="0 0 24 24"
-                   xmlns="http://www.w3.org/2000/svg">
+                xmlns="http://www.w3.org/2000/svg">
                 <path
                   d="M3 3h8v8H3V3zm2 2v4h4V5H5zm8-2h8v8h-8V3zm2 2v4h4V5h-4zM3 13h8v8H3v-8zm2 2v4h4v-4H5zm13-2h3v2h-3v-2zm0 4h3v2h-3v-2zm-4-4h2v6h-2v-6zm4-8h2v2h-2V3zm0 4h2v2h-2V7zm-4 0h2v2h-2V7z" />
               </svg>
@@ -36,71 +36,42 @@
       </cwg-tabel>
       <!--详情-->
       <link-detail-dialog :visible="datailVisible" @close="closeDetail" :detail="detail"
-                          @showQrCode="showQrCodeDialog" />
+        @showQrCode="showQrCodeDialog" />
 
       <cwg-popup ref="linkPopup" :visible="dialogLink" type="center" :title="t('Ib.Index.CreateLink')" showFooterLine
-                 @close="dialogLink = false" @confirm="saveLink">
+        @close="dialogLink = false" @confirm="saveLink">
         <view class="dia-content">
           <view class="content" style="font-size: 14px; text-align: left">
             <view class="label">{{ t('Ib.Custom.NameLabelColon') }}</view>
-            <uni-easyinput
-              v-model="linkName"
-              :placeholder="t('Ib.Custom.NameLabel')"
-            />
+            <uni-easyinput v-model="linkName" :placeholder="t('Ib.Custom.NameLabel')" />
 
             <view class="label-tit">{{ t('Ib.Index.Spread5') }} :</view>
             <!--标准账户-->
             <view class="label">{{ t('AccountType.StandardAccount') }} :</view>
-            <cwg-combox
-              v-model:value="accountTypeSettings.standard.selectedIndex"
-              :options="getAvailableSpreads('7')"
-              @change="(val)=>handleAccountTypeChange('standard', '7',val)"
-              :placeholder="t('placeholder.choose')"
-            />
+            <cwg-combox v-model:value="accountTypeSettings.standard.selectedIndex" :options="getAvailableSpreads('7')"
+              @change="(val) => handleAccountTypeChange('standard', '7', val)" :placeholder="t('placeholder.choose')" />
 
             <view class="label">{{ t('AccountType.SeniorAccount') }}</view>
-            <cwg-combox
-              v-model:value="accountTypeSettings.ecn.selectedIndex"
-              :options="getAvailableSpreads('2')"
-              @change="(val)=>handleAccountTypeChange('ecn', '2',val)"
-              :placeholder="t('placeholder.choose')"
-            />
+            <cwg-combox v-model:value="accountTypeSettings.ecn.selectedIndex" :options="getAvailableSpreads('2')"
+              @change="(val) => handleAccountTypeChange('ecn', '2', val)" :placeholder="t('placeholder.choose')" />
 
             <view class="label">{{ t('AccountType.CentAccount') }}</view>
-            <cwg-combox
-              v-model:value="accountTypeSettings.cent.selectedIndex"
-              :options="getAvailableSpreads('8')"
-              @change="(val)=>handleAccountTypeChange('cent', '8',val)"
-              :placeholder="t('placeholder.choose')"
-            />
+            <cwg-combox v-model:value="accountTypeSettings.cent.selectedIndex" :options="getAvailableSpreads('8')"
+              @change="(val) => handleAccountTypeChange('cent', '8', val)" :placeholder="t('placeholder.choose')" />
 
             <view class="btn">
-              <button
-                class="crm-cursor"
-                @click="CreateLink"
-              >{{ t('Ib.Index.CreateLink') }}
+              <button class="crm-cursor" @click="CreateLink">{{ t('Ib.Index.CreateLink') }}
               </button>
             </view>
             <view class="link qrCode" v-if="link">
-              <QrCode
-                ref="qrCode"
-                :text="link"
-                :width="200"
-                :height="200"
-              />
+              <QrCode ref="qrCode" :text="link" :width="200" :height="200" />
               <view class="btn">
-                <button
-                  class="crm-cursor"
-                  @click="downloadQrCode()"
-                >{{ t('Btn.item9') }}
+                <button class="crm-cursor" @click="downloadQrCode()">{{ t('Btn.item9') }}
                 </button>
               </view>
             </view>
             <view class="link" v-if="link">
-              <uni-easyinput
-                disabled
-                v-model="link"
-              />
+              <uni-easyinput disabled v-model="link" />
               <button class="btn" @click="CopyLink(link)">
                 {{ t('Ib.Index.Copy') }}
               </button>
@@ -109,16 +80,11 @@
         </view>
       </cwg-popup>
       <cwg-popup :visible="qrCodeDialogVisible" type="center" :title="t('Ib.Index.QrCode')" showFooterLine
-                 @singleClick="qrCodeDialogVisible = false" :singleBtnText="t('Btn.Cancel')" :footerType="'single'"
-                 @close="qrCodeDialogVisible = false">
+        @singleClick="qrCodeDialogVisible = false" :singleBtnText="t('Btn.Cancel')" :footerType="'single'"
+        @close="qrCodeDialogVisible = false">
         <view class="qr-code-dialog-content">
-          <QrCode
-            ref="dialogQrCode"
-            v-if="currentQrCodeLink"
-            :text="currentQrCodeLink"
-            :width="300"
-            :height="300"
-          ></QrCode>
+          <QrCode ref="dialogQrCode" v-if="currentQrCodeLink" :text="currentQrCodeLink" :width="300" :height="300">
+          </QrCode>
           <view v-if="currentQrCodeLink" class="qr-code-btn">
             <button @click="downloadDialogQrCode">
               {{ t('Btn.item9') }}
@@ -131,567 +97,567 @@
 </template>
 
 <script setup lang="ts">
-  import { ref, reactive, computed, onMounted, onUnmounted, watch } from 'vue'
-  import { onLoad } from '@dcloudio/uni-app'
-  import { useI18n } from 'vue-i18n' // uni-app 中已集成,但需配置
-  import { customApi } from '@/service/custom'
-  import { financialApi } from '@/service/financial'
-  import Config from '@/config/index'
-  import PaymentMethodsList from './components/PaymentMethodsList.vue'
-  import { ibApi } from '@/service/ib'
-  import useUserStore from '@/stores/use-user-store'
-  import QrCode from '@/components/QrCode.vue'
-  import LinkDetailDialog from '@/pages/ib/components/linkDetailDialog.vue'
-
-  const { Code, Host80 } = Config
-  const { t, locale } = useI18n()
-  // 列表数据
-  const tableData = ref([])
-  const loading = ref(false)
-  const listApi = ref(null)
-  const currentQrCodeLink = ref('')
-  const qrCodeDialogVisible = ref(false)
-  const datailVisible = ref(false)
-  const detail = ref({})
-  // 按账户类型分组的数据
-  const accountTypeData = ref({
-    ecn: [], // loginType = 2
-    standard: [], // loginType = 7
-    cent: [], // loginType = 8
-  })
-  const tableRef = ref(null)
-  // 弹窗中的二维码组件
-  const dialogQrCode = ref(null)
-  const excludeList = ref([])
-  const excludeLists = ref([])
-  const excludeListVN = ref([])
-  const excludeShowLoginTypes = ref([])
-  // 账户类型设置:每个账户类型对应一个点差设置
-  const accountTypeSettings = ref({
-    // ECN账户,存储选中的完整对象
-    ecn: { selectedIndex: null, selectedItem: null, loginType: '2' },
-    // 标准账户
-    standard: { selectedIndex: null, selectedItem: null, loginType: '7' },
-    // 美分账户
-    cent: { selectedIndex: null, selectedItem: null, loginType: '8' },
-  })
-
-  const selectedSpreadId = ref('')
-  const linkName = ref('')
-  const loginTypes = ref('')
-  const link = ref('')
-  const linkValue = ref('')
-  const ibInvalid = ref('B0')
-  const dialogLink = ref(false)
-  const qrCode = ref(null)
+import { ref, reactive, computed, onMounted, onUnmounted, watch } from 'vue'
+import { onLoad } from '@dcloudio/uni-app'
+import { useI18n } from 'vue-i18n' // uni-app 中已集成,但需配置
+import { customApi } from '@/service/custom'
+import { financialApi } from '@/service/financial'
+import Config from '@/config/index'
+import PaymentMethodsList from './components/PaymentMethodsList.vue'
+import { ibApi } from '@/service/ib'
+import useUserStore from '@/stores/use-user-store'
+import QrCode from '@/components/QrCode.vue'
+import LinkDetailDialog from '@/pages/ib/components/linkDetailDialog.vue'
+
+const { Code, Host80 } = Config
+const { t, locale } = useI18n()
+// 列表数据
+const tableData = ref([])
+const loading = ref(false)
+const listApi = ref(null)
+const currentQrCodeLink = ref('')
+const qrCodeDialogVisible = ref(false)
+const datailVisible = ref(false)
+const detail = ref({})
+// 按账户类型分组的数据
+const accountTypeData = ref({
+  ecn: [], // loginType = 2
+  standard: [], // loginType = 7
+  cent: [], // loginType = 8
+})
+const tableRef = ref(null)
+// 弹窗中的二维码组件
+const dialogQrCode = ref(null)
+const excludeList = ref([])
+const excludeLists = ref([])
+const excludeListVN = ref([])
+const excludeShowLoginTypes = ref([])
+// 账户类型设置:每个账户类型对应一个点差设置
+const accountTypeSettings = ref({
+  // ECN账户,存储选中的完整对象
+  ecn: { selectedIndex: null, selectedItem: null, loginType: '2' },
+  // 标准账户
+  standard: { selectedIndex: null, selectedItem: null, loginType: '7' },
+  // 美分账户
+  cent: { selectedIndex: null, selectedItem: null, loginType: '8' },
+})
+
+const selectedSpreadId = ref('')
+const linkName = ref('')
+const loginTypes = ref('')
+const link = ref('')
+const linkValue = ref('')
+const ibInvalid = ref('B0')
+const dialogLink = ref(false)
+const qrCode = ref(null)
+
+const { userInfo } = useUserStore()
+
+const country = computed(() => {
+  return userInfo.customInfo.country
+})
+const agentAccountSetting = computed(() => {
+  return userInfo.ibInfo.agentAccountSetting ||
+    0
+})
+const getInfoId = computed(() => {
+  console.log(userInfo.ibInfo.id, 'userInfo.ibInfo.id')
+  return userInfo.ibInfo.id ||
+    0
+})
+
+listApi.value = ibApi.customLinkSearchList
+
+const columns = ref([
+  {
+    prop: 'name',
+    label: t('Ib.Custom.NameLabel'),
+    align: 'center',
+  },
+  {
+    prop: 'link',
+    label: t('Ib.Index.Link'),
+    align: 'center',
+    slot: 'link',
+    width: 480,
+  },
+  {
+    prop: 'linkValue',
+    label: t('Ib.Index.LinkValue'),
+    align: 'center',
+    slot: 'linkValue',
+    width: 200,
+  },
+  {
+    prop: 'customNum',
+    label: t('Ib.Index.CustomNum'),
+    align: 'center',
+  },
+  {
+    prop: 'comPoint',
+    label: t('AccountType.StandardAccount'),
+    align: 'center',
+    formatter: ({ row }) => getGroupNameByLoginType(row.loginConfig, 7),
+  },
+  {
+    prop: 'hide',
+    label: 'ECN',
+    align: 'center',
+    formatter: ({ row }) => getGroupNameByLoginType(row.loginConfig, 2),
+
+  },
+  {
+    prop: 'loginTypes',
+    label: t('AccountType.CentAccount'),
+    align: 'center',
+    formatter: ({ row }) => getGroupNameByLoginType(row.loginConfig, 8),
+  },
+])
+
+const mobilePrimaryFields = ref([
+  {
+    prop: 'name',
+    label: t('Ib.Custom.NameLabel'),
+    align: 'center',
+  },
+  {
+    prop: 'customNum',
+    label: t('Ib.Index.CustomNum'),
+    align: 'center',
+  },
+  {
+    prop: 'more',
+    type: 'more',
+    width: 20,
+    align: 'right',
+  },
+])
+
+const getGroupNameByLoginType = (loginConfig, loginType) => {
+  if (!loginConfig) return '--'
+
+  // 如果 loginConfig 是字符串,尝试解析为数组
+  let config = loginConfig
+  if (typeof loginConfig === 'string') {
+    try {
+      config = JSON.parse(loginConfig)
+    } catch (e) {
+      return '--'
+    }
+  }
 
-  const { userInfo } = useUserStore()
+  // 确保是数组
+  if (!Array.isArray(config)) {
+    return '--'
+  }
 
-  const country = computed(() => {
-    return userInfo.customInfo.country
-  })
-  const agentAccountSetting = computed(() => {
-    return userInfo.ibInfo.agentAccountSetting ||
-      0
+  // 查找匹配的 loginType
+  const matchedItem = config.find(item => {
+    // 支持数字和字符串类型的比较
+    return item.loginType === loginType ||
+      item.loginType === String(loginType) ||
+      String(item.loginType) === String(loginType)
   })
-  const getInfoId = computed(() => {
-    console.log(userInfo.ibInfo.id, 'userInfo.ibInfo.id')
-    return userInfo.ibInfo.id ||
-      0
-  })
-
-  listApi.value = ibApi.customLinkSearchList
-
-  const columns = ref([
-    {
-      prop: 'name',
-      label: t('Ib.Custom.NameLabel'),
-      align: 'center',
-    },
-    {
-      prop: 'link',
-      label: t('Ib.Index.Link'),
-      align: 'center',
-      slot: 'link',
-      width: 480,
-    },
-    {
-      prop: 'linkValue',
-      label: t('Ib.Index.LinkValue'),
-      align: 'center',
-      slot: 'linkValue',
-      width: 200,
-    },
-    {
-      prop: 'customNum',
-      label: t('Ib.Index.CustomNum'),
-      align: 'center',
-    },
-    {
-      prop: 'comPoint',
-      label: t('AccountType.StandardAccount'),
-      align: 'center',
-      formatter: ({ row }) => getGroupNameByLoginType(row.loginConfig, 7),
-    },
-    {
-      prop: 'hide',
-      label: 'ECN',
-      align: 'center',
-      formatter: ({ row }) => getGroupNameByLoginType(row.loginConfig, 2),
 
-    },
-    {
-      prop: 'loginTypes',
-      label: t('AccountType.CentAccount'),
-      align: 'center',
-      formatter: ({ row }) => getGroupNameByLoginType(row.loginConfig, 8),
-    },
-  ])
+  return matchedItem ? (matchedItem.groupName || '--') : '--'
+}
 
-  const mobilePrimaryFields = ref([
-    {
-      prop: 'name',
-      label: t('Ib.Custom.NameLabel'),
-      align: 'center',
-    },
-    {
-      prop: 'customNum',
-      label: t('Ib.Index.CustomNum'),
-      align: 'center',
-    },
-    {
-      prop: 'more',
-      type: 'more',
-      width: 20,
-      align: 'right',
+const CopyLink = (link) => {
+  uni.setClipboardData({
+    data: link,
+    success: () => {
+      uni.showToast({
+        title: t('card.Msg.m8'),
+        icon: 'success',
+      })
     },
-  ])
-
-  const getGroupNameByLoginType = (loginConfig, loginType) => {
-    if (!loginConfig) return '--'
-
-    // 如果 loginConfig 是字符串,尝试解析为数组
-    let config = loginConfig
-    if (typeof loginConfig === 'string') {
-      try {
-        config = JSON.parse(loginConfig)
-      } catch (e) {
-        return '--'
-      }
-    }
-
-    // 确保是数组
-    if (!Array.isArray(config)) {
-      return '--'
+  })
+}
+const showQrCodeDialog = (link) => {
+  if (!link) return
+  currentQrCodeLink.value = link
+  qrCodeDialogVisible.value = true
+}
+// 获取开户链接账户类型列表
+const getCustomLinkTypes = async () => {
+  let res = await ibApi.customLinkTypes()
+  if (res.code == Code.StatusOK) {
+    // 按 loginType 分组数据
+    const data = res.data || []
+    console.log(data, '123')
+    accountTypeData.value = {
+      ecn: data.filter(item => item.loginType === 2 || item.loginType === '2'),
+      standard: data.filter(item => item.loginType === 7 || item.loginType === '7'),
+      cent: data.filter(item => item.loginType === 8 || item.loginType === '8'),
     }
-
-    // 查找匹配的 loginType
-    const matchedItem = config.find(item => {
-      // 支持数字和字符串类型的比较
-      return item.loginType === loginType ||
-        item.loginType === String(loginType) ||
-        String(item.loginType) === String(loginType)
-    })
-
-    return matchedItem ? (matchedItem.groupName || '--') : '--'
-  }
-
-  const CopyLink = (link) => {
-    uni.setClipboardData({
-      data: link,
-      success: () => {
-        uni.showToast({
-          title: t('card.Msg.m8'),
-          icon: 'success',
-        })
-      },
+  } else {
+    uni.showToast({
+      title: res.msg,
+      icon: 'none',
     })
-  }
-  const showQrCodeDialog = (link) => {
-    if (!link) return
-    currentQrCodeLink.value = link
-    qrCodeDialogVisible.value = true
-  }
-  // 获取开户链接账户类型列表
-  const getCustomLinkTypes = async () => {
-    let res = await ibApi.customLinkTypes()
-    if (res.code == Code.StatusOK) {
-      // 按 loginType 分组数据
-      const data = res.data || []
-      console.log(data, '123')
-      accountTypeData.value = {
-        ecn: data.filter(item => item.loginType === 2 || item.loginType === '2'),
-        standard: data.filter(item => item.loginType === 7 || item.loginType === '7'),
-        cent: data.filter(item => item.loginType === 8 || item.loginType === '8'),
-      }
-    } else {
-      uni.showToast({
-        title: res.msg,
-        icon: 'none',
-      })
-      accountTypeData.value = {
-        ecn: [],
-        standard: [],
-        cent: [],
-      }
+    accountTypeData.value = {
+      ecn: [],
+      standard: [],
+      cent: [],
     }
   }
-
-  // 获取账户类型设置
-  const getAgentAccountSetting = () => {
-    // 如果是越南账户,显示标准账户、美分账户和ECN账户
-    if (country.value === 'VN') {
-      const standardAccount = excludeLists.value.find(
-        (item) => item.value === '7',
-      )
-      const centAccount = excludeLists.value.find(
-        (item) => item.value === '8',
-      )
-      const ecnAccount = excludeLists.value.find(
-        (item) => item.value === '2',
-      )
-      excludeListVN.value = [standardAccount, centAccount, ecnAccount].filter(
-        Boolean,
-      )
-      excludeShowLoginTypes.value = []
-    } else {
-      if (agentAccountSetting.value == 0) {
-        const excludeValues = userInfo
-          .customInfo.excludeShowLoginTypes
-        try {
-          const excludeList = excludeLists.value.filter(
-            (item) => !excludeValues.includes(item.value),
-          )
-          excludeList.value = excludeList
-          excludeShowLoginTypes.value = []
-        } catch (error) {
-          excludeShowLoginTypes.value = []
-          excludeList.value = excludeLists.value
-        }
-      } else {
+}
+
+// 获取账户类型设置
+const getAgentAccountSetting = () => {
+  // 如果是越南账户,显示标准账户、美分账户和ECN账户
+  if (country.value === 'VN') {
+    const standardAccount = excludeLists.value.find(
+      (item) => item.value === '7',
+    )
+    const centAccount = excludeLists.value.find(
+      (item) => item.value === '8',
+    )
+    const ecnAccount = excludeLists.value.find(
+      (item) => item.value === '2',
+    )
+    excludeListVN.value = [standardAccount, centAccount, ecnAccount].filter(
+      Boolean,
+    )
+    excludeShowLoginTypes.value = []
+  } else {
+    if (agentAccountSetting.value == 0) {
+      const excludeValues = userInfo
+        .customInfo.excludeShowLoginTypes
+      try {
+        const excludeList = excludeLists.value.filter(
+          (item) => !excludeValues.includes(item.value),
+        )
+        excludeList.value = excludeList
+        excludeShowLoginTypes.value = []
+      } catch (error) {
         excludeShowLoginTypes.value = []
         excludeList.value = excludeLists.value
-
       }
+    } else {
+      excludeShowLoginTypes.value = []
+      excludeList.value = excludeLists.value
+
     }
   }
-  // add
-  const addLink = async () => {
-    console.log(getInfoId.value, 'getInfo.id')
-    await getCustomLinkTypes()
-    getAgentAccountSetting()
-    // 重置所有表单字段
-    selectedSpreadId.value = ''
-    linkName.value = ''
-    loginTypes.value = ''
-    linkValue.value = ''
-    // 重置账户类型设置
-    accountTypeSettings.value = {
-      ecn: { selectedIndex: null, selectedItem: null, loginType: '2' },
-      standard: { selectedIndex: null, selectedItem: null, loginType: '7' },
-      cent: { selectedIndex: null, selectedItem: null, loginType: '8' },
-    }
-    dialogLink.value = true
-  }
-  const onNameChange = (e) => {
-    console.log(e)
+}
+// add
+const addLink = async () => {
+  console.log(getInfoId.value, 'getInfo.id')
+  await getCustomLinkTypes()
+  getAgentAccountSetting()
+  // 重置所有表单字段
+  selectedSpreadId.value = ''
+  linkName.value = ''
+  loginTypes.value = ''
+  linkValue.value = ''
+  // 重置账户类型设置
+  accountTypeSettings.value = {
+    ecn: { selectedIndex: null, selectedItem: null, loginType: '2' },
+    standard: { selectedIndex: null, selectedItem: null, loginType: '7' },
+    cent: { selectedIndex: null, selectedItem: null, loginType: '8' },
   }
-  // 账户类型选择变化处理
-  const handleAccountTypeChange = (type, loginType, val) => {
-    console.log(type, loginType, val, '221')
-    const setting = accountTypeSettings.value[type]
-    const availableSpreads = getAvailableSpreads(loginType)
-    if (setting.selectedIndex !== null && setting.selectedIndex !== undefined) {
-      accountTypeSettings.value[type].selectedItem = availableSpreads[setting.selectedIndex] || null
-    } else {
-      accountTypeSettings.value[type].selectedItem = null
-    }
+  dialogLink.value = true
+}
+const onNameChange = (e) => {
+  console.log(e)
+}
+// 账户类型选择变化处理
+const handleAccountTypeChange = (type, loginType, val) => {
+  console.log(type, loginType, val, '221')
+  const setting = accountTypeSettings.value[type]
+  const availableSpreads = getAvailableSpreads(loginType)
+  if (setting.selectedIndex !== null && setting.selectedIndex !== undefined) {
+    accountTypeSettings.value[type].selectedItem = availableSpreads[setting.selectedIndex] || null
+  } else {
+    accountTypeSettings.value[type].selectedItem = null
   }
-  // 获取指定账户类型可用的点差设置
-  const getAvailableSpreads = (loginType) => {
-    // 根据 loginType 返回对应的数据
-    if (loginType === '2') {
-      return accountTypeData.value.ecn?.map((item, index) => ({ ...item, value: index, text: item.groupName })) || []
-    } else if (loginType === '7') {
-      return accountTypeData.value.standard?.map((item, index) => ({
-        ...item,
-        value: index,
-        text: item.groupName,
-      })) || []
-    } else if (loginType === '8') {
-      return accountTypeData.value.cent?.map((item, index) => ({ ...item, value: index, text: item.groupName })) || []
-    }
-    return []
+}
+// 获取指定账户类型可用的点差设置
+const getAvailableSpreads = (loginType) => {
+  // 根据 loginType 返回对应的数据
+  if (loginType === '2') {
+    return accountTypeData.value.ecn?.map((item, index) => ({ ...item, value: index, text: item.groupName })) || []
+  } else if (loginType === '7') {
+    return accountTypeData.value.standard?.map((item, index) => ({
+      ...item,
+      value: index,
+      text: item.groupName,
+    })) || []
+  } else if (loginType === '8') {
+    return accountTypeData.value.cent?.map((item, index) => ({ ...item, value: index, text: item.groupName })) || []
   }
-  // 获取链接值
-  const getLink1 = async () => {
-    // 收集所有选中的账户类型和对应的点差设置
-    const selectedAccountTypes = []
-    const loginConfig = []
-
-    // 检查每个账户类型是否已选择点差设置
-    Object.keys(accountTypeSettings.value).forEach((key) => {
-      const setting = accountTypeSettings.value[key]
-      if (setting.selectedItem) {
-        selectedAccountTypes.push(setting.loginType)
-        // 将选中的整个对象添加到 loginConfig 数组
-        loginConfig.push(setting.selectedItem)
-      }
-    })
-
-    if (selectedAccountTypes.length === 0) {
-      uni.showToast({
-        title: t('Ib.Index.Spread5'),
-        icon: 'none',
-      })
-      link.value = ''
-      return
-    }
-
-    // 构建请求参数
-    const validList = {
-      loginConfig: loginConfig,
+  return []
+}
+// 获取链接值
+const getLink1 = async () => {
+  // 收集所有选中的账户类型和对应的点差设置
+  const selectedAccountTypes = []
+  const loginConfig = []
+
+  // 检查每个账户类型是否已选择点差设置
+  Object.keys(accountTypeSettings.value).forEach((key) => {
+    const setting = accountTypeSettings.value[key]
+    if (setting.selectedItem) {
+      selectedAccountTypes.push(setting.loginType)
+      // 将选中的整个对象添加到 loginConfig 数组
+      loginConfig.push(setting.selectedItem)
     }
+  })
 
-    // 直接调用接口生成链接
-    const res = await ibApi.customLinkCode(validList)
-    if (res.code === Code.StatusOK) {
-      uni.showToast({
-        title: res.msg,
-        icon: 'none',
-      })
-      return res.data
-    } else {
-      uni.showToast({
-        title: res.msg,
-        icon: 'error',
-      })
-      return ''
-    }
+  if (selectedAccountTypes.length === 0) {
+    uni.showToast({
+      title: t('Ib.Index.Spread5'),
+      icon: 'none',
+    })
+    link.value = ''
+    return
   }
 
-  const saveLink = async () => {
-    if (!linkName.value) {
-      uni.showToast({
-        title: t('Ib.Custom.NameLabel'),
-        icon: 'none',
-      })
-      return
-    }
-    if (!link.value) {
-      uni.showToast({
-        title: t('Ib.Index.CreateLink'),
-        icon: 'none',
-      })
-      return
-    }
+  // 构建请求参数
+  const validList = {
+    loginConfig: loginConfig,
+  }
 
-    // 收集所有选中的账户类型配置
-    const loginConfig = []
+  // 直接调用接口生成链接
+  const res = await ibApi.customLinkCode(validList)
+  if (res.code === Code.StatusOK) {
+    uni.showToast({
+      title: res.msg,
+      icon: 'none',
+    })
+    return res.data
+  } else {
+    uni.showToast({
+      title: res.msg,
+      icon: 'error',
+    })
+    return ''
+  }
+}
 
-    Object.keys(accountTypeSettings.value).forEach((key) => {
-      const setting = accountTypeSettings.value[key]
-      if (setting.selectedItem) {
-        // 将选中的整个对象添加到 loginConfig 数组
-        loginConfig.push(setting.selectedItem)
-      }
+const saveLink = async () => {
+  if (!linkName.value) {
+    uni.showToast({
+      title: t('Ib.Custom.NameLabel'),
+      icon: 'none',
     })
+    return
+  }
+  if (!link.value) {
+    uni.showToast({
+      title: t('Ib.Index.CreateLink'),
+      icon: 'none',
+    })
+    return
+  }
 
-    if (loginConfig.length === 0) {
-      uni.showToast({
-        title: t('Ib.Index.Spread5'),
-        icon: 'none',
-      })
-      return
+  // 收集所有选中的账户类型配置
+  const loginConfig = []
+
+  Object.keys(accountTypeSettings.value).forEach((key) => {
+    const setting = accountTypeSettings.value[key]
+    if (setting.selectedItem) {
+      // 将选中的整个对象添加到 loginConfig 数组
+      loginConfig.push(setting.selectedItem)
     }
+  })
 
-    // 调用保存接口
-    const res = await ibApi.customLinkAdd({
-      name: linkName.value,
-      link: link.value,
-      linkValue: linkValue.value,
-      loginConfig: loginConfig,
+  if (loginConfig.length === 0) {
+    uni.showToast({
+      title: t('Ib.Index.Spread5'),
+      icon: 'none',
     })
-
-    if (res.code === Code.StatusOK) {
-      uni.showToast({
-        title: res.msg,
-        icon: 'none',
-      })
-      dialogLink.value = false
-      // 重置表单
-      linkName.value = ''
-      link.value = ''
-      linkValue.value = ''
-      excludeShowLoginTypes.value = []
-      selectedSpreadId.value = ''
-      accountTypeSettings.value = {
-        ecn: { selectedIndex: null, selectedItem: null, loginType: '2' },
-        standard: { selectedIndex: null, selectedItem: null, loginType: '7' },
-        cent: { selectedIndex: null, selectedItem: null, loginType: '8' },
-      }
-      tableRef.value.refreshTable()
-    } else {
-      uni.showToast({
-        title: res.msg,
-        icon: 'error',
-      })
-    }
+    return
   }
-  watch(() => dialogLink.value, (val) => {
-    // 关闭弹窗清空
-    if (!val) {
-      link.value = ''
-    }
+
+  // 调用保存接口
+  const res = await ibApi.customLinkAdd({
+    name: linkName.value,
+    link: link.value,
+    linkValue: linkValue.value,
+    loginConfig: loginConfig,
   })
-  // 生成链接(不保存)
-  const CreateLink = async () => {
-    console.log(linkName.value)
-    if (!linkName.value) {
-      uni.showToast({
-        title: t('Ib.Custom.NameLabel'),
-        icon: 'none',
-      })
-      return
-    }
-    const value = await getLink1()
-    if (!value) return
-    linkValue.value = value
-    link.value = `${Host80}/#/signup/${getInfoId.value}/${value}/${ibInvalid.value}`
-  }
 
-  const downloadQrCode = (type = 0) => {
-    qrCode.value.download()
-  }
-  // 下载弹窗中的二维码
-  const downloadDialogQrCode = (type = 0) => {
-    dialogQrCode.value.download()
+  if (res.code === Code.StatusOK) {
+    uni.showToast({
+      title: res.msg,
+      icon: 'none',
+    })
+    dialogLink.value = false
+    // 重置表单
+    linkName.value = ''
+    link.value = ''
+    linkValue.value = ''
+    excludeShowLoginTypes.value = []
+    selectedSpreadId.value = ''
+    accountTypeSettings.value = {
+      ecn: { selectedIndex: null, selectedItem: null, loginType: '2' },
+      standard: { selectedIndex: null, selectedItem: null, loginType: '7' },
+      cent: { selectedIndex: null, selectedItem: null, loginType: '8' },
+    }
+    tableRef.value.refreshTable()
+  } else {
+    uni.showToast({
+      title: res.msg,
+      icon: 'error',
+    })
   }
-  // 打开详情弹窗
-  const openDetail = (row) => {
-    datailVisible.value = true
-    detail.value = row
+}
+watch(() => dialogLink.value, (val) => {
+  // 关闭弹窗清空
+  if (!val) {
+    link.value = ''
   }
-  // 关闭详情弹窗
-  const closeDetail = () => {
-    datailVisible.value = false
-    detail.value = {}
+})
+// 生成链接(不保存)
+const CreateLink = async () => {
+  console.log(linkName.value)
+  if (!linkName.value) {
+    uni.showToast({
+      title: t('Ib.Custom.NameLabel'),
+      icon: 'none',
+    })
+    return
   }
+  const value = await getLink1()
+  if (!value) return
+  linkValue.value = value
+  link.value = `${Host80}/#/signup/${getInfoId.value}/${value}/${ibInvalid.value}`
+}
+
+const downloadQrCode = (type = 0) => {
+  qrCode.value.download()
+}
+// 下载弹窗中的二维码
+const downloadDialogQrCode = (type = 0) => {
+  dialogQrCode.value.download()
+}
+// 打开详情弹窗
+const openDetail = (row) => {
+  datailVisible.value = true
+  detail.value = row
+}
+// 关闭详情弹窗
+const closeDetail = () => {
+  datailVisible.value = false
+  detail.value = {}
+}
 </script>
 <style lang="scss" scoped>
-  @import "@/uni.scss";
+@import "@/uni.scss";
 
-  .add-link {
-    width: 100%;
+.add-link {
+  width: 100%;
+  display: flex;
+  align-items: center;
+  justify-content: flex-end;
+
+  .add-link-content {
+    cursor: pointer;
     display: flex;
     align-items: center;
-    justify-content: flex-end;
-
-    .add-link-content {
-      cursor: pointer;
-      display: flex;
-      align-items: center;
-      color: #fff;
-      padding: 0 px2rpx(10);
-      background-color: #ffde02;
-      font-size: px2rpx(16);
-      font-weight: bold;
-      line-height: px2rpx(26);
-      border-radius: px2rpx(5);
-    }
+    color: var(--bs-emphasis-color);
+    padding: 0 px2rpx(10);
+    background-color: #ffde02;
+    font-size: px2rpx(16);
+    font-weight: bold;
+    line-height: px2rpx(26);
+    border-radius: px2rpx(5);
   }
-
-  .link-cell {
-    width: 100%;
-    display: inline-flex;
-    align-items: center;
-    justify-content: flex-start;
-    gap: 5px;
+}
+
+.link-cell {
+  width: 100%;
+  display: inline-flex;
+  align-items: center;
+  justify-content: flex-start;
+  gap: 5px;
+  white-space: nowrap;
+
+  .read-input {
+    max-width: px2rpx(360);
     white-space: nowrap;
-
-    .read-input {
-      max-width: px2rpx(360);
-      white-space: nowrap;
-      overflow: hidden;
-      text-overflow: ellipsis;
-      flex: 1;
-    }
-
-    .copy {
-      cursor: pointer;
-      line-height: px2rpx(28);
-    }
+    overflow: hidden;
+    text-overflow: ellipsis;
+    flex: 1;
   }
 
-  .qr-code-icon {
+  .copy {
     cursor: pointer;
-    user-select: none;
-    transition: opacity 0.3s;
-    white-space: nowrap;
-    line-height: 28px;
-    display: flex;
-    align-items: center;
-    padding: 0 8px;
-
-    &:hover {
-      opacity: 0.7;
-    }
+    line-height: px2rpx(28);
   }
-
-  .dia-content {
-    padding: 20rpx;
+}
+
+.qr-code-icon {
+  cursor: pointer;
+  user-select: none;
+  transition: opacity 0.3s;
+  white-space: nowrap;
+  line-height: 28px;
+  display: flex;
+  align-items: center;
+  padding: 0 8px;
+
+  &:hover {
+    opacity: 0.7;
   }
+}
 
-  .content {
-    display: flex;
-    flex-direction: column;
-    gap: 20rpx;
-  }
+.dia-content {
+  padding: 20rpx;
+}
 
-  .label-tit {
-    font-weight: 500;
-    margin-bottom: 8rpx;
-  }
+.content {
+  display: flex;
+  flex-direction: column;
+  gap: 20rpx;
+}
 
-  .label {
-    font-weight: 400;
-    margin-bottom: 8rpx;
-  }
+.label-tit {
+  font-weight: 500;
+  margin-bottom: 8rpx;
+}
 
-  .btn {
-    margin-top: px2rpx(16);
-    text-align: center;
-  }
+.label {
+  font-weight: 400;
+  margin-bottom: 8rpx;
+}
 
-  .link {
-    display: flex;
-    margin-top: px2rpx(20);
-
-    .btn {
-      display: flex;
-      align-items: center;
-      justify-content: center;
-      height: px2rpx(35);
-      margin: 0 px2rpx(10);
-    }
-  }
+.btn {
+  margin-top: px2rpx(16);
+  text-align: center;
+}
 
-  .qrCode {
-    display: flex;
-    flex-direction: column;
-    align-items: center;
-    gap: px2rpx(16);
-  }
+.link {
+  display: flex;
+  margin-top: px2rpx(20);
 
-  .qr-code-dialog-content {
+  .btn {
     display: flex;
-    flex-direction: column;
-    justify-content: center;
     align-items: center;
-    padding: px2rpx(20) 0;
-
-    .qr-code-btn {
-      margin-top: px2rpx(16);
-    }
+    justify-content: center;
+    height: px2rpx(35);
+    margin: 0 px2rpx(10);
+  }
+}
+
+.qrCode {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  gap: px2rpx(16);
+}
+
+.qr-code-dialog-content {
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  align-items: center;
+  padding: px2rpx(20) 0;
+
+  .qr-code-btn {
+    margin-top: px2rpx(16);
   }
+}
 </style>

+ 1 - 1
pages/ib/promotion.vue

@@ -295,7 +295,7 @@ const logoList = ref([
       top: px2rpx(10);
       right: px2rpx(10);
       background-color: #d32f2f;
-      color: #fff;
+      color: var(--bs-emphasis-color);
       font-size: px2rpx(12);
       padding: px2rpx(2) px2rpx(8);
       border-radius: px2rpx(4);

+ 2 - 2
pages/ib/settingPammManager.vue

@@ -327,7 +327,7 @@ onLoad((options: any) => {
     &.active {
       font-weight: bold;
       background-color: var(--color-error);
-      color: #fff;
+      color: var(--bs-emphasis-color);
       border-color: var(--color-error);
     }
   }
@@ -407,7 +407,7 @@ onLoad((options: any) => {
     height: px2rpx(32);
     border-radius: px2rpx(4);
     background-color: var(--color-error);
-    color: #fff;
+    color: var(--bs-emphasis-color);
     display: flex;
     align-items: center;
     justify-content: center;

+ 4 - 4
pages/ib/transfer.vue

@@ -57,19 +57,19 @@
                                                 <label class="checkbox">
                                                     <checkbox value="1" :checked="form.agree5" />
                                                     <text>{{ t('news_add_field1.activitiesNZTwo.itemDeposit1')
-                                                        }}</text>
+                                                    }}</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>
                                                         <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>
+                                                        }}</text>
                                                     </view>
 
                                                 </label>
@@ -849,7 +849,7 @@ onLoad((options) => {
                         margin-bottom: px2rpx(20);
                         height: px2rpx(35);
                         background-color: #cf1322;
-                        color: #fff;
+                        color: var(--bs-emphasis-color);
                         border-radius: px2rpx(4);
                         font-weight: 600;
                         display: flex;

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

@@ -7,7 +7,7 @@
                 <view class="b-card">
                     <view class="card-top">
                         <text class="tit">{{ t('Custom.Deposit.Title22')
-                            }}</text>
+                        }}</text>
                         <cwg-asset-tabs v-if="tabsConfig.length > 0" v-model="activeTab" :tabs="tabsConfig" />
                         <uni-loading v-if="currentTableData.length == 0" />
                         <view v-if="currentTableData.length">
@@ -16,7 +16,7 @@
                         <view v-if="step3" class="reselect-btn">
                             <button class="s-btn reselect" type="primary" @click="showTable">{{
                                 t('Custom.Deposit.Reselect')
-                                }}</button>
+                            }}</button>
                         </view>
                     </view>
                 </view>
@@ -151,7 +151,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') }}
@@ -313,7 +313,7 @@
                                 <uni-col :span="24" v-if="channelData.type != 'BANK_TELEGRAPHIC' && isStep3">
                                     <view class="tit">
                                         <text>{{ t('Custom.Withdraw.Title3') + '(' + channelData.currency + ')'
-                                            }}</text>
+                                        }}</text>
                                     </view>
                                 </uni-col>
                                 <uni-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12"
@@ -1557,7 +1557,7 @@ watch(() => form.amount, (newVal) => {
             width: 100%;
             height: px2rpx(48);
             background-color: #cf1322;
-            color: #fff;
+            color: var(--bs-emphasis-color);
             border-radius: px2rpx(12);
             font-size: px2rpx(16);
             font-weight: 600;
@@ -1677,7 +1677,7 @@ watch(() => form.amount, (newVal) => {
 
             .btn {
                 background: var(--color-error-600, #cf1322);
-                color: #fff;
+                color: var(--bs-emphasis-color);
                 padding: px2rpx(10) px2rpx(48);
                 border-radius: px2rpx(24);
                 font-size: px2rpx(15);

+ 6 - 6
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>
@@ -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">
@@ -1620,7 +1620,7 @@ watch(() => form.amount, (newVal) => {
             width: 100%;
             height: px2rpx(48);
             background-color: #cf1322;
-            color: #fff;
+            color: var(--bs-emphasis-color);
             border-radius: px2rpx(12);
             font-size: px2rpx(16);
             font-weight: 600;
@@ -1738,7 +1738,7 @@ watch(() => form.amount, (newVal) => {
 
             .btn {
                 background: var(--color-error-600, #cf1322);
-                color: #fff;
+                color: var(--bs-emphasis-color);
                 padding: px2rpx(10) px2rpx(48);
                 border-radius: px2rpx(24);
                 font-size: px2rpx(15);
@@ -1813,7 +1813,7 @@ watch(() => form.amount, (newVal) => {
         margin-bottom: px2rpx(12);
         height: px2rpx(35);
         background-color: #cf1322;
-        color: #fff;
+        color: var(--bs-emphasis-color);
         border-radius: px2rpx(4);
         font-weight: 600;
         display: flex;

+ 7 - 7
pages/login/index.vue

@@ -917,7 +917,7 @@ const handleChatIconClick = () => {
           margin: 0 0 0 px2rpx(10);
           font-size: px2rpx(56);
           line-height: 1.2;
-          color: #fff;
+          color: var(--bs-emphasis-color);
           font-weight: 700;
           text-align: left;
         }
@@ -951,7 +951,7 @@ const handleChatIconClick = () => {
           font-size: px2rpx(18);
           margin-bottom: px2rpx(16);
           line-height: 1.6;
-          color: #fff;
+          color: var(--bs-emphasis-color);
         }
       }
 
@@ -966,7 +966,7 @@ const handleChatIconClick = () => {
 
       .h1 {
         // text-align: center;
-        color: #fff;
+        color: var(--bs-emphasis-color);
         font-size: 30px;
         margin-top: 30px;
         line-height: 1.5;
@@ -975,7 +975,7 @@ const handleChatIconClick = () => {
       .h6 {
         text-align: start;
         line-height: 20px;
-        color: #fff;
+        color: var(--bs-emphasis-color);
         font-size: 14px;
         margin-top: 10px;
       }
@@ -994,7 +994,7 @@ const handleChatIconClick = () => {
       .des {
         text-align: start;
         line-height: 24px;
-        color: #fff;
+        color: var(--bs-emphasis-color);
         font-size: 14px;
         //margin-top: px2rpx(20);
 
@@ -1301,7 +1301,7 @@ button {
   box-sizing: border-box;
   background-color: #102047;
   //border: 1px solid rgb(229, 229, 229);
-  color: #fff;
+  color: var(--bs-emphasis-color);
   text-align: center;
   line-height: px2rpx(38);
   border-radius: 0 18px 18px 0;
@@ -1335,7 +1335,7 @@ button {
   height: px2rpx(40);
   border-radius: px2rpx(4);
   background-color: var(--color-error);
-  color: #fff;
+  color: var(--bs-emphasis-color);
   font-weight: bold;
 }
 

+ 10 - 10
pages/login/regist.vue

@@ -756,7 +756,7 @@ onMounted(() => {
         .title {
           font-size: px2rpx(50);
           line-height: 1.3;
-          color: #fff;
+          color: var(--bs-emphasis-color);
           font-weight: 700;
           text-align: left;
         }
@@ -789,7 +789,7 @@ onMounted(() => {
           margin-top: px2rpx(10);
           font-size: px2rpx(14);
           line-height: 1.6;
-          color: #fff;
+          color: var(--bs-emphasis-color);
         }
       }
 
@@ -804,7 +804,7 @@ onMounted(() => {
 
       .h1 {
         // text-align: center;
-        color: #fff;
+        color: var(--bs-emphasis-color);
         font-size: 30px;
         margin-top: 30px;
         line-height: 1.5;
@@ -813,7 +813,7 @@ onMounted(() => {
       .h6 {
         text-align: start;
         line-height: 20px;
-        color: #fff;
+        color: var(--bs-emphasis-color);
         font-size: 14px;
         margin-top: 10px;
       }
@@ -832,7 +832,7 @@ onMounted(() => {
       .des {
         text-align: start;
         line-height: 24px;
-        color: #fff;
+        color: var(--bs-emphasis-color);
         font-size: 14px;
         margin-top: px2rpx(20);
         padding: 0;
@@ -939,13 +939,13 @@ onMounted(() => {
   .title {
     font-size: px2rpx(28);
     font-weight: bold;
-    color: #fff;
+    color: var(--bs-emphasis-color);
     line-height: 1;
   }
 
   .login-link {
     font-size: px2rpx(14);
-    color: #fff;
+    color: var(--bs-emphasis-color);
     display: flex;
     align-items: center;
     line-height: 1;
@@ -1070,7 +1070,7 @@ onMounted(() => {
   box-sizing: border-box;
   background-color: #102047;
   border: 1px solid rgb(229, 229, 229);
-  color: #fff;
+  color: var(--bs-emphasis-color);
   text-align: center;
   line-height: px2rpx(35);
   border-radius: 4px;
@@ -1104,7 +1104,7 @@ onMounted(() => {
   height: px2rpx(40);
   border-radius: px2rpx(4);
   background-color: var(--color-error);
-  color: #fff;
+  color: var(--bs-emphasis-color);
   font-weight: bold;
 }
 
@@ -1135,7 +1135,7 @@ onMounted(() => {
   height: px2rpx(40);
   border-radius: px2rpx(20);
   background-color: #1EBF42;
-  color: #fff;
+  color: var(--bs-emphasis-color);
   font-weight: bold;
   margin-bottom: px2rpx(20);
 }

+ 2 - 2
pages/login/reset.vue

@@ -206,7 +206,7 @@ function handleLogin() {
 .reset-title {
   font-size: px2rpx(28);
   font-weight: bold;
-  color: #fff;
+  color: var(--bs-emphasis-color);
   margin-bottom: px2rpx(40);
   width: 100%;
   text-align: center;
@@ -242,7 +242,7 @@ function handleLogin() {
     border-radius: px2rpx(22);
     background-color: var(--color-error);
     border: none;
-    color: #fff;
+    color: var(--bs-emphasis-color);
     font-size: px2rpx(16);
     font-weight: 500;
     margin: 0;

+ 1 - 1
pages/mine/components/AddFileDialog.vue

@@ -241,7 +241,7 @@ defineExpose({
 
             &.btn-confirm {
                 background: #ea2027;
-                color: #fff;
+                color: var(--bs-emphasis-color);
 
                 &:hover {
                     background: #d11920;

+ 5 - 5
pages/mine/components/BankInfoTab.vue

@@ -804,7 +804,7 @@ onMounted(() => {
 
         &.active {
             background: #ea2027;
-            color: #fff;
+            color: var(--bs-emphasis-color);
             border-radius: px2rpx(0);
         }
 
@@ -869,7 +869,7 @@ onMounted(() => {
 
                     &.delete {
                         background: #ea2027;
-                        color: #fff;
+                        color: var(--bs-emphasis-color);
                         border-color: #ea2027;
 
                         &:hover {
@@ -905,7 +905,7 @@ onMounted(() => {
         margin-top: px2rpx(24);
         height: px2rpx(48);
         background: #ea2027;
-        color: #fff;
+        color: var(--bs-emphasis-color);
         border-radius: px2rpx(4);
         display: flex;
         align-items: center;
@@ -970,7 +970,7 @@ onMounted(() => {
 
                             &::before {
                                 content: '×';
-                                color: #fff;
+                                color: var(--bs-emphasis-color);
                                 font-size: px2rpx(28);
                                 line-height: 1;
                             }
@@ -1031,7 +1031,7 @@ onMounted(() => {
                     height: px2rpx(300);
                     border-radius: px2rpx(8);
                     background: rgba(0, 0, 0, 0.5);
-                    color: #fff;
+                    color: var(--bs-emphasis-color);
                 }
             }
         }

+ 3 - 3
pages/mine/components/BankItem.vue

@@ -472,7 +472,7 @@ onMounted(() => {
 
         &.active {
             background: #ea2027;
-            color: #fff;
+            color: var(--bs-emphasis-color);
             border-radius: px2rpx(0);
         }
 
@@ -530,7 +530,7 @@ onMounted(() => {
 
                     &.delete {
                         background: #ea2027;
-                        color: #fff;
+                        color: var(--bs-emphasis-color);
                         border-color: #ea2027;
 
                         &:hover {
@@ -564,7 +564,7 @@ onMounted(() => {
         margin-top: px2rpx(24);
         height: px2rpx(48);
         background: #ea2027;
-        color: #fff;
+        color: var(--bs-emphasis-color);
         border-radius: px2rpx(4);
         display: flex;
         align-items: center;

+ 3 - 3
pages/mine/components/CardAuthDialog.vue

@@ -257,7 +257,7 @@ defineExpose({
         .dialog-title {
             font-size: px2rpx(20);
             font-weight: 700;
-            color: #fff;
+            color: var(--bs-emphasis-color);
             letter-spacing: 0.5px;
         }
 
@@ -322,7 +322,7 @@ defineExpose({
 
             &.btn-confirm {
                 background: #ea2027;
-                color: #fff;
+                color: var(--bs-emphasis-color);
 
                 &:hover {
                     background: #d11920;
@@ -394,7 +394,7 @@ defineExpose({
                     align-items: center;
                     justify-content: center;
                     background: #667eea;
-                    color: #fff;
+                    color: var(--bs-emphasis-color);
                     border-radius: 50%;
                     font-size: px2rpx(16);
                     font-weight: bold;

+ 2 - 2
pages/mine/components/KycAuthDialog.vue

@@ -173,7 +173,7 @@ defineExpose({
         .dialog-title {
             font-size: px2rpx(20);
             font-weight: 700;
-            color: #fff;
+            color: var(--bs-emphasis-color);
             letter-spacing: 0.5px;
         }
 
@@ -260,7 +260,7 @@ defineExpose({
                     align-items: center;
                     justify-content: center;
                     background: #667eea;
-                    color: #fff;
+                    color: var(--bs-emphasis-color);
                     border-radius: 50%;
                     font-size: px2rpx(16);
                     font-weight: bold;

+ 2 - 2
pages/mine/improveImmediately.vue

@@ -1479,7 +1479,7 @@ onUnmounted(() => {
 }
 
 .section-title {
-  color: #fff;
+  color: var(--bs-emphasis-color);
   font-family: Roboto;
   font-size: px2rpx(22);
   font-weight: 500;
@@ -1681,7 +1681,7 @@ onUnmounted(() => {
 
 .Trad-experience {
   flex: 1;
-  color: #fff;
+  color: var(--bs-emphasis-color);
   font-size: px2rpx(16);
 }
 

+ 1 - 1
pages/mine/info.vue

@@ -303,7 +303,7 @@ onMounted(async () => {
 
 .active {
     background-color: var(--color-error);
-    color: #fff;
+    color: var(--bs-emphasis-color);
     border: none;
 }
 

+ 130 - 65
static/scss/global/global.scss

@@ -143,62 +143,127 @@
 
 
     // 新的
-    color-scheme: dark;
-    --bs-body-color: #8c96a9;
-    --bs-body-color-rgb: 140, 150, 169;
-    --bs-body-bg: #282b44;
-    --bs-body: #282b44;
-    --bs-body-bg-rgb: 40, 43, 68;
-    --bs-emphasis-color: #ffffff;
-    --bs-emphasis-color-rgb: 255, 255, 255;
-    --bs-secondary-color: rgba(140, 150, 169, 0.75);
-    --bs-secondary-color-rgb: 140, 150, 169;
-    --bs-secondary-bg: #26283e;
-    --bs-secondary-bg-rgb: 38, 40, 62;
-    --bs-tertiary-color: rgba(140, 150, 169, 0.5);
-    --bs-tertiary-color-rgb: 140, 150, 169;
-    --bs-tertiary-bg: #26283e;
-    --bs-tertiary-bg-rgb: 38, 40, 62;
-    --bs-secondary-text-emphasis: #83a6ff;
-    --bs-secondary-text-emphasis: #ffb370;
-    --bs-success-text-emphasis: #7ad0b2;
-    --bs-info-text-emphasis: #67d2fc;
-    --bs-warning-text-emphasis: #fed679;
-    --bs-danger-text-emphasis: #ff8c77;
-    --bs-light-text-emphasis: #888bb2;
-    --bs-dark-text-emphasis: #999999;
-    --bs-secondary-bg-subtle: #0a1533;
-    --bs-secondary-bg-subtle: #331a03;
-    --bs-success-bg-subtle: #072319;
-    --bs-info-bg-subtle: #002432;
-    --bs-warning-bg-subtle: #332506;
-    --bs-danger-bg-subtle: #330d06;
-    --bs-light-bg-subtle: #1a1c31;
-    --bs-dark-bg-subtle: #10101d;
-    --bs-secondary-border-subtle: #1d4099;
-    --bs-secondary-border-subtle: #994d0a;
-    --bs-success-border-subtle: #146a4c;
-    --bs-info-border-subtle: #016c96;
-    --bs-warning-border-subtle: #987013;
-    --bs-danger-border-subtle: #992611;
-    --bs-light-border-subtle: #484c83;
-    --bs-dark-border-subtle: #494949;
-    --bs-heading-color: #fff;
-    --bs-link-color: #83a6ff;
-    --bs-link-hover-color: #9cb8ff;
-    --bs-link-color-rgb: 131, 166, 255;
-    --bs-link-hover-color-rgb: 156, 184, 255;
-    --bs-code-color: #e685b5;
-    --bs-highlight-color: #8c96a9;
-    --bs-highlight-bg: #664d03;
-    --bs-border-color: #3a3b4d;
-    --bs-border-color-translucent: rgba(255, 255, 255, 0.15);
-    --bs-form-valid-color: #75b798;
-    --bs-form-valid-border-color: #75b798;
-    --bs-form-invalid-color: #ea868f;
-    --bs-form-invalid-border-color: #ea868f;
+    --bs-blue: #0d6efd;
+    --bs-indigo: #6610f2;
+    --bs-purple: #6f42c1;
+    --bs-pink: #d63384;
+    --bs-red: #dc3545;
+    --bs-orange: #fd7e14;
+    --bs-yellow: #ffc107;
+    --bs-green: #198754;
+    --bs-teal: #20c997;
+    --bs-cyan: #0dcaf0;
+    --bs-black: #000;
+    --bs-white: #ffffff;
+    --bs-gray: #6c757d;
+    --bs-gray-dark: #343a40;
+    --bs-gray-100: #f8f9fa;
+    --bs-gray-200: #e9ecef;
+    --bs-gray-300: #dee2e6;
+    --bs-gray-400: #ced4da;
+    --bs-gray-500: #adb5bd;
+    --bs-gray-600: #6c757d;
+    --bs-gray-700: #495057;
+    --bs-gray-800: #343a40;
+    --bs-gray-900: #212529;
+    --bs-secondary: #316AFF;
+    --bs-secondary: #FF8110;
+    --bs-success: #22B07E;
+    --bs-info: #02B4FA;
+    --bs-warning: #FDBB1F;
+    --bs-danger: #FF401C;
+    --bs-light: #ECF2FD;
+    --bs-dark: #0C243C;
+    --bs-white: #ffffff;
+    --bs-gray: #97A1C0;
+    --bs-secondary-rgb: 49, 106, 255;
+    --bs-secondary-rgb: 255, 129, 16;
+    --bs-success-rgb: 34, 176, 126;
+    --bs-info-rgb: 2, 180, 250;
+    --bs-warning-rgb: 253, 187, 31;
     --bs-danger-rgb: 255, 64, 28;
+    --bs-light-rgb: 236, 242, 253;
+    --bs-dark-rgb: 12, 36, 60;
+    --bs-white-rgb: 255, 255, 255;
+    --bs-gray-rgb: 151, 161, 192;
+    --bs-secondary-text-emphasis: #142a66;
+    --bs-secondary-text-emphasis: #663406;
+    --bs-success-text-emphasis: #0e4632;
+    --bs-info-text-emphasis: #014864;
+    --bs-warning-text-emphasis: #654b0c;
+    --bs-danger-text-emphasis: #661a0b;
+    --bs-light-text-emphasis: #495057;
+    --bs-dark-text-emphasis: #495057;
+    --bs-secondary-bg-subtle: #eaf0ff;
+    --bs-secondary-bg-subtle: #fff2e7;
+    --bs-success-bg-subtle: #e9f7f2;
+    --bs-info-bg-subtle: #e6f8ff;
+    --bs-warning-bg-subtle: #fff8e9;
+    --bs-danger-bg-subtle: #ffece8;
+    --bs-light-bg-subtle: #fcfcfd;
+    --bs-dark-bg-subtle: #ced4da;
+    --bs-secondary-border-subtle: #ccdaff;
+    --bs-secondary-border-subtle: #ffe0c3;
+    --bs-success-border-subtle: #c8ebdf;
+    --bs-info-border-subtle: #c0ecfe;
+    --bs-warning-border-subtle: #ffeec7;
+    --bs-danger-border-subtle: #ffcfc6;
+    --bs-light-border-subtle: #e9ecef;
+    --bs-dark-border-subtle: #adb5bd;
     --bs-white-rgb: 255, 255, 255;
+    --bs-black-rgb: 0, 0, 0;
+    --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
+    --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
+    --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
+    --bs-body-font-family: "Plus Jakarta Sans", sans-serif;
+    --bs-body-font-size: 0.875rem;
+    --bs-body-font-weight: 500;
+    --bs-body-line-height: 1.6;
+    --bs-body-color: #97A1C0;
+    --bs-body-color-rgb: 151, 161, 192;
+    --bs-body-bg: #fff;
+    --bs-body-bg-rgb: 255, 255, 255;
+    --bs-emphasis-color: #000;
+    --bs-emphasis-color-rgb: 0, 0, 0;
+    --bs-secondary-color: rgba(151, 161, 192, 0.75);
+    --bs-secondary-color-rgb: 151, 161, 192;
+    --bs-secondary-bg: #f9f9f9;
+    --bs-secondary-bg-rgb: 249, 249, 249;
+    --bs-tertiary-color: rgba(151, 161, 192, 0.5);
+    --bs-tertiary-color-rgb: 151, 161, 192;
+    --bs-tertiary-bg: #f8f9fa;
+    --bs-tertiary-bg-rgb: 248, 249, 250;
+    --bs-heading-color: #0C243C;
+    --bs-link-color: #316AFF;
+    --bs-link-color-rgb: 49, 106, 255;
+    --bs-link-decoration: none;
+    --bs-link-hover-color: #2755cc;
+    --bs-link-hover-color-rgb: 39, 85, 204;
+    --bs-code-color: #d63384;
+    --bs-highlight-color: #97A1C0;
+    --bs-highlight-bg: #fff3cd;
+    --bs-border-width: 1px;
+    --bs-border-style: solid;
+    --bs-border-color: #E8EBF1;
+    --bs-border-color-translucent: rgba(0, 0, 0, 0.1);
+    --bs-border-radius: 0.375rem;
+    --bs-border-radius-sm: 0.25rem;
+    --bs-border-radius-lg: 0.625rem;
+    --bs-border-radius-xl: 1rem;
+    --bs-border-radius-xxl: 2rem;
+    --bs-border-radius-2xl: var(--bs-border-radius-xxl);
+    --bs-border-radius-pill: 50rem;
+    --bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
+    --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
+    --bs-box-shadow-lg: 0 0.26rem 1.126rem 0 rgba(45, 42, 60, 0.15);
+    --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);
+    --bs-focus-ring-width: 0.1rem;
+    --bs-focus-ring-opacity: 0.25;
+    --bs-focus-ring-color: rgba(49, 106, 255, 0.25);
+    --bs-form-valid-color: #22B07E;
+    --bs-form-valid-border-color: #22B07E;
+    --bs-form-invalid-color: #FF401C;
+    --bs-form-invalid-border-color: #FF401C;
 }
 
 .dark {
@@ -704,7 +769,7 @@ uni-content.collapsed {
     .loading-text {
         font-size: px2rpx(14);
         font-weight: 500;
-        color: #fff;
+        color: var(--bs-emphasis-color);
         text-shadow: 0 px2rpx(1) px2rpx(2) rgb(0, 0, 0, 0.1);
         letter-spacing: px2rpx(0.5);
     }
@@ -911,7 +976,7 @@ uni-content.collapsed {
         font-size: px2rpx(16);
         font-weight: 600;
         line-height: px2rpx(44);
-        color: #fff;
+        color: var(--bs-emphasis-color);
         text-align: center;
     }
 
@@ -949,7 +1014,7 @@ uni-content.collapsed {
             font-style: normal;
             font-weight: 600;
             line-height: px2rpx(20);
-            color: #fff;
+            color: var(--bs-emphasis-color);
             text-align: left;
         }
 
@@ -959,7 +1024,7 @@ uni-content.collapsed {
             font-style: normal;
             font-weight: 600;
             line-height: px2rpx(20);
-            color: #fff;
+            color: var(--bs-emphasis-color);
             text-align: center;
         }
     }
@@ -1034,7 +1099,7 @@ uni-content.collapsed {
     font-style: normal;
     font-weight: 600;
     line-height: px2rpx(20);
-    color: #fff;
+    color: var(--bs-emphasis-color);
     text-align: center;
     letter-spacing: px2rpx(0.07);
     background: #ea002a;
@@ -1231,7 +1296,7 @@ uni-content.collapsed {
         width: 100%;
         height: px2rpx(48);
         background-color: #cf1322;
-        color: #fff;
+        color: var(--bs-emphasis-color);
         border-radius: px2rpx(12);
         font-size: px2rpx(16);
         font-weight: 600;
@@ -1687,7 +1752,7 @@ uni-content.collapsed {
     .confirm-btn {
         &.primary {
             background-color: #cf1322;
-            color: #fff;
+            color: var(--bs-emphasis-color);
 
             &:active {
                 background-color: #0056b3;
@@ -1696,7 +1761,7 @@ uni-content.collapsed {
 
         &.danger {
             background-color: #ff6b6b;
-            color: #fff;
+            color: var(--bs-emphasis-color);
 
             &:active {
                 background-color: #ff5252;
@@ -1709,12 +1774,12 @@ uni-content.collapsed {
 
         &.primary {
             background-color: #cf1322;
-            color: #fff;
+            color: var(--bs-emphasis-color);
         }
 
         &.danger {
             background-color: #ff6b6b;
-            color: #fff;
+            color: var(--bs-emphasis-color);
         }
 
         &.default {
@@ -1828,5 +1893,5 @@ uni-content.collapsed {
 
 ::selection {
     background-color: var(--bs-secondary);
-    // color: #fff;
+    // color: var(--bs-emphasis-color);
 }

+ 3 - 2
uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue

@@ -15,7 +15,8 @@
 		}">
 			<text v-if="selected && weeks.extraInfo" class="uni-calendar-item__weeks-box-circle"></text>
 			<text
-				class="uni-calendar-item__weeks-box-text uni-calendar-item__weeks-box-text-disable uni-calendar-item--checked-text">{{ weeks.date }}</text>
+				class="uni-calendar-item__weeks-box-text uni-calendar-item__weeks-box-text-disable uni-calendar-item--checked-text">{{
+					weeks.date }}</text>
 		</view>
 		<view :class="{ 'uni-calendar-item--today': weeks.isToday }"></view>
 	</view>
@@ -147,7 +148,7 @@ $uni-primary: #007aff !default;
 
 .uni-calendar-item--multiple {
 	background-color: #F6F7FC;
-	// color: #fff;
+	// color: var(--bs-emphasis-color);
 }
 
 .uni-calendar-item--multiple .uni-calendar-item--before-checked,

+ 1 - 1
uni_modules/x-dropdown/components/x-dropdown/x-dropdown.vue

@@ -172,7 +172,7 @@ export default {
 
                 text {
                     font-size: 28rpx;
-                    color: #fff;
+                    color: var(--bs-emphasis-color);
                 }
 
                 &:active {

+ 2 - 2
windows/left-window.vue

@@ -84,7 +84,7 @@ function handleFixedMenuClick() {
 
 .cwg-sidebar {
   width: 100%;
-  color: #fff;
+  color: var(--bs-emphasis-color);
   height: calc(100vh - 56px);
   overflow: hidden;
   display: flex;
@@ -156,7 +156,7 @@ function handleFixedMenuClick() {
     border: 1px solid rgba(140, 69, 246, 0.2) !important;
     font-size: px2rpx(18);
     font-weight: 600;
-    color: #fff;
+    color: var(--bs-emphasis-color);
 
     &:hover {
       color: var(--bs-btn-hover-color);