fix:注册界面修改
This commit is contained in:
@@ -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',
|
||||
|
||||
@@ -595,7 +595,12 @@ const local:any = {
|
||||
deleteFailed: "删除失败",
|
||||
fetchFailed: "获取设备列表失败",
|
||||
lastActive: "最后活跃时间",
|
||||
}
|
||||
},
|
||||
profile: {
|
||||
getUserInfoFailed: '获取用户信息失败',
|
||||
updateSuccess: '更新成功',
|
||||
updateFailed: '更新失败'
|
||||
},
|
||||
},
|
||||
form: {
|
||||
required: '不能为空',
|
||||
|
||||
@@ -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'));
|
||||
}
|
||||
|
||||
// 手机号重复性验证
|
||||
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 {
|
||||
@@ -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'));
|
||||
|
||||
Reference in New Issue
Block a user