|
|
|
@ -2,7 +2,7 @@ |
|
|
|
|
<div class="login-form"> |
|
|
|
|
<div class="login-title">注册</div> |
|
|
|
|
<div class="form"> |
|
|
|
|
<el-form :model="form" label-width="0"> |
|
|
|
|
<el-form :model="form" ref="ruleFormRef" label-width="0" :rules="rules"> |
|
|
|
|
<!-- <el-form-item> |
|
|
|
|
<el-col :span="11"> |
|
|
|
|
<el-input |
|
|
|
@ -24,21 +24,21 @@ |
|
|
|
|
/> |
|
|
|
|
</el-col> |
|
|
|
|
</el-form-item> --> |
|
|
|
|
<el-form-item> |
|
|
|
|
<el-form-item prop="username"> |
|
|
|
|
<el-input |
|
|
|
|
v-model="form.username" |
|
|
|
|
:prefix-icon="User" |
|
|
|
|
placeholder="账号" |
|
|
|
|
/> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item> |
|
|
|
|
<el-form-item prop="realname"> |
|
|
|
|
<el-input |
|
|
|
|
v-model="form.realname" |
|
|
|
|
:prefix-icon="User" |
|
|
|
|
placeholder="姓名" |
|
|
|
|
/> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item> |
|
|
|
|
<el-form-item prop="workno"> |
|
|
|
|
<el-input |
|
|
|
|
v-model="form.workno" |
|
|
|
|
placeholder="工号/学号" |
|
|
|
@ -61,14 +61,14 @@ |
|
|
|
|
ref="cascader" |
|
|
|
|
/> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item> |
|
|
|
|
<el-form-item prop="mobile"> |
|
|
|
|
<el-input |
|
|
|
|
placeholder="手机号码" |
|
|
|
|
v-model="form.mobile" |
|
|
|
|
:prefix-icon="Iphone" |
|
|
|
|
></el-input> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item> |
|
|
|
|
<el-form-item prop="password"> |
|
|
|
|
<el-input |
|
|
|
|
placeholder="密码" |
|
|
|
|
v-model="form.password" |
|
|
|
@ -119,6 +119,7 @@ import { User, Iphone, Lock } from '@element-plus/icons-vue' |
|
|
|
|
import { getFaculties } from '@/api/race' |
|
|
|
|
import { ElMessage } from 'element-plus' |
|
|
|
|
import { getCode, sturegister } from '@/api/user' |
|
|
|
|
import { ca } from 'element-plus/es/locales.mjs' |
|
|
|
|
const $emits = defineEmits(['backLogin']) |
|
|
|
|
const form = reactive<any>({ |
|
|
|
|
username: '', |
|
|
|
@ -140,7 +141,43 @@ const KeyValue: any = { |
|
|
|
|
confirmPassword: '确认密码' /*, policy: false*/, |
|
|
|
|
smscode: '验证码', |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const rules = { |
|
|
|
|
username: [ |
|
|
|
|
{ required: true, message: '请输入姓名', trigger: 'blur' }, |
|
|
|
|
{ min: 6, max: 20, message: '账号长度在6到50个字符', trigger: 'blur' }, |
|
|
|
|
{ |
|
|
|
|
pattern: /^[a-zA-Z0-9]+$/, |
|
|
|
|
message: '姓名只能包含中文、英文', |
|
|
|
|
trigger: 'blur', |
|
|
|
|
}, |
|
|
|
|
], |
|
|
|
|
realname: [ |
|
|
|
|
{ required: true, message: '请输入姓名', trigger: 'blur' }, |
|
|
|
|
{ min: 2, max: 20, message: '姓名长度在2到10个字符', trigger: 'blur' }, |
|
|
|
|
{ |
|
|
|
|
pattern: /^[a-zA-Z0-9]+$/, |
|
|
|
|
message: '姓名只能包含中文、英文', |
|
|
|
|
trigger: 'blur', |
|
|
|
|
}, |
|
|
|
|
], |
|
|
|
|
workno: [ |
|
|
|
|
{ required: true, message: '请输入工号/学号', trigger: 'blur' }, |
|
|
|
|
{ pattern: /^\d{1,20}$/, message: '工号/学号必须是8位数字', trigger: 'blur' }, |
|
|
|
|
], |
|
|
|
|
mobile: [ |
|
|
|
|
{ required: true, message: '请输入手机号', trigger: 'blur' }, |
|
|
|
|
{ pattern: /^1[3-9]\d{9}$/, message: '手机号格式不正确', trigger: 'blur' }, |
|
|
|
|
], |
|
|
|
|
password: [ |
|
|
|
|
{ required: true, message: '请输入密码', trigger: 'blur' }, |
|
|
|
|
{ min: 8, max: 16, message: '密码长度在8到16个字符', trigger: 'blur' }, |
|
|
|
|
{ |
|
|
|
|
pattern: /^(?=(.*[a-zA-Z]){2,}|(?=.*[a-zA-Z])(?=.*\d)|(?=.*[a-zA-Z])(?=.*[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>/?])|(?=.*\d)(?=.*[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>/?]))[a-zA-Z\d!@#$%^&*()_+\-=\[\]{};':"\\|,.<>/?]{8,16}$/, |
|
|
|
|
message: '密码必须包含至少两种字符类型:英文字符、数字、特殊字符', |
|
|
|
|
trigger: 'blur' |
|
|
|
|
} |
|
|
|
|
], |
|
|
|
|
} |
|
|
|
|
const FacultiesList = ref([]) |
|
|
|
|
const getFacultiesList = async (data: any) => { |
|
|
|
|
const res: any = await getFaculties(data) |
|
|
|
@ -160,67 +197,73 @@ const props = { |
|
|
|
|
primaryKey: 'key', |
|
|
|
|
pid: node.value, |
|
|
|
|
}) |
|
|
|
|
if(node.level == 0 || node.level == 1){ |
|
|
|
|
if (node.level == 0 || node.level == 1) { |
|
|
|
|
const nodes = FacultiesList.value.map((item: any) => ({ |
|
|
|
|
value: item.id, |
|
|
|
|
label: item.title, |
|
|
|
|
disabled : true |
|
|
|
|
})) |
|
|
|
|
resolve(nodes) |
|
|
|
|
}else{ |
|
|
|
|
value: item.id, |
|
|
|
|
label: item.title, |
|
|
|
|
disabled: true, |
|
|
|
|
})) |
|
|
|
|
resolve(nodes) |
|
|
|
|
} else { |
|
|
|
|
const nodes = FacultiesList.value.map((item: any) => ({ |
|
|
|
|
value: item.id, |
|
|
|
|
label: item.title, |
|
|
|
|
})) |
|
|
|
|
resolve(nodes) |
|
|
|
|
value: item.id, |
|
|
|
|
label: item.title, |
|
|
|
|
})) |
|
|
|
|
resolve(nodes) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
}, |
|
|
|
|
} |
|
|
|
|
const cascader = ref() |
|
|
|
|
const handleChange = (e:any) => { |
|
|
|
|
const handleChange = (e: any) => { |
|
|
|
|
// console.log(e,cascader.value); |
|
|
|
|
cascader.value.togglePopperVisible() |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const ruleFormRef = ref<any>() |
|
|
|
|
const ragistered = async () => { |
|
|
|
|
for (const key in form) { |
|
|
|
|
if (form[key] === '') { |
|
|
|
|
ElMessage.warning(`${KeyValue[key]}不能为空`) |
|
|
|
|
return console.log(KeyValue[key], '不能为空') |
|
|
|
|
} else { |
|
|
|
|
if (key === 'mobile') { |
|
|
|
|
const phoneRegex = /^1[3-9]\d{9}$/ |
|
|
|
|
if (!phoneRegex.test(form[key])) { |
|
|
|
|
return ElMessage.warning(`手机号格式不正确`) |
|
|
|
|
try { |
|
|
|
|
await ruleFormRef.value.validate() |
|
|
|
|
for (const key in form) { |
|
|
|
|
if (form[key] === '') { |
|
|
|
|
ElMessage.warning(`${KeyValue[key]}不能为空`) |
|
|
|
|
return console.log(KeyValue[key], '不能为空') |
|
|
|
|
} else { |
|
|
|
|
if (key === 'mobile') { |
|
|
|
|
const phoneRegex = /^1[3-9]\d{9}$/ |
|
|
|
|
if (!phoneRegex.test(form[key])) { |
|
|
|
|
return ElMessage.warning(`手机号格式不正确`) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (!(form.password === form.confirmPassword)) { |
|
|
|
|
return ElMessage.warning(`两次密码不同`) |
|
|
|
|
} |
|
|
|
|
console.log(form) |
|
|
|
|
let data = { |
|
|
|
|
checkKey: 1629428467008, |
|
|
|
|
departmentid: form.department, |
|
|
|
|
password: form.password, |
|
|
|
|
phone: form.mobile, |
|
|
|
|
realname: form.realname, |
|
|
|
|
smscode: form.smscode, |
|
|
|
|
username: form.username, |
|
|
|
|
workno: form.workno, |
|
|
|
|
} |
|
|
|
|
const res: any = await sturegister(data) |
|
|
|
|
if (res.code === 200) { |
|
|
|
|
ElMessage.success(`注册成功`) |
|
|
|
|
$emits('backLogin') |
|
|
|
|
} else { |
|
|
|
|
ElMessage.warning(res.message) |
|
|
|
|
getcodeinfo() |
|
|
|
|
} |
|
|
|
|
console.log(res) |
|
|
|
|
} catch (error: any) { |
|
|
|
|
console.log(error, 'error') |
|
|
|
|
for (const key in error) { |
|
|
|
|
ElMessage.warning(`${KeyValue[key]}${error[key][0].message}`) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (!(form.password === form.confirmPassword)) { |
|
|
|
|
return ElMessage.warning(`两次密码不同`) |
|
|
|
|
} |
|
|
|
|
console.log(form) |
|
|
|
|
let data = { |
|
|
|
|
checkKey: 1629428467008, |
|
|
|
|
departmentid: form.department, |
|
|
|
|
password: form.password, |
|
|
|
|
phone: form.mobile, |
|
|
|
|
realname: form.realname, |
|
|
|
|
smscode: form.smscode, |
|
|
|
|
username: form.username, |
|
|
|
|
workno: form.workno, |
|
|
|
|
} |
|
|
|
|
const res: any = await sturegister(data) |
|
|
|
|
if (res.code === 200) { |
|
|
|
|
ElMessage.success(`注册成功`) |
|
|
|
|
$emits('backLogin') |
|
|
|
|
} else { |
|
|
|
|
ElMessage.warning(res.message) |
|
|
|
|
getcodeinfo() |
|
|
|
|
} |
|
|
|
|
console.log(res) |
|
|
|
|
} |
|
|
|
|
const codeUrl = ref('') |
|
|
|
|
|
|
|
|
|