Forráskód Böngészése

入职登记功能调整

huangguoce 2 hete
szülő
commit
d315b49db6

+ 24 - 19
src/api/sys/userService.js

@@ -2,13 +2,13 @@ import request from "@/utils/httpRequest";
 import { SYS_PATH as prefix } from "../AppPath";
 
 export default {
-	saveCertList (inputForm) {
+	saveCertList(inputForm) {
 		return request({
 			url: prefix + `/sys/user/saveCertList`,
-			method: 'post',
-			headers: {arrayFormat: 'repeat'},
-			data: inputForm
-		})
+			method: "post",
+			headers: { arrayFormat: "repeat" },
+			data: inputForm,
+		});
 	},
 	save: function (inputForm) {
 		return request({
@@ -143,51 +143,50 @@ export default {
 		});
 	},
 
-	is:function() {
+	is: function () {
 		return request({
 			url: prefix + "/sys/user/isAdmin",
 			method: "get",
 		});
 	},
-	isKjsz:function() {
+	isKjsz: function () {
 		return request({
 			url: prefix + "/sys/user/isKjsz",
 			method: "get",
 		});
 	},
 
-	isZj:function() {
+	isZj: function () {
 		return request({
 			url: prefix + "/sys/user/isZj",
 			method: "get",
 		});
 	},
-	isDgsbxBmzr:function() {
+	isDgsbxBmzr: function () {
 		return request({
 			url: prefix + "/sys/user/isDgsbxBmzr",
 			method: "get",
 		});
 	},
-	isZjbry:function() {
+	isZjbry: function () {
 		return request({
 			url: prefix + "/sys/user/isZjbry",
 			method: "get",
 		});
 	},
-	isSs:function() {
+	isSs: function () {
 		return request({
 			url: prefix + "/sys/user/isSs",
 			method: "get",
 		});
 	},
-	isBggdgly:function() {
+	isBggdgly: function () {
 		return request({
 			url: prefix + "/sys/user/isBggdgly",
 			method: "get",
 		});
 	},
 
-
 	queryDetailList(ids) {
 		return request({
 			url: prefix + `/sys/user/queryDetailList`,
@@ -202,7 +201,7 @@ export default {
 			params: { id: id },
 		});
 	},
-	isUpdatePassword:function() {
+	isUpdatePassword: function () {
 		return request({
 			url: prefix + `/sys/user/isUpdatePassword`,
 			method: "get",
@@ -223,19 +222,25 @@ export default {
 			method: "post",
 		});
 	},
-	updateEmail(params){
+	updateEmail(params) {
 		return request({
 			url: prefix + `/sys/user/updateEmail`,
 			method: "post",
-			params:params
+			params: params,
 		});
 	},
-	getMobileById(id){
+	getMobileById(id) {
 		return request({
 			url: prefix + `/sys/user/getMobileById`,
 			method: "post",
 			params: { id: id },
 		});
-	}
-
+	},
+	updateLoginFlag(params) {
+		return request({
+			url: prefix + `/sys/user/updateLoginFlag`,
+			method: "post",
+			data: params,
+		});
+	},
 };

+ 48 - 8
src/views/human/enrollment/registration/EnrollmentRegistrationEditForm.vue

@@ -12,18 +12,22 @@
 						<el-divider content-position="left"><i class="el-icon-document"></i> 基础信息</el-divider>
 						<el-row :gutter="26">
 							<el-col :span="12">
-								<el-form-item label="姓名" prop="name">
+								<el-form-item label="姓名" prop="name"
+									:rules="[{ required: true, message: '姓名不能为空', trigger: 'blur' }]">
 									<el-input v-model="inputForm.name"></el-input>
 								</el-form-item>
 							</el-col>
 							<el-col :span="12">
-								<el-form-item label="身份证号码" prop="idCard">
+								<el-form-item label="身份证号码" prop="idCard"
+									:rules="[{ required: true, validator: validator.isCardId, trigger: 'blur' }]">
 									<el-input v-model="inputForm.idCard"
 										@blur="idCardOnly(inputForm.idCard)"></el-input>
 								</el-form-item>
 							</el-col>
 							<el-col :span="12">
-								<el-form-item label="性别" prop="sex">
+								<el-form-item label="性别" prop="sex" :rules="[
+									{ required: true, message: '性别不能为空', trigger: 'change' }
+								]">
 									<el-radio-group v-model="inputForm.sex">
 										<el-radio v-for="item in $dictUtils.getDictList('sex')" :label="item.value"
 											:key="item.value">{{ item.label }}</el-radio>
@@ -31,12 +35,15 @@
 								</el-form-item>
 							</el-col>
 							<el-col :span="12">
-								<el-form-item label="年龄" prop="age">
+								<el-form-item label="年龄" prop="age"
+									:rules="[{ required: true, message: '年龄不能为空', trigger: 'change' }]">
 									<el-input v-model="inputForm.age" type="number"></el-input>
 								</el-form-item>
 							</el-col>
 							<el-col :span="12">
-								<el-form-item label="出生日期" prop="birthday">
+								<el-form-item label="出生日期" prop="birthday" :rules="[
+									{ required: true, message: '请填写出生日期', trigger: 'blur' }
+								]">
 									<el-date-picker style="width: 100%" v-model="inputForm.birthday"
 										value-format="YYYY-MM-DD" placeholder="选择日期">
 									</el-date-picker>
@@ -75,7 +82,8 @@
 
 							</el-col>
 							<el-col :span="12">
-								<el-form-item label="联系电话" prop="mobilePhone">
+								<el-form-item label="联系电话" prop="mobilePhone"
+									:rules="[{ required: true, message: '联系电话不能为空', trigger: 'change' }]">
 									<el-input v-model="inputForm.mobilePhone"
 										@blur="mobilePhoneOnly(inputForm.mobilePhone)"></el-input>
 								</el-form-item>
@@ -90,6 +98,26 @@
 									<el-input v-model="inputForm.permanentAddress"></el-input>
 								</el-form-item>
 							</el-col>
+
+							<el-col :span="12">
+								<el-form-item label="密码:" prop="newPassword">
+									<el-input v-model="inputForm.newPassword" maxlength="50" placeholder="若不修改,请留空"
+										show-password></el-input>
+								</el-form-item>
+							</el-col>
+							<el-col :span="12">
+								<el-form-item label="确认密码" prop="confirmNewPassword" :rules="inputForm.newPassword ? [
+									{
+										validator: validatePass2,
+										trigger: 'blur',
+									},
+								] :
+									[]
+									">
+									<el-input v-model="inputForm.confirmNewPassword" maxlength="50" placeholder=""
+										show-password></el-input>
+								</el-form-item>
+							</el-col>
 						</el-row>
 						<el-divider content-position="left"><i class="el-icon-document"></i> 学历信息</el-divider>
 						<el-row :gutter="26">
@@ -192,7 +220,8 @@
 												label: 'name',         // 显示名称
 												children: 'children'    // 子级字段名
 											}" :url="`/system-server/sys/office/treeData?type=2`" :value="inputForm.department" :accordion="true"
-												size="default" @getValue="(value) => { inputForm.department = value }" />
+												size="default"
+												@getValue="(value) => { inputForm.department = value }" />
 										</el-form-item>
 									</el-col>
 									<el-col :span="12">
@@ -271,7 +300,8 @@
 												label: 'name',         // 显示名称
 												children: 'children'    // 子级字段名
 											}" :url="`/system-server/sys/office/treeData?type=2`" :value="inputForm.department" :accordion="true"
-												size="default" @getValue="(value) => { inputForm.department = value }" />
+												size="default"
+												@getValue="(value) => { inputForm.department = value }" />
 										</el-form-item>
 									</el-col>
 									<el-col :span="12">
@@ -853,6 +883,9 @@ export default {
 				socialSecurityPictureOppositeUrl: '',
 				roleIdList: [],
 				postIdList: [],
+
+				confirmNewPassword: "",//确认密码
+				newPassword: "" // 密码
 			},
 			keyWatch: '',
 			roleList: [],
@@ -900,6 +933,13 @@ export default {
 		}
 	},
 	methods: {
+		validatePass2(rule, value, callback) {
+			if (value !== this.inputForm.newPassword) {
+				callback(new Error("两次输入密码不一致!"));
+			} else {
+				callback();
+			}
+		},
 		handleUploadSuccess(response, file, fileList) {
 			return this.handleAvatarSuccess(response, file, fileList, null, 'front')
 		},

+ 36 - 5
src/views/human/enrollment/registration/EnrollmentRegistrationList.vue

@@ -132,7 +132,7 @@
 									field="mobilePhone"></vxe-column>
 								<vxe-column min-width="160" align="center" title="毕业院校"
 									field="graduatedFrom"></vxe-column>
-<!--								<vxe-column min-width="160" fixed="right" align="center" title="是否已加入钉钉" field="ddType">
+								<!--								<vxe-column min-width="160" fixed="right" align="center" title="是否已加入钉钉" field="ddType">
 									<template #default="scope">
 										<el-button v-if="scope.row.ddType === '1'" @click="detail(scope.row)"
 											type="success" effect="dark">{{ $dictUtils.getDictLabel("dd_type",
@@ -156,8 +156,15 @@
 												'未开始') }} </el-button>
 									</template>
 								</vxe-column>
+								<vxe-column min-width="100" title="账号状态" fixed="right" align="center" field="loginFlag">
+									<template #default="scope">
+										<el-button v-if="scope.row.loginFlag == '1'" type="primary"
+											effect="dark">正常</el-button>
+										<el-button v-else type="danger" effect="dark">禁用</el-button>
+									</template>
+								</vxe-column>
 
-								<vxe-column title="操作" width="200px" fixed="right" align="center">
+								<vxe-column title="操作" width="300px" fixed="right" align="center">
 									<template #default="scope">
 										<el-button v-if="(hasPermission('enrollmentRegistration:editPw')) &&
 											(scope.row.type === '5' || scope.row.type === '4' || scope.row.type === '3')" text type="primary" @click="
@@ -168,7 +175,15 @@
 										<el-button
 											v-if="
 												(hasPermission('enrollmentRegistration:edit')) && (scope.row.type === '5' || scope.row.type === '4' || scope.row.type === '3')"
-											text type="primary" @click="del(scope.row.id)">删除</el-button>
+											text type="danger" @click="del(scope.row.id)">删除</el-button>
+										<el-button text type="danger"
+											v-if="(hasPermission('enrollmentRegistration:edit')) && (scope.row.loginFlag == '1')"
+											@click=" updateLoginFlag(scope.row.userId, '0')">禁用</el-button>
+										<el-button text type="primary"
+											v-if="(hasPermission('enrollmentRegistration:edit')) && (scope.row.loginFlag == '0')"
+											@click="updateLoginFlag(scope.row.userId, '1')">启用</el-button>
+										<el-button text type="primary"
+											@click="removeRedis(scope.row.userId)">清除登录缓存</el-button>
 									</template>
 								</vxe-column>
 							</vxe-table>
@@ -514,7 +529,7 @@ export default {
 			})
 		},
 		removeRedis(userId) {
-			this.$confirm(`确定清除所选项登录缓存吗?`, '提示', {
+			this.$confirm(`确定清除该用户的登录缓存吗?`, '提示', {
 				confirmButtonText: '确定',
 				cancelButtonText: '取消',
 				type: 'warning'
@@ -526,7 +541,23 @@ export default {
 					this.loading = false
 				})
 			})
-		}
+		},
+		//修改用户是否允许登录
+		updateLoginFlag(id, loginFlag) {
+			let msg = loginFlag == "1" ? "确定允许该用户登录吗?" : "确定禁止该用户登录吗?"
+			this.$confirm(msg, '提示', {
+				confirmButtonText: '确定',
+				cancelButtonText: '取消',
+				type: 'warning'
+			}).then(() => {
+				this.loading = true
+				userService.updateLoginFlag({ id: id, loginFlag: loginFlag }).then(res => {
+					this.$message.success("修改成功")
+					this.refreshList()
+					this.loading = false
+				})
+			})
+		},
 	}
 }
 </script>