fix:修复bug
This commit is contained in:
@@ -20,21 +20,38 @@ const columns = ref<string[]>(Config.phoneCodeList);
|
||||
|
||||
const isAgreed = ref(false)
|
||||
|
||||
const EmailRegisterSchema = z.object({
|
||||
firstName: z.string().min(1, {message: t('pages-login.index.prompt.first-name')}),
|
||||
surname: z.string().min(1, {message: t('pages-login.index.prompt.last-name')}),
|
||||
email: z.string().min(1, {message: t('pages-login.index.prompt.email-address-verify')}).email({message: t('pages-login.index.prompt.email-address-verify')}),
|
||||
confirmEmail: z.string().min(1, {message: t('pages-login.index.prompt.email-address-verify')}).email({message: t('pages-login.index.prompt.email-address-verify')}),
|
||||
loginPwd: z.string().min(1, {message: t('pages-login.index.prompt.password')}),
|
||||
confirmLoginPwd: z.string().min(1, {message: t('pages-login.index.prompt.password')}),
|
||||
})
|
||||
.refine((data) => data.email === data.confirmEmail, {
|
||||
path: ['confirmEmail'],
|
||||
message: t('pages-login.index.prompt.confirm-email-verify')
|
||||
})
|
||||
.refine((data) => data.loginPwd === data.confirmLoginPwd, {
|
||||
path: ['confirmLoginPwd'],
|
||||
message: t('pages-login.index.prompt.confirm-password-verify')
|
||||
})
|
||||
|
||||
const FormSchema = z.object({
|
||||
const PhoneRegisterSchema = z.object({
|
||||
firstName: z.string().min(1, {message: t('pages-login.index.prompt.first-name')}),
|
||||
surname: z.string().min(1, {message: t('pages-login.index.prompt.last-name')}),
|
||||
phone: z.string().min(1, {message: t('pages-login.index.prompt.phone-number')}).regex(/^\d{6,11}$/, {message: t('pages-login.index.prompt.phone-number-verify')}),
|
||||
loginPwd: z.string().min(1, {message: t('pages-login.index.prompt.password')}),
|
||||
email: z.string().email({message: t('pages-login.index.prompt.email-address-verify')}),
|
||||
confirmEmail: z.string().email({message: t('pages-login.index.prompt.email-address-verify')}),
|
||||
}).refine((data) => data.email === data.confirmEmail, {
|
||||
path: ['confirmEmail'],
|
||||
message: t('pages-login.index.prompt.confirm-email-verify')
|
||||
confirmLoginPwd: z.string().min(1, {message: t('pages-login.index.prompt.password')}),
|
||||
}).refine((data) => data.loginPwd === data.confirmLoginPwd, {
|
||||
path: ['confirmLoginPwd'],
|
||||
message: t('pages-login.index.prompt.confirm-password-verify')
|
||||
})
|
||||
|
||||
function checkForm(): boolean {
|
||||
const validateFormField = FormSchema.safeParse(logicStore.registerForm)
|
||||
const type = logicStore.registerForm.type
|
||||
const schema = type === 'phone' ? PhoneRegisterSchema : EmailRegisterSchema
|
||||
const validateFormField = schema.safeParse(logicStore.registerForm)
|
||||
if (!validateFormField.success) {
|
||||
const fieldErrorMessage = validateFormField.error.flatten().fieldErrors
|
||||
const errorMessage: string | undefined = R.path([0, 0], R.values(fieldErrorMessage))
|
||||
@@ -63,15 +80,21 @@ const btnLoading = ref(false)
|
||||
function codeSubmit() {
|
||||
btnLoading.value = true
|
||||
// console.log(data)
|
||||
const {
|
||||
confirmEmail,
|
||||
confirmLoginPwd,
|
||||
...rest
|
||||
} = logicStore.registerForm as any
|
||||
appUserRegisterPost({
|
||||
body: {
|
||||
...logicStore.registerForm,
|
||||
phone: logicStore.registerForm.phone,
|
||||
...rest,
|
||||
// 后端接收“确认密码”字段名为 newPwd
|
||||
newPwd: confirmLoginPwd,
|
||||
areaCode: areaCode.value,
|
||||
// captcha: data.code,
|
||||
// uuid: data.uuid,
|
||||
userPort: Config.userPort, // 登录端口2 商户端
|
||||
}
|
||||
} as any
|
||||
}).then((res) => {
|
||||
userStore.token = res.data.token;
|
||||
logicStore.reset()
|
||||
@@ -120,12 +143,17 @@ function navigateTo(url: string) {
|
||||
const emailIsReadonly = ref(false)
|
||||
const phoneIsReadonly = ref(false)
|
||||
onMounted(() => {
|
||||
const {email, type} = logicStore.registerForm
|
||||
const {email, confirmEmail, phone, type} = logicStore.registerForm
|
||||
if (type === 'phone') {
|
||||
// phoneIsReadonly.value = true
|
||||
phoneIsReadonly.value = !!phone
|
||||
emailIsReadonly.value = false
|
||||
}
|
||||
if (type === 'email') {
|
||||
// emailIsReadonly.value = true
|
||||
emailIsReadonly.value = !!(email || confirmEmail)
|
||||
phoneIsReadonly.value = false
|
||||
if (!logicStore.registerForm.email && logicStore.registerForm.confirmEmail) {
|
||||
logicStore.registerForm.email = logicStore.registerForm.confirmEmail
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
@@ -139,7 +167,7 @@ onMounted(() => {
|
||||
</view>
|
||||
<view class="">
|
||||
<!-- 邮箱 -->
|
||||
<view class="">
|
||||
<view v-if="logicStore.registerForm.type !== 'phone'" class="">
|
||||
<view class="text-32rpx leading-32rpx text-#14181B mb-24rpx">{{ t("common.email") }}</view>
|
||||
<view class="border-color px-30rpx flex items-center bg-#EFEFEF">
|
||||
<wd-input
|
||||
@@ -158,7 +186,7 @@ onMounted(() => {
|
||||
</view>
|
||||
</view>
|
||||
<!-- Confirm email -->
|
||||
<view class="mt-36rpx">
|
||||
<view v-if="logicStore.registerForm.type !== 'phone'" class="mt-36rpx">
|
||||
<view class="text-32rpx leading-32rpx text-#14181B mb-24rpx">{{
|
||||
t("pages-login.sign-up.confirm-email")
|
||||
}}
|
||||
@@ -198,6 +226,25 @@ onMounted(() => {
|
||||
</wd-input>
|
||||
</view>
|
||||
</view>
|
||||
<!-- Confirm password -->
|
||||
<view class="mt-36rpx ">
|
||||
<view class="text-32rpx leading-32rpx text-#14181B mb-24rpx">{{ t("pages-login.sign-up.confirm-password") }}</view>
|
||||
<view class="border-color px-30rpx flex items-center bg-#EFEFEF">
|
||||
<wd-input
|
||||
v-model.trim="logicStore.registerForm.confirmLoginPwd"
|
||||
:cursorSpacing="20"
|
||||
:focus-when-clear="false"
|
||||
:maxlength="20"
|
||||
:placeholder="t('common.enterPassword')"
|
||||
clearable
|
||||
custom-class="flex-1 !bg-transparent"
|
||||
no-border
|
||||
placeholderClass="!text-#999 !text-32rpx"
|
||||
showPassword
|
||||
>
|
||||
</wd-input>
|
||||
</view>
|
||||
</view>
|
||||
<!-- First name -->
|
||||
<view class="mt-36rpx ">
|
||||
<view class="text-32rpx leading-32rpx text-#14181B mb-24rpx">{{ t("pages-login.sign-up.first-name") }}</view>
|
||||
@@ -235,7 +282,7 @@ onMounted(() => {
|
||||
</view>
|
||||
</view>
|
||||
<!-- Phone number -->
|
||||
<view class="mt-36rpx ">
|
||||
<view v-if="logicStore.registerForm.type !== 'email'" class="mt-36rpx ">
|
||||
<view class="text-32rpx leading-32rpx text-#14181B mb-24rpx">{{
|
||||
t("pages-login.sign-up.phone-number")
|
||||
}}
|
||||
|
||||
Reference in New Issue
Block a user