1
李凌
2025-09-24 a525c62094f6b40545e299f3d1171a933cd40e14
1
17 files modified
193 ■■■■ changed files
src/i18n/Deutsch.js 1 ●●●● patch | view | raw | blame | history
src/i18n/Italy.js 1 ●●●● patch | view | raw | blame | history
src/i18n/Japanese.js 1 ●●●● patch | view | raw | blame | history
src/i18n/Portuguese.js 1 ●●●● patch | view | raw | blame | history
src/i18n/Spanish.js 1 ●●●● patch | view | raw | blame | history
src/i18n/cn.js 1 ●●●● patch | view | raw | blame | history
src/i18n/en.js 1 ●●●● patch | view | raw | blame | history
src/i18n/fa.js 1 ●●●● patch | view | raw | blame | history
src/i18n/korean.js 1 ●●●● patch | view | raw | blame | history
src/i18n/th.js 1 ●●●● patch | view | raw | blame | history
src/i18n/vi.js 1 ●●●● patch | view | raw | blame | history
src/i18n/zhcn.js 1 ●●●● patch | view | raw | blame | history
src/views/cryptos/AccountChange/index.vue 5 ●●●● patch | view | raw | blame | history
src/views/cryptos/PerpetualContract/orderDetail.vue 10 ●●●● patch | view | raw | blame | history
src/views/cryptos/Recharge/rechargeDetail.vue 10 ●●●● patch | view | raw | blame | history
src/views/safety/index.vue 2 ●●● patch | view | raw | blame | history
src/views/safety/resetPhoneEmail.vue 154 ●●●●● patch | view | raw | blame | history
src/i18n/Deutsch.js
@@ -2842,4 +2842,5 @@
    "币种数量": "Menge der währung",
    "进度": "Fortschritt",
    "更换绑定": "Ersetzen sie die bindung",
    "手机号已绑定": "Telefonnummer wurde gebunden",
}
src/i18n/Italy.js
@@ -2932,4 +2932,5 @@
    "币种数量": "Menge der Währung",
    "进度": "Fortschritt",
    "更换绑定": "Cambio di legame",
    "手机号已绑定": "Il numero di telefono è stato associato",
}
src/i18n/Japanese.js
@@ -2700,4 +2700,5 @@
    "币种数量": "通貨数量",
    "进度": "進捗",
    "更换绑定": "バインドを変更します",
    "手机号已绑定": "電話番号がバインドされています",
}
src/i18n/Portuguese.js
@@ -652,4 +652,5 @@
    "币种数量": "Quantidade de moeda",
    "进度": "Progresso",
    "更换绑定": "Trocar de ligação",
    "手机号已绑定": "O número de telefone já está vinculado",
}
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",
}
src/i18n/cn.js
@@ -2821,4 +2821,5 @@
    "币种数量": "幣種數量",
    "进度": "進度",
    "更换绑定": "更換綁定",
    "手机号已绑定": "手機號已綁定",
}
src/i18n/en.js
@@ -2796,4 +2796,5 @@
    "币种数量": "Currency quantity",
    "进度": "Progress",
    "更换绑定": "Change binding",
    "手机号已绑定": "Mobile phone number has been bound",
}
src/i18n/fa.js
@@ -2739,4 +2739,5 @@
    "币种数量": "Menge der Währung",
    "进度": "Fortschritt",
    "更换绑定": "Changer de liaison",
    "手机号已绑定": "Numéro de téléphone portable lié",
}
src/i18n/korean.js
@@ -2836,4 +2836,5 @@
    "币种数量": "통화 수량",
    "进度": "진행 상황",
    "更换绑定": "바인딩 변경",
    "手机号已绑定": "핸드폰 번호가 바인딩되었습니다",
}
src/i18n/th.js
@@ -2807,4 +2807,5 @@
    "币种数量": "จำนวนเงินตรา",
    "进度": "ความก้าวหน้า",
    "更换绑定": "เปลี่ยนการเชื่อมโยง",
    "手机号已绑定": "เบอร์โทรศัพท์มือถือถูกเชื่อมโยงแล้ว",
}
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",
}
src/i18n/zhcn.js
@@ -2801,4 +2801,5 @@
    "币种数量": "币种数量",
    "进度": "进度",
    "更换绑定": "更换绑定",
    "手机号已绑定": "手机号已绑定",
}
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>
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>
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>
src/views/safety/index.vue
@@ -93,7 +93,7 @@
    url: "/resetVerify?type=0"
  },
  {
    name: `${t('更换绑定')}`,
    name: `${t('bind')}`,
    url: "/resetPhoneEmail"
  },
])
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>