1
李凌
2026-01-21 e01cee0f0c5c5c2eb2d8595eadb3c7a9df2a37fc
src/views/register/index.vue
@@ -10,32 +10,42 @@
            <!-- <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 class="textColor1" :class="activeIndex == 1 ? 'active' : ''" @click="changeIndex(1)">
                {{ $t('电子邮箱') }}
            </div>
            <div class="textColor1" :class="activeIndex == 2 ? 'active' : ''" @click="changeIndex(2)">{{
                $t('phoneNum')
                }}</div>
            <div class="textColor1" :class="activeIndex == 2 ? 'active' : ''" @click="changeIndex(2)">
                {{ $t('手机号码') }}
            </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('setPassword')" :placeholderText="$t('passwordTips')" v-model="password"
        <ExInput :label="$t('设置登录密码')" :placeholderText="$t('请输入8-16位字符,必须包含大写字母、和特殊字符')" v-model="password"
            typeText="password" />
        <ExInput :label="$t('repassword')" :placeholderText="$t('surePassword')" v-model="repassword"
            typeText="password" />
        <ExInput :label="$t('setSafeword')" :placeholderText="$t('safewordTips')" v-model="safeword" typeText="password"
            v-if="activeIndex === 1 || activeIndex === 2" />
        <ExInput :label="$t('确认登录密码')" :placeholderText="$t('surePassword')" v-model="repassword" typeText="password" />
        <ExInput :label="$t('setSafeword')" :placeholderText="$t('请输入6位阿拉伯数字的资金密码')" 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>
            <p class="label  textColor" v-if="activeIndex == 1">{{ $t('邮箱验证码') }}</p>
            <p class="label  textColor" v-else-if="activeIndex == 2">{{ $t('手机验证码') }}</p>
            <p class="label  textColor" v-else>{{ $t('验证码') }}</p>
            <div class="iptbox inputBackground">
                <input class="inputBackground textColor" type="text" :placeholder="$t('entryVerifyCode')"
                <input class="inputBackground textColor" type="text"
                    :placeholder="activeIndex == 1 ? $t('请输入邮箱验证码') : activeIndex == 2 ? $t('请输入手机验证码') : $t('entryVerifyCode')"
                    v-model="verifyCode">
                <span v-if="type !== 3" @click="senCode">{{ $t('sendVerifyCode') }}
                <span v-if="type !== 3" @click="senCode">
                    <span v-if="activeIndex == 1">{{ $t('发送邮箱验证码') }}</span>
                    <span v-else-if="activeIndex == 2">{{ $t('发送手机验证码') }}</span>
                    <span v-else>{{ $t('sendVerifyCode') }}</span>
                    <template v-if="time">({{ time }})s</template>
                </span>
            </div>
        </div>
        <ExInput :label="$t('金融机构代码')" :placeholderText="$t('请输入')" v-model="invitCode" :clearBtn="false" />
        <!-- <ExInput :label="$t('金融机构代码')" :placeholderText="$t('请输入金融机构识别码')" v-model="invitCode" :clearBtn="false" /> -->
        <div class="protocol textColor">
            <i @click="agreeProt">
                <img v-show="agree" src="../../assets/image/login/prot2.png" alt="" />
@@ -80,7 +90,6 @@
import { ref, onMounted, reactive, onUnmounted } from 'vue';
import { showToast } from "vant";
import store from '@/store/store'
const customer_service_url = ref(customerServiceUrl) // 客服链接,有值的话就会跳转到客服外链
const { t } = useI18n()
const router = useRouter()
const onRoute = (path) => {
@@ -88,8 +97,8 @@
        router.go(-1)
    } else {
        if (path == '/customerService') {
            if (customer_service_url.value) {
                window.location.href = customer_service_url.value;
            if (customerServiceUrl()) {
                window.location.href = customerServiceUrl();
            } else {
                router.push(path)
            }
@@ -142,9 +151,9 @@
        case 0:
            return bFlag ? t('account') : t('entryAccount');
        case 1:
            return bFlag ? t('email') : t('entryEmail');
            return bFlag ? t('电子邮箱') : t('entryEmail');
        case 2:
            return bFlag ? t('phoneNum') : t('entryPhone');
            return bFlag ? t('手机号码') : t('请输入手机号码');
    }
}
@@ -194,6 +203,13 @@
const agreeProt = () => {
    agree.value = !agree.value
}
// 密码验证
const validatePassword = (password) => {
    const passwordRegex = /^(?=.*[A-Z])(?=.*[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]).{8,16}$/;
    return passwordRegex.test(password);
}
const register = () => {
    console.log(activeIndex.value, 'activeIndex.value')
    if (activeIndex.value == 0) {
@@ -233,7 +249,8 @@
        showToast(t('entryPassword'));
        return
    }
    if (password.value.length < 6) {
    if (!validatePassword(password.value)) {
        showToast(t('passwordTips'));
        return
    }
@@ -241,6 +258,10 @@
        showToast(t('noSamePassword'));
        return
    }
    // if (invitCode.value.length == '') {
    //     showToast(t('请输入金融机构代码'));
    //     return
    // }
    if (!agree.value) {
        showToast(t('agreeServiceCond'));
        return
@@ -280,7 +301,7 @@
            password: password.value,
            type: activeIndex.value === 1 ? '2' : '1',   // 2邮箱,1手机
            verifcode: verifyCode.value,
            usercode: invitCode.value,
            // usercode: invitCode.value,
            safeword: safeword.value
        }).then((res) => {
            userStore[GET_USERINFO](res)
@@ -295,7 +316,7 @@
            password: password.value,
            // re_password: repassword.value,
            type: type.value,
            userCode: invitCode.value,
            // userCode: invitCode.value,
        }).then((res) => {
            userStore[GET_USERINFO](res)
            store.state.user.userInfo = res