|
|
@@ -7,10 +7,10 @@
|
|
|
</div>
|
|
|
<div>
|
|
|
<ul class="choose-type">
|
|
|
- <li :class="{ active: type == 'person' }"
|
|
|
- @click="changeType('person')"><i class="el-icon-user-solid"></i>注册课题组成员</li>
|
|
|
- <li :class="{ active: type == 'project' }"
|
|
|
- @click="changeType('project')"><i class="el-icon-notebook-2"></i>注册课题组负责人</li>
|
|
|
+ <li :class="{ active: form.registerType == '10' }"
|
|
|
+ @click="changeType('10')"><i class="el-icon-user-solid"></i>注册课题组成员</li>
|
|
|
+ <li :class="{ active: form.registerType == '20' }"
|
|
|
+ @click="changeType('20')"><i class="el-icon-notebook-2"></i>注册课题组负责人</li>
|
|
|
</ul>
|
|
|
<el-steps :space="200"
|
|
|
:active="active"
|
|
|
@@ -19,7 +19,7 @@
|
|
|
class="mb20">
|
|
|
<el-step title="登录信息"></el-step>
|
|
|
<el-step title="个人信息"></el-step>
|
|
|
- <el-step title="其它信息"></el-step>
|
|
|
+ <!-- <el-step title="其它信息"></el-step> -->
|
|
|
</el-steps>
|
|
|
<el-form ref="loginInfoRef"
|
|
|
size="mini"
|
|
|
@@ -28,10 +28,10 @@
|
|
|
:rules="rules"
|
|
|
label-width="80px">
|
|
|
<el-form-item label="登录账号"
|
|
|
- prop="username">
|
|
|
+ prop="userName">
|
|
|
<el-input name="username"
|
|
|
placeholder="请输入登录账号"
|
|
|
- v-model="form.username"></el-input>
|
|
|
+ v-model="form.userName"></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="密码"
|
|
|
prop="password">
|
|
|
@@ -57,9 +57,9 @@
|
|
|
:rules="rules"
|
|
|
label-width="80px">
|
|
|
<el-form-item label="姓名"
|
|
|
- prop="name">
|
|
|
+ prop="nickName">
|
|
|
<el-input placeholder="请输入姓名"
|
|
|
- v-model="form.name"></el-input>
|
|
|
+ v-model="form.nickName"></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="性别"
|
|
|
prop="sex">
|
|
|
@@ -113,9 +113,16 @@
|
|
|
</el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="课题组"
|
|
|
- prop="projectId">
|
|
|
- <el-select v-model="form.projectId"
|
|
|
+ prop="applyPgName"
|
|
|
+ v-if="form.registerType === '20'">
|
|
|
+ <el-input v-model="form.applyPgName"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="课题组"
|
|
|
+ prop="applyPg"
|
|
|
+ v-else>
|
|
|
+ <el-select v-model="form.applyPg"
|
|
|
placeholder="请选择课题组"
|
|
|
+ value-key="id"
|
|
|
class="w100">
|
|
|
<el-option v-for="item in pjtList"
|
|
|
:key="item.id"
|
|
|
@@ -124,8 +131,8 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="所在时间"
|
|
|
- prop="projectId"
|
|
|
- v-show="type === 'person'">
|
|
|
+ prop="projectDate"
|
|
|
+ v-show="form.registerType === '10'">
|
|
|
<el-date-picker v-model="form.projectDate"
|
|
|
type="daterange"
|
|
|
class="w100"
|
|
|
@@ -140,8 +147,13 @@
|
|
|
v-if="active > 0"
|
|
|
@click="preStep">上一步</el-button>
|
|
|
<el-button size="mini"
|
|
|
+ v-if="active < 1"
|
|
|
type="primary"
|
|
|
@click="nextStep">下一步</el-button>
|
|
|
+ <el-button size="mini"
|
|
|
+ v-if="active === 1"
|
|
|
+ @click="onRegister"
|
|
|
+ type="primary">注册</el-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
</el-card>
|
|
|
@@ -151,7 +163,7 @@
|
|
|
<script>
|
|
|
import crypto from "sm-crypto";
|
|
|
import { setToken } from "@/utils/auth";
|
|
|
-import { signIn } from "@/api/login";
|
|
|
+import { register } from "@/api/login";
|
|
|
import to from "await-to-js";
|
|
|
import {
|
|
|
getDictDataByType,
|
|
|
@@ -169,6 +181,14 @@ export default {
|
|
|
callback();
|
|
|
}
|
|
|
};
|
|
|
+ const checkDate = (rule, value, callback) => {
|
|
|
+ console.log(value, 'valueeeeee');
|
|
|
+
|
|
|
+ if(this.form.registerType === '10' && !value.length) {
|
|
|
+ callback(new Error("请选择所在时间"));
|
|
|
+ }
|
|
|
+ callback()
|
|
|
+ };
|
|
|
return {
|
|
|
active: 0,
|
|
|
type: "person",
|
|
|
@@ -185,7 +205,7 @@ export default {
|
|
|
groupIds: [],
|
|
|
phone: "", // 手机号
|
|
|
email: "", // 邮箱
|
|
|
- sex: "", // 性别
|
|
|
+ sex: "30", // 性别
|
|
|
password: "", // 账户密码
|
|
|
confirmPassword: "",
|
|
|
status: "10", // 用户状态
|
|
|
@@ -197,9 +217,13 @@ export default {
|
|
|
projectId: null,
|
|
|
projectName: "",
|
|
|
projectDate: [],
|
|
|
+ registerType: '10',
|
|
|
+ applyPg: {},
|
|
|
+ applyPgName: '',
|
|
|
+ applyPgId: null
|
|
|
},
|
|
|
rules: {
|
|
|
- username: [
|
|
|
+ userName: [
|
|
|
{ required: true, message: "请输入用户名", trigger: "blur" },
|
|
|
],
|
|
|
password: [
|
|
|
@@ -214,13 +238,30 @@ export default {
|
|
|
confirmPassword: [
|
|
|
{ required: true, validator: checkPassword, trigger: "blur" },
|
|
|
],
|
|
|
+ nickName: [{ required: true, message: "请输入姓名", trigger: "blur" }],
|
|
|
+ userType: [
|
|
|
+ { required: true, message: "请选择用户类型", trigger: "change" },
|
|
|
+ ],
|
|
|
+ deptId: [
|
|
|
+ { required: true, message: "请选择组织部门", trigger: "change" },
|
|
|
+ ],
|
|
|
+ idCode: [{ required: true, message: "请输入证件号", trigger: "blur" }],
|
|
|
+ applyPg: [
|
|
|
+ { required: true, message: "请选择课题组", trigger: "change" },
|
|
|
+ ],
|
|
|
+ applyPgName: [
|
|
|
+ { required: true, message: "请输入课题组", trigger: "blur" },
|
|
|
+ ],
|
|
|
+ projectDate: [
|
|
|
+ { required: true, validator: checkDate, trigger: "change" },
|
|
|
+ ]
|
|
|
},
|
|
|
loading: false,
|
|
|
userTypeList: [],
|
|
|
userSexList: [],
|
|
|
userCertList: [],
|
|
|
deptData: [],
|
|
|
- projectList: [],
|
|
|
+ pjtList: [],
|
|
|
};
|
|
|
},
|
|
|
mounted() {
|
|
|
@@ -233,17 +274,17 @@ export default {
|
|
|
getDictDataByType("sys_com_sex"),
|
|
|
getDictDataByType("sys_user_certificate"),
|
|
|
getDeptTree(),
|
|
|
- // getProjectGroupList(),
|
|
|
+ getProjectGroupList(),
|
|
|
]).then(([type, sex, cert, dept, pjt]) => {
|
|
|
this.userTypeList = type.data.values || [];
|
|
|
this.userSexList = sex.data.values || [];
|
|
|
this.userCertList = cert.data.values || [];
|
|
|
this.deptData = dept.data || [];
|
|
|
- // this.projectList = pjt.data.list || [];
|
|
|
+ this.pjtList = pjt.data.list || [];
|
|
|
});
|
|
|
},
|
|
|
changeType(val) {
|
|
|
- this.type = val;
|
|
|
+ this.form.registerType = val;
|
|
|
},
|
|
|
// 部门选择
|
|
|
deptChange() {
|
|
|
@@ -252,10 +293,10 @@ export default {
|
|
|
this.form.deptName = nodes[0].label;
|
|
|
},
|
|
|
preStep() {
|
|
|
- this.active--
|
|
|
+ this.active--;
|
|
|
},
|
|
|
nextStep() {
|
|
|
- if (this.active < 3) {
|
|
|
+ if (this.active < 2) {
|
|
|
let form = "loginInfoRef";
|
|
|
if (this.active == 1) {
|
|
|
form = "personInfoRef";
|
|
|
@@ -267,6 +308,36 @@ export default {
|
|
|
});
|
|
|
}
|
|
|
},
|
|
|
+ onRegister() {
|
|
|
+ this.$refs.personInfoRef.validate(async valid => {
|
|
|
+ if(valid) {
|
|
|
+ const params = JSON.parse(JSON.stringify(this.form))
|
|
|
+ params.password = crypto.sm3(params.password);
|
|
|
+ delete params.confirmPassword
|
|
|
+ if(params.projectDate.length) {
|
|
|
+ params.startDate = params.projectDate[0]
|
|
|
+ params.endDate = params.projectDate[1]
|
|
|
+ }
|
|
|
+ delete params.projectDate
|
|
|
+ if(params.registerType === '10') {
|
|
|
+ params.applyPgId = params.applyPg.id
|
|
|
+ params.applyPgName = params.applyPg.padName
|
|
|
+ }
|
|
|
+ delete params.applyPg
|
|
|
+ const [err] = await to(register(params));
|
|
|
+ if(err) {
|
|
|
+ this.$message.warning('操作失败')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.$message.success({
|
|
|
+ message: '注册成功,即将跳转登录页',
|
|
|
+ onClose: () => {
|
|
|
+ this.$router.push('/login')
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
login() {
|
|
|
if (this.active < 3) {
|
|
|
this.active++;
|
|
|
@@ -290,7 +361,7 @@ a {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
justify-content: center;
|
|
|
- background: url('../assets/img/login-bg.png') center no-repeat;
|
|
|
+ background: url("../assets/img/login-bg.png") center no-repeat;
|
|
|
background-size: 100% 100%;
|
|
|
}
|
|
|
|
|
|
@@ -356,4 +427,7 @@ a {
|
|
|
background-color: #fff;
|
|
|
width: 40%;
|
|
|
}
|
|
|
+.el-steps {
|
|
|
+ justify-content: center;
|
|
|
+}
|
|
|
</style>
|