浏览代码

增加用户登录限制功能。

wukai 1 年之前
父节点
当前提交
fbe8ce317a
共有 3 个文件被更改,包括 68 次插入23 次删除
  1. 1 1
      index.html
  2. 8 0
      src/api/system/user.js
  3. 59 22
      src/views/system/user/index.vue

+ 1 - 1
index.html

@@ -9,7 +9,7 @@
 		<link rel="icon" href="/favicon.ico">
 		<title>若依管理系统</title>
 		<!--引入onlyoffice组件-->
-		<script type="text/javascript" src="http://192.168.1.28:19531/web-apps/apps/api/documents/api.js" charset="utf-8" async></script>
+		<script type="text/javascript" src="http://192.168.188.188:19531/web-apps/apps/api/documents/api.js" charset="utf-8" async></script>
 		<!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
 		<style>
 			html,

+ 8 - 0
src/api/system/user.js

@@ -87,6 +87,14 @@ export function updateUserProfile(data) {
   })
 }
 
+export function updateUserExpand(data) {
+  return request({
+    url: '/system/user/expand',
+    method: 'put',
+    data: data
+  })
+}
+
 // 用户密码重置
 export function updateUserPwd(oldPassword, newPassword) {
   const data = {

+ 59 - 22
src/views/system/user/index.vue

@@ -241,21 +241,21 @@
 
 		<!-- 修改用户登录限制对话框 -->
 		<el-dialog :title="login.title" v-model="login.open" width="500px" append-to-body>
-			<el-form ref="expandRef" :model="loginForm" :rules="rules" label-width="80px">
-				<el-form-item label="登录IP限制" prop="loginIp">
-					<el-input v-model="form.loginIp" type="textarea" placeholder="请输入限制登录IP地址,多个匹配项以;分隔." />
+			<el-form ref="expandRef" :model="loginForm" :rules="rules" label-width="100px">
+				<el-form-item label="登录IP限制:" prop="loginIp">
+					<el-input v-model="loginForm.loginIp" type="textarea" placeholder="请输入限制登录IP地址,多个匹配项以;分隔." />
 				</el-form-item>
-				<el-form-item label="登录时间限制" prop="loginTime">
+				<el-form-item label="登录时间限制:" prop="loginTime">
 					<el-row>
-						<el-time-select></el-time-select>
-						<el-time-select></el-time-select>
+						<el-time-select v-model="loginForm.start" start="08:30" end="20:30" :max-time="loginForm.end" placeholder='开始时间' style="width:160px"></el-time-select>
+						&nbsp;&nbsp;&nbsp;至&nbsp;&nbsp;&nbsp;
+						<el-time-select v-model="loginForm.end" start="08:30" end="20:30" :min-time="loginForm.start" placeholder=' 结束时间'  style="width:160px"></el-time-select>
 					</el-row>
-					<el-input v-model="form.loginTime" type="textarea" placeholder="请输入内容" />
 				</el-form-item>
 			</el-form>
 			<template #footer>
 				<div class="dialog-footer">
-					<el-button type="primary" @click="submitLoginLoginLimit">确 定</el-button>
+					<el-button type="primary" @click="submitLoginLimit">确 定</el-button>
 					<el-button @click="cancelLoginLimit">取 消</el-button>
 				</div>
 			</template>
@@ -275,7 +275,8 @@
 		getUser,
 		updateUser,
 		addUser,
-		deptTreeSelect
+		deptTreeSelect,
+		updateUserExpand 
 	} from "@/api/system/user";
 
 	const router = useRouter();
@@ -376,7 +377,14 @@
 
 	const data = reactive({
 		form: {},
-		longinForm:{},
+		loginForm: {
+			userId: null,
+			lastUpdateTime: null,
+			loginIp: null,
+			start: '',
+			end: '',
+			loginTime: null
+		},
 		queryParams: {
 			pageNum: 1,
 			pageSize: 10,
@@ -427,7 +435,8 @@
 	const {
 		queryParams,
 		form,
-		rules,longinForm 
+		rules,
+		loginForm
 	} = toRefs(data);
 
 	/** 通过条件过滤节点  */
@@ -584,15 +593,17 @@
 			roleIds: []
 		};
 		proxy.resetForm("userRef");
-	}; 
-	
+	};
+
 	/** 重置操作表单 */
 	function resetLoginLimit() {
-		longinForm.value = {
-		  userId: null,
-		  lastUpdateTime: null,
-		  loginIp: null,
-		  loginTime: null
+		loginForm.value = {
+			userId: null,
+			lastUpdateTime: null,
+			loginIp: null,
+			start: '',
+			end: '',
+			loginTime: null
 		};
 		proxy.resetForm("expandRef");
 	};
@@ -603,8 +614,8 @@
 	};
 	/** 取消按钮 */
 	function cancelLoginLimit() {
-		login.value = false;
-		resetLoginLimit();
+		login.open = false;
+		// resetLoginLimit();
 	};
 	/** 新增按钮操作 */
 	function handleAdd() {
@@ -635,15 +646,41 @@
 
 	/** 限制登录操作 */
 	function handleLoginLimit(row) {
-		reset();
+		resetLoginLimit();
 		const userId = row.userId || ids.value;
 		getUser(userId).then(response => {
-			longinForm.value = response.data.expand;
+			let data=response.data.expand;
+			if(!data){
+				data={};
+			}
+			data.userId = userId;
+			try{
+				let tt=data.loginTime.split("-");
+				data.start=tt[0];
+				data.end=tt[1];
+			}catch(e){
+			}
+			loginForm.value = data;
 			login.open = true;
 			login.title = "登录限制";
 		});
 	};
 	/** 提交按钮 */
+	function submitLoginLimit() {
+		proxy.$refs["expandRef"].validate(valid => {
+			if (valid) {
+				let form=loginForm.value;
+				if(form.start&&form.end){
+					form.loginTime=form.start+"-"+form.end;
+				}
+				updateUserExpand(form).then(response => {
+					proxy.$modal.msgSuccess("修改成功");
+					login.open  = false;
+					getList();
+				});
+			}
+		});
+	}; /** 提交按钮 */
 	function submitForm() {
 		proxy.$refs["userRef"].validate(valid => {
 			if (valid) {