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

master
RuoYi 2 years ago
parent f8e6431684
commit 6b236930fd
  1. 8
      src/api/monitor/logininfor.js
  2. 31
      src/views/monitor/logininfor/index.vue
  3. 8
      src/views/monitor/operlog/index.vue

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

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

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

Loading…
Cancel
Save