From a525c62094f6b40545e299f3d1171a933cd40e14 Mon Sep 17 00:00:00 2001
From: 李凌 <344137771@qq.com>
Date: Wed, 24 Sep 2025 13:56:36 +0800
Subject: [PATCH] 1

---
 src/i18n/Deutsch.js                                 |    1 
 src/i18n/Portuguese.js                              |    1 
 src/i18n/korean.js                                  |    1 
 src/views/cryptos/Recharge/rechargeDetail.vue       |   10 +
 src/views/safety/index.vue                          |    2 
 src/i18n/th.js                                      |    1 
 src/i18n/fa.js                                      |    1 
 src/i18n/Italy.js                                   |    1 
 src/views/cryptos/AccountChange/index.vue           |    5 +
 src/i18n/Japanese.js                                |    1 
 src/i18n/vi.js                                      |    1 
 src/i18n/cn.js                                      |    1 
 src/views/cryptos/PerpetualContract/orderDetail.vue |   10 +
 src/i18n/en.js                                      |    1 
 src/i18n/zhcn.js                                    |    1 
 src/views/safety/resetPhoneEmail.vue                |  154 ++++++++++++++-----------------------
 src/i18n/Spanish.js                                 |    1 
 17 files changed, 90 insertions(+), 103 deletions(-)

diff --git a/src/i18n/Deutsch.js b/src/i18n/Deutsch.js
index 51267eb..d08df20 100644
--- a/src/i18n/Deutsch.js
+++ b/src/i18n/Deutsch.js
@@ -2842,4 +2842,5 @@
     "币种数量": "Menge der währung",
     "进度": "Fortschritt",
     "更换绑定": "Ersetzen sie die bindung",
+    "手机号已绑定": "Telefonnummer wurde gebunden",
 }
\ No newline at end of file
diff --git a/src/i18n/Italy.js b/src/i18n/Italy.js
index 42a3a8a..3509792 100644
--- a/src/i18n/Italy.js
+++ b/src/i18n/Italy.js
@@ -2932,4 +2932,5 @@
     "币种数量": "Menge der Währung",
     "进度": "Fortschritt",
     "更换绑定": "Cambio di legame",
+    "手机号已绑定": "Il numero di telefono è stato associato",
 }
\ No newline at end of file
diff --git a/src/i18n/Japanese.js b/src/i18n/Japanese.js
index 7c6c2c0..7fdd6a6 100644
--- a/src/i18n/Japanese.js
+++ b/src/i18n/Japanese.js
@@ -2700,4 +2700,5 @@
     "币种数量": "通貨数量",
     "进度": "進捗",
     "更换绑定": "バインドを変更します",
+    "手机号已绑定": "電話番号がバインドされています",
 }
\ No newline at end of file
diff --git a/src/i18n/Portuguese.js b/src/i18n/Portuguese.js
index fd66c01..d0183c1 100644
--- a/src/i18n/Portuguese.js
+++ b/src/i18n/Portuguese.js
@@ -652,4 +652,5 @@
     "币种数量": "Quantidade de moeda",
     "进度": "Progresso",
     "更换绑定": "Trocar de ligação",
+    "手机号已绑定": "O número de telefone já está vinculado",
 }
\ No newline at end of file
diff --git a/src/i18n/Spanish.js b/src/i18n/Spanish.js
index 8010e76..97d65dc 100644
--- a/src/i18n/Spanish.js
+++ b/src/i18n/Spanish.js
@@ -2615,4 +2615,5 @@
     "币种数量": "Cantidad de moneda",
     "进度": "Progreso",
     "更换绑定": "Cambiar enlace",
+    "手机号已绑定": "El número de teléfono móvil ya está vinculado",
 }
\ No newline at end of file
diff --git a/src/i18n/cn.js b/src/i18n/cn.js
index 819959e..9cf3cef 100644
--- a/src/i18n/cn.js
+++ b/src/i18n/cn.js
@@ -2821,4 +2821,5 @@
     "币种数量": "幣種數量",
     "进度": "進度",
     "更换绑定": "更換綁定",
+    "手机号已绑定": "手機號已綁定",
 }
diff --git a/src/i18n/en.js b/src/i18n/en.js
index 3e4930d..4e470ec 100644
--- a/src/i18n/en.js
+++ b/src/i18n/en.js
@@ -2796,4 +2796,5 @@
     "币种数量": "Currency quantity",
     "进度": "Progress",
     "更换绑定": "Change binding",
+    "手机号已绑定": "Mobile phone number has been bound",
 }
\ No newline at end of file
diff --git a/src/i18n/fa.js b/src/i18n/fa.js
index b773b4c..d7a8431 100644
--- a/src/i18n/fa.js
+++ b/src/i18n/fa.js
@@ -2739,4 +2739,5 @@
     "币种数量": "Menge der Währung",
     "进度": "Fortschritt",
     "更换绑定": "Changer de liaison",
+    "手机号已绑定": "Numéro de téléphone portable lié",
 }
\ No newline at end of file
diff --git a/src/i18n/korean.js b/src/i18n/korean.js
index 8f8cd28..bab92f9 100644
--- a/src/i18n/korean.js
+++ b/src/i18n/korean.js
@@ -2836,4 +2836,5 @@
     "币种数量": "통화 수량",
     "进度": "진행 상황",
     "更换绑定": "바인딩 변경",
+    "手机号已绑定": "핸드폰 번호가 바인딩되었습니다",
 }
\ No newline at end of file
diff --git a/src/i18n/th.js b/src/i18n/th.js
index 358895c..f57401f 100644
--- a/src/i18n/th.js
+++ b/src/i18n/th.js
@@ -2807,4 +2807,5 @@
     "币种数量": "จำนวนเงินตรา",
     "进度": "ความก้าวหน้า",
     "更换绑定": "เปลี่ยนการเชื่อมโยง",
+    "手机号已绑定": "เบอร์โทรศัพท์มือถือถูกเชื่อมโยงแล้ว",
 }
\ No newline at end of file
diff --git a/src/i18n/vi.js b/src/i18n/vi.js
index f80276d..b4d34ce 100644
--- a/src/i18n/vi.js
+++ b/src/i18n/vi.js
@@ -2786,4 +2786,5 @@
     "币种数量": "Số lượng tiền tệ",
     "进度": "Tiến độ",
     "更换绑定": "Thay đổi liên kết",
+    "手机号已绑定": "Số điện thoại đã được liên kết",
 }
\ No newline at end of file
diff --git a/src/i18n/zhcn.js b/src/i18n/zhcn.js
index 5ad2e0c..223ae9c 100644
--- a/src/i18n/zhcn.js
+++ b/src/i18n/zhcn.js
@@ -2801,4 +2801,5 @@
     "币种数量": "币种数量",
     "进度": "进度",
     "更换绑定": "更换绑定",
+    "手机号已绑定": "手机号已绑定",
 }
\ No newline at end of file
diff --git a/src/views/cryptos/AccountChange/index.vue b/src/views/cryptos/AccountChange/index.vue
index 1994435..8282852 100644
--- a/src/views/cryptos/AccountChange/index.vue
+++ b/src/views/cryptos/AccountChange/index.vue
@@ -14,7 +14,10 @@
                 <div>
                   <!-- <div class="font-32 textColor">{{ category[item.category] }}</div> -->
                   <div class="font-32 textColor">{{ orderTypes[item.content_type] }}</div>
-                  <div class="text-grey font-26 mt-6">{{ item.createTime }}(UTC+2)</div>
+                  <div class="text-grey font-26 mt-6">
+                    {{ item.createTime }}
+                    (UTC+8)
+                  </div>
                   <!-- <div class="text-grey font-26 mt-6">{{ orderTypes[item.content_type] }}</div> -->
                 </div>
               </div>
diff --git a/src/views/cryptos/PerpetualContract/orderDetail.vue b/src/views/cryptos/PerpetualContract/orderDetail.vue
index 5cd648c..0ed7323 100644
--- a/src/views/cryptos/PerpetualContract/orderDetail.vue
+++ b/src/views/cryptos/PerpetualContract/orderDetail.vue
@@ -49,12 +49,16 @@
         </div>
         <div class="flex justify-between cell-item">
           <div class="text-grey">{{ $t('开仓时间') }}</div>
-          <div class="textColor">{{ detail.create_time }}(UTC+2)</div>
+          <div class="textColor">
+            {{ detail.create_time }}
+            (UTC+8)
+          </div>
         </div>
         <div class="flex justify-between cell-item ">
           <div class="text-grey">{{ $t('平仓时间') }}</div>
-          <div class="textColor">{{ detail.close_time ? dayjs(detail.close_time * 1000).format('YYYY-MM-DD HH:mm:ss')+'(UTC+2)' :
-            '--' }}</div>
+          <div class="textColor">{{ detail.close_time ? dayjs(detail.close_time * 1000).format('YYYY-MM-DD HH:mm:ss')
+            + '(UTC+8)'
+            : '--' }}</div>
         </div>
       </div>
     </div>
diff --git a/src/views/cryptos/Recharge/rechargeDetail.vue b/src/views/cryptos/Recharge/rechargeDetail.vue
index aabfeac..88bd0ea 100644
--- a/src/views/cryptos/Recharge/rechargeDetail.vue
+++ b/src/views/cryptos/Recharge/rechargeDetail.vue
@@ -13,8 +13,9 @@
                 <div class="status-icon status-bg3" v-if="info.state == 0"></div>
                 <div class="status-icon status-bg1" v-if="info.state == 3"></div>
                 <div class="status-icon status-bg4" v-if="info.state == 4"></div>
-                <span class="ml10 font-32 textColor">{{ type2 }}{{ status[info.state] && status[info.state].split('_')[0]
-                }}</span>
+                <span class="ml10 font-32 textColor">{{ type2 }}{{ status[info.state] &&
+                    status[info.state].split('_')[0]
+                    }}</span>
             </div>
             <div class="text-grey font-26 pl-30 pr-30">
                 {{ $t('数字币已经') }}{{ $t(type2) }}{{ status[info.state] &&
@@ -52,7 +53,10 @@
             <!--             </div>-->
             <div class="flex justify-between mb74">
                 <div class="text-grey">{{ $t('日期') }}</div>
-                <div class="textColor">{{ info.create_time }} (UTC+2)</div>
+                <div class="textColor">
+                    {{ info.create_time }}
+                    (UTC+8)
+                </div>
             </div>
             <div class="flex justify-between mb74">
                 <div class="text-grey">{{ $t('备注') }}</div>
diff --git a/src/views/safety/index.vue b/src/views/safety/index.vue
index f1a9e08..0a43914 100644
--- a/src/views/safety/index.vue
+++ b/src/views/safety/index.vue
@@ -93,7 +93,7 @@
     url: "/resetVerify?type=0"
   },
   {
-    name: `${t('更换绑定')}`,
+    name: `${t('bind')}`,
     url: "/resetPhoneEmail"
   },
 ])
diff --git a/src/views/safety/resetPhoneEmail.vue b/src/views/safety/resetPhoneEmail.vue
index 6544f04..3ffc5c7 100644
--- a/src/views/safety/resetPhoneEmail.vue
+++ b/src/views/safety/resetPhoneEmail.vue
@@ -4,11 +4,8 @@
             <img src="../../assets/image/icon-close.png" alt="" @click="router.go(-1)">
             <div @click="onRoute('/customerService')">{{ $t('onLineService') }}</div>
         </div>
-        <div class="title textColor">{{ $t('更换绑定') }}</div>
+        <div class="title textColor">{{ $t('bind') }}</div>
         <div class="flex re-tab">
-            <!-- <div class="textColor1" :class="activeIndex == 0 ? 'active' : ''" @click="changeIndex(0)">{{
-                $t('account')
-            }}</div> -->
             <div class="textColor1" :class="activeIndex == 1 ? 'active' : ''" @click="changeIndex(1)">
                 {{ $t('email') }}
             </div>
@@ -16,45 +13,37 @@
                 {{ $t('phoneNum') }}
             </div>
         </div>
-        <ExInput :label="getRegType(activeIndex, true)" :placeholderText="getRegType(activeIndex, false)"
-            v-model="username" :area="isArea" :dialCode="dialCode" @selectArea="onSelectArea" :icon="icon" />
 
-        <ExInput :label="$t('repassword')" :placeholderText="$t('请输入')" v-model="password"
-            typeText="password" />
-        <!-- <ExInput :label="$t('repassword')" :placeholderText="$t('surePassword')" v-model="repassword"
-            typeText="password" /> -->
-        <ExInput :label="$t('fundsPassword')" :placeholderText="$t('请输入')" v-model="safeword" typeText="password"
-            v-if="activeIndex === 1 || activeIndex === 2" />
-        <div class="inputCom" v-if="activeIndex === 1 || activeIndex === 2">
-            <p class="label  textColor">{{ $t('验证码') }}</p>
-            <div class="iptbox inputBackground">
-                <input class="inputBackground textColor" type="text" :placeholder="$t('entryVerifyCode')"
-                    v-model="verifyCode">
-                <span v-if="type !== 3" @click="senCode">{{ $t('sendVerifyCode') }}
-                    <template v-if="time">({{ time }})s</template>
-                </span>
+        <template v-if="(activeIndex == 1 && !userdata.emailverif) || (activeIndex == 2 && !userdata.phoneverif)">
+            <ExInput :label="getRegType(activeIndex, true)" :placeholderText="getRegType(activeIndex, false)"
+                v-model="username" :area="isArea" :dialCode="dialCode" @selectArea="onSelectArea" :icon="icon" />
+
+            <div class="inputCom" v-if="activeIndex === 1 || activeIndex === 2">
+                <p class="label  textColor">{{ $t('验证码') }}</p>
+                <div class="iptbox inputBackground">
+                    <input class="inputBackground textColor" type="text" :placeholder="$t('entryVerifyCode')"
+                        v-model="verifyCode">
+                    <span v-if="type !== 3" @click="senCode">{{ $t('sendVerifyCode') }}
+                        <template v-if="time">({{ time }})s</template>
+                    </span>
+                </div>
             </div>
-        </div>
 
-        <!-- <ExInput :label="$t('金融机构代码')" :placeholderText="$t('请输入')" v-model="invitCode" :clearBtn="false" /> -->
+            <van-button class="w-full" style="margin-top:10px;" type="primary" @click="register">{{ $t('confirm') }}
+            </van-button>
+        </template>
 
-        <div class="protocol textColor">
-            <i @click="agreeProt">
-                <img v-show="agree" src="../../assets/image/login/prot2.png" alt="" />
-                <img v-show="!agree" src="../../assets/image/login/prot1.png" alt="" />
-            </i>
-            <!-- {{ $t('readAgree') }}<span class="colorMain" @click="router.push('/TermsOfService')">{{
-                $t('serviceConf')
-            }}</span> -->
-            {{ $t('readAgree') }}<span class="colorMain" @click="router.push('/aboutUs?serviceTerm=23')">{{
-                $t('serviceConf')
-            }}</span>
-        </div>
-        <van-button class="w-full" style="margin-top:10px;" type="primary" @click="register">{{ $t('confirm') }}
-        </van-button>
-        <!-- <div class="noTips textColor">{{ $t('hasAccount') }}<span class="colorMain" @click="router.push('/login')">
-                {{ $t('goLogin') }}</span>
-        </div> -->
+        <!-- 邮箱已绑定显示 -->
+        <template v-if="(activeIndex == 1 && userdata.emailverif)">
+            <div>{{ $t('邮箱已绑定') }}:</div>
+            <div>{{ userdata.email }}</div>
+        </template>
+        <!-- 手机号已绑定显示 -->
+        <template v-if="(activeIndex == 2 && userdata.phoneverif)">
+            <div>{{ $t('手机号已绑定') }}:</div>
+            <div>{{ userdata.phone }}</div>
+        </template>
+
         <nationality-list ref='controlChildRef' :title="$t('selectArea')" @getName="getName"></nationality-list>
 
         <Vcode :imgs="[img1, img2]" :show="show" @success="onSuccess" :canvasHeight="200" @fail="onFail"
@@ -67,14 +56,12 @@
 <script setup>
 import ExInput from "@/components/ex-input/index.vue";
 import { _registerUser, _sendVerifyCode } from "@/service/login.api";
-import { _bindEmailRegister, _registerEorP } from "@/service/user.api.js";
+import { _info, _bindEmail, _bindPhone } from "@/service/user.api.js";
 import { useUserStore } from '@/store/user';
-import { GET_USERINFO } from '@/store/types.store'
 import nationalityList from '../authentication/components/nationalityList.vue'
 import Vcode from "vue3-puzzle-vcode";
 import img1 from "@/assets/image/slider/1.png";
 import img2 from "@/assets/image/slider/2.png";
-import { getStorage } from '@/utils/index'
 import { useI18n } from 'vue-i18n'
 import { customerServiceUrl } from "@/config";
 import { useRouter } from 'vue-router';
@@ -105,16 +92,9 @@
 const msg = ref('')
 const type = ref(1)
 const time = ref(0)
-let agree = ref(false)
 const username = ref('')
-const password = ref('')
-const repassword = ref('')
 const verifyCode = ref('')
-const safeword = ref('')
-const fundPassword = ref('')
-const refundPassword = ref('')
 const activeIndex = ref(1)
-const typeText = ref('password')
 let isArea = ref(false)
 let dialCode = ref(0)
 let icon = ref('')
@@ -122,13 +102,7 @@
     timer: null
 })
 
-let invitCode = ref('')
 onMounted(() => {
-    console.log(store)
-    let usercode = getStorage('usercode')
-    if (usercode) {
-        invitCode = usercode;
-    }
     clearInterval(state.timer)
     state.timer = null
 })
@@ -179,9 +153,6 @@
 const onFail = () => {
     msg.value = ''
 }
-const onRefresh = () => {
-    msg.value = ''
-}
 
 const controlChildRef = ref(null)
 const onSelectArea = () => {
@@ -191,9 +162,6 @@
 const getName = (params) => {
     icon.value = params.code;
     dialCode.value = params.dialCode;
-}
-const agreeProt = () => {
-    agree.value = !agree.value
 }
 const register = () => {
     console.log(activeIndex.value, 'activeIndex.value')
@@ -212,10 +180,6 @@
             showToast(t('entryCorrectEmail'));
             return
         }
-        if (safeword.value == '') {
-            showToast(t('safewordTips'));
-            return
-        }
         if (verifyCode.value.length < 6) {
             showToast(t('entryVerifyTips'));
             return
@@ -229,22 +193,10 @@
             showToast(t('entryPhone'));
             return
         }
-    }
-    if (password.value == '') {
-        showToast(t('entryPassword'));
-        return
-    }
-    if (password.value.length < 6) {
-        showToast(t('passwordTips'));
-        return
-    }
-    // if (repassword.value !== password.value) {
-    //     showToast(t('noSamePassword'));
-    //     return
-    // }
-    if (!agree.value) {
-        showToast(t('agreeServiceCond'));
-        return
+        if (verifyCode.value.length < 6) {
+            showToast(t('entryVerifyTips'));
+            return
+        }
     }
     show.value = true
 }
@@ -266,29 +218,41 @@
         case 1:
             {
                 type.value = 2;
+
+                _bindEmail({
+                    email: username.value,
+                    verifcode: verifyCode.value, // 验证码
+                }).then(res => {
+                    showToast(t('bindSuccess'));
+                    getinfo()
+                })
                 break;
             }
         case 2:
             {
                 type.value = 1;
+
+                _bindPhone({
+                    phone: username.value,
+                    verifcode: verifyCode.value, // 验证码
+                }).then(res => {
+                    showToast(t('bindSuccess'));
+                    getinfo()
+                })
                 break;
             }
     }
-
-    _registerEorP({
-        username: activeIndex.value === 1 ? username.value : dialCode.value + username.value,
-        password: password.value,
-        type: activeIndex.value === 1 ? '2' : '1',   // 2邮箱,1手机
-        verifcode: verifyCode.value,
-        safeword: safeword.value
-    }).then((res) => {
-        userStore[GET_USERINFO](res)
-        store.state.user.userInfo = res
-        // 其他操作??
-        // router.push('/identity')
-        router.push('/login')
-    })
 }
+// 获取用户信息
+let userdata = ref({})
+const getinfo = () => {
+    _info().then((data) => {
+        userdata.value = data;  // 确保 userdata 被正确声明
+    }).catch(error => {
+        console.error('Error fetching data:', error);
+    });
+};
+getinfo()
 </script>
 
 <style lang="scss" scoped>

--
Gitblit v1.9.3