Browse Source

登录日志新增解锁账户功能

RuoYi 2 years ago
parent
commit
6b236930fd

+ 8 - 0
src/api/monitor/logininfor.js

@@ -17,6 +17,14 @@ export function delLogininfor(infoId) {
   })
 }
 
+// 解锁用户登录状态
+export function unlockLogininfor(userName) {
+  return request({
+    url: '/monitor/logininfor/unlock/' + userName,
+    method: 'get'
+  })
+}
+
 // 清空登录日志
 export function cleanLogininfor() {
   return request({

+ 27 - 4
src/views/monitor/logininfor/index.vue

@@ -58,7 +58,7 @@
                icon="Delete"
                :disabled="multiple"
                @click="handleDelete"
-               v-hasPermi="['system:logininfor:remove']"
+               v-hasPermi="['monitor:logininfor:remove']"
             >删除</el-button>
          </el-col>
          <el-col :span="1.5">
@@ -67,16 +67,26 @@
                plain
                icon="Delete"
                @click="handleClean"
-               v-hasPermi="['system:logininfor:remove']"
+               v-hasPermi="['monitor:logininfor:remove']"
             >清空</el-button>
          </el-col>
+         <el-col :span="1.5">
+            <el-button
+               type="primary"
+               plain
+               icon="Unlock"
+               :disabled="single"
+               @click="handleUnlock"
+               v-hasPermi="['monitor:logininfor:unlock']"
+            >解锁</el-button>
+         </el-col>
          <el-col :span="1.5">
             <el-button
                type="warning"
                plain
                icon="Download"
                @click="handleExport"
-               v-hasPermi="['system:logininfor:export']"
+               v-hasPermi="['monitor:logininfor:export']"
             >导出</el-button>
          </el-col>
          <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
@@ -114,7 +124,7 @@
 </template>
 
 <script setup name="Logininfor">
-import { list, delLogininfor, cleanLogininfor } from "@/api/monitor/logininfor";
+import { list, delLogininfor, cleanLogininfor, unlockLogininfor } from "@/api/monitor/logininfor";
 
 const { proxy } = getCurrentInstance();
 const { sys_common_status } = proxy.useDict("sys_common_status");
@@ -123,7 +133,9 @@ const logininforList = ref([]);
 const loading = ref(true);
 const showSearch = ref(true);
 const ids = ref([]);
+const single = ref(true);
 const multiple = ref(true);
+const selectName = ref("");
 const total = ref(0);
 const dateRange = ref([]);
 const defaultSort = ref({ prop: "loginTime", order: "descending" });
@@ -164,6 +176,8 @@ function resetQuery() {
 function handleSelectionChange(selection) {
   ids.value = selection.map(item => item.infoId);
   multiple.value = !selection.length;
+  single.value = selection.length != 1;
+  selectName.value = selection.map(item => item.userName);
 }
 /** 排序触发事件 */
 function handleSortChange(column, prop, order) {
@@ -190,6 +204,15 @@ function handleClean() {
     proxy.$modal.msgSuccess("清空成功");
   }).catch(() => {});
 }
+/** 解锁按钮操作 */
+function handleUnlock() {
+  const username = selectName.value;
+  proxy.$modal.confirm('是否确认解锁用户"' + username + '"数据项?').then(function () {
+    return unlockLogininfor(username);
+  }).then(() => {
+    proxy.$modal.msgSuccess("用户" + username + "解锁成功");
+  }).catch(() => {});
+}
 /** 导出按钮操作 */
 function handleExport() {
   proxy.download("monitor/logininfor/export", {

+ 4 - 4
src/views/monitor/operlog/index.vue

@@ -73,7 +73,7 @@
                icon="Delete"
                :disabled="multiple"
                @click="handleDelete"
-               v-hasPermi="['system:operlog:remove']"
+               v-hasPermi="['monitor:operlog:remove']"
             >删除</el-button>
          </el-col>
          <el-col :span="1.5">
@@ -82,7 +82,7 @@
                plain
                icon="Delete"
                @click="handleClean"
-               v-hasPermi="['system:operlog:remove']"
+               v-hasPermi="['monitor:operlog:remove']"
             >清空</el-button>
          </el-col>
          <el-col :span="1.5">
@@ -91,7 +91,7 @@
                plain
                icon="Download"
                @click="handleExport"
-               v-hasPermi="['system:operlog:export']"
+               v-hasPermi="['monitor:operlog:export']"
             >导出</el-button>
          </el-col>
          <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
@@ -125,7 +125,7 @@
                   type="text"
                   icon="View"
                   @click="handleView(scope.row, scope.index)"
-                  v-hasPermi="['system:operlog:query']"
+                  v-hasPermi="['monitor:operlog:query']"
                >详细</el-button>
             </template>
          </el-table-column>