2
0

fix:注册界面修改

This commit is contained in:
zhongzm
2024-12-13 19:13:34 +08:00
parent 25f4a2c290
commit bf911bac96
3 changed files with 48 additions and 53 deletions

View File

@@ -595,7 +595,12 @@ const local: any = {
deleteFailed: "Delete failed.",
fetchFailed: "Failed to retrieve the list of devices.",
lastActive: "Last active time.",
}
},
profile: {
getUserInfoFailed: 'Failed to get user info',
updateSuccess: 'Update successful',
updateFailed: 'Update failed'
},
},
form: {
required: 'Cannot be empty',

View File

@@ -595,7 +595,12 @@ const local:any = {
deleteFailed: "删除失败",
fetchFailed: "获取设备列表失败",
lastActive: "最后活跃时间",
}
},
profile: {
getUserInfoFailed: '获取用户信息失败',
updateSuccess: '更新成功',
updateFailed: '更新失败'
},
},
form: {
required: '不能为空',

View File

@@ -32,36 +32,6 @@ const currentStep = ref(0);
// 是否同意协议
const agreeTerms = ref(false);
// 定义一个统一的数据模型
interface RegisterModel {
username: string;
password: string;
email: string;
fullName: string;
age: number;
gender: string;
phone: string;
address: string;
code: string;
uuid: string;
authType: string;
}
// 使用一个统一的 model
const model = reactive<RegisterModel>({
username: '',
password: '',
email: '',
fullName: '',
age: 0,
gender: '',
phone: '',
address: '',
code: '',
uuid: '',
authType: 'u'
});
// 第一步表单数据
interface BasicFormModel {
username: string;
@@ -114,19 +84,29 @@ const basicRules = computed<Record<string, Rule | Rule[]>>(() => {
};
const validatePhone = async (_rule: Rule, value: string) => {
if (!value) return Promise.resolve();
// 如果没有填写手机号,直接返回成功
if (!value || value.trim() === '') {
return Promise.resolve();
}
// 手机号格式验证
const phonePattern = /^1[3-9]\d{9}$/;
if (!phonePattern.test(value)) {
return Promise.reject(t('page.login.register.phoneInvalid'));
}
const { exists } = await authStore.checkUserRepeat({ phonenumber: value, authType: 'u' });
if (exists) {
return Promise.reject(t('page.login.register.phoneExists'));
// 手机号重复性验证
try {
const { exists } = await authStore.checkUserRepeat({ phonenumber: value, authType: 'u' });
if (exists) {
return Promise.reject(t('page.login.register.phoneExists'));
}
return Promise.resolve();
} catch (error) {
// 如果服务器验证出错,不阻止表单提交
console.error('Phone validation error:', error);
return Promise.resolve();
}
return Promise.resolve();
};
return {
@@ -224,22 +204,27 @@ async function handleSubmit() {
await securityFormRef.value?.validate();
// 整合表单数据
model.username = basicModel.username;
model.password = securityModel.password;
model.email = securityModel.email; // 使用第三步的 email
model.fullName = basicModel.fullName;
model.gender = basicModel.gender;
model.phone = basicModel.phone;
model.address = basicModel.address;
model.code = securityModel.code;
model.uuid = securityModel.uuid;
const success = await authStore.register({
...model,
const baseData = {
username: basicModel.username,
password: securityModel.password,
email: securityModel.email,
fullName: basicModel.fullName,
gender: basicModel.gender,
address: basicModel.address,
code: securityModel.code,
uuid: securityModel.uuid,
age: dayjs().diff(dayjs(basicModel.birthDate), 'year'),
sex: model.gender,
phonenumber: model.phone
});
sex: basicModel.gender,
authType: 'u'
};
// 创建最终的提交数据,只在有手机号时添加
const submitData = {
...baseData,
...(basicModel.phone ? { phonenumber: basicModel.phone } : {})
};
const success = await authStore.register(submitData);
if (success) {
window.$message?.success(t('page.login.register.registerSuccess'));