fix:修复bug

This commit is contained in:
2026-03-18 09:24:35 +08:00
parent 60df817de5
commit 741769cbeb
14 changed files with 263 additions and 180 deletions
+63 -16
View File
@@ -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")
}}