fix:注册界面修改
This commit is contained in:
@@ -595,7 +595,12 @@ const local: any = {
|
|||||||
deleteFailed: "Delete failed.",
|
deleteFailed: "Delete failed.",
|
||||||
fetchFailed: "Failed to retrieve the list of devices.",
|
fetchFailed: "Failed to retrieve the list of devices.",
|
||||||
lastActive: "Last active time.",
|
lastActive: "Last active time.",
|
||||||
}
|
},
|
||||||
|
profile: {
|
||||||
|
getUserInfoFailed: 'Failed to get user info',
|
||||||
|
updateSuccess: 'Update successful',
|
||||||
|
updateFailed: 'Update failed'
|
||||||
|
},
|
||||||
},
|
},
|
||||||
form: {
|
form: {
|
||||||
required: 'Cannot be empty',
|
required: 'Cannot be empty',
|
||||||
|
|||||||
@@ -595,7 +595,12 @@ const local:any = {
|
|||||||
deleteFailed: "删除失败",
|
deleteFailed: "删除失败",
|
||||||
fetchFailed: "获取设备列表失败",
|
fetchFailed: "获取设备列表失败",
|
||||||
lastActive: "最后活跃时间",
|
lastActive: "最后活跃时间",
|
||||||
}
|
},
|
||||||
|
profile: {
|
||||||
|
getUserInfoFailed: '获取用户信息失败',
|
||||||
|
updateSuccess: '更新成功',
|
||||||
|
updateFailed: '更新失败'
|
||||||
|
},
|
||||||
},
|
},
|
||||||
form: {
|
form: {
|
||||||
required: '不能为空',
|
required: '不能为空',
|
||||||
|
|||||||
@@ -32,36 +32,6 @@ const currentStep = ref(0);
|
|||||||
// 是否同意协议
|
// 是否同意协议
|
||||||
const agreeTerms = ref(false);
|
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 {
|
interface BasicFormModel {
|
||||||
username: string;
|
username: string;
|
||||||
@@ -114,19 +84,29 @@ const basicRules = computed<Record<string, Rule | Rule[]>>(() => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const validatePhone = async (_rule: Rule, value: string) => {
|
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}$/;
|
const phonePattern = /^1[3-9]\d{9}$/;
|
||||||
|
|
||||||
if (!phonePattern.test(value)) {
|
if (!phonePattern.test(value)) {
|
||||||
return Promise.reject(t('page.login.register.phoneInvalid'));
|
return Promise.reject(t('page.login.register.phoneInvalid'));
|
||||||
}
|
}
|
||||||
|
|
||||||
const { exists } = await authStore.checkUserRepeat({ phonenumber: value, authType: 'u' });
|
// 手机号重复性验证
|
||||||
if (exists) {
|
try {
|
||||||
return Promise.reject(t('page.login.register.phoneExists'));
|
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 {
|
return {
|
||||||
@@ -224,22 +204,27 @@ async function handleSubmit() {
|
|||||||
await securityFormRef.value?.validate();
|
await securityFormRef.value?.validate();
|
||||||
|
|
||||||
// 整合表单数据
|
// 整合表单数据
|
||||||
model.username = basicModel.username;
|
const baseData = {
|
||||||
model.password = securityModel.password;
|
username: basicModel.username,
|
||||||
model.email = securityModel.email; // 使用第三步的 email
|
password: securityModel.password,
|
||||||
model.fullName = basicModel.fullName;
|
email: securityModel.email,
|
||||||
model.gender = basicModel.gender;
|
fullName: basicModel.fullName,
|
||||||
model.phone = basicModel.phone;
|
gender: basicModel.gender,
|
||||||
model.address = basicModel.address;
|
address: basicModel.address,
|
||||||
model.code = securityModel.code;
|
code: securityModel.code,
|
||||||
model.uuid = securityModel.uuid;
|
uuid: securityModel.uuid,
|
||||||
|
|
||||||
const success = await authStore.register({
|
|
||||||
...model,
|
|
||||||
age: dayjs().diff(dayjs(basicModel.birthDate), 'year'),
|
age: dayjs().diff(dayjs(basicModel.birthDate), 'year'),
|
||||||
sex: model.gender,
|
sex: basicModel.gender,
|
||||||
phonenumber: model.phone
|
authType: 'u'
|
||||||
});
|
};
|
||||||
|
|
||||||
|
// 创建最终的提交数据,只在有手机号时添加
|
||||||
|
const submitData = {
|
||||||
|
...baseData,
|
||||||
|
...(basicModel.phone ? { phonenumber: basicModel.phone } : {})
|
||||||
|
};
|
||||||
|
|
||||||
|
const success = await authStore.register(submitData);
|
||||||
|
|
||||||
if (success) {
|
if (success) {
|
||||||
window.$message?.success(t('page.login.register.registerSuccess'));
|
window.$message?.success(t('page.login.register.registerSuccess'));
|
||||||
|
|||||||
Reference in New Issue
Block a user