✨优化强退功能新增批量强退在线用户
This commit is contained in:
parent
f9ee814adc
commit
a481bec282
@ -17,3 +17,12 @@ export function forceLogout(data) {
|
|||||||
data: data
|
data: data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 批量强退用户
|
||||||
|
export function forceLogoutAll(data) {
|
||||||
|
return request({
|
||||||
|
url: '/monitor/online/batchlock',
|
||||||
|
method: 'delete',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
import * as signalR from '@microsoft/signalr'
|
import * as signalR from '@microsoft/signalr'
|
||||||
import { getToken } from '@/utils/auth'
|
import { getToken } from '@/utils/auth'
|
||||||
import { ElMessage } from 'element-plus'
|
import { ElMessage } from 'element-plus'
|
||||||
|
import cache from '@/plugins/cache'
|
||||||
import analysis from '@/signalr/analysis'
|
import analysis from '@/signalr/analysis'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@ -11,7 +11,7 @@ export default {
|
|||||||
// 失败连接重试次数
|
// 失败连接重试次数
|
||||||
failNum: 4,
|
failNum: 4,
|
||||||
init(url) {
|
init(url) {
|
||||||
var socketUrl = window.location.origin + url
|
var socketUrl = window.location.origin + url + '?clientId=' + cache.local.get('clientId')
|
||||||
const connection = new signalR.HubConnectionBuilder()
|
const connection = new signalR.HubConnectionBuilder()
|
||||||
.withUrl(socketUrl, { accessTokenFactory: () => getToken() })
|
.withUrl(socketUrl, { accessTokenFactory: () => getToken() })
|
||||||
.withAutomaticReconnect() //自动重新连接
|
.withAutomaticReconnect() //自动重新连接
|
||||||
|
|||||||
@ -107,7 +107,7 @@ const useUserStore = defineStore('user', {
|
|||||||
resolve(res)
|
resolve(res)
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
console.error(error)
|
console.warn(error)
|
||||||
reject('获取用户信息失败')
|
reject('获取用户信息失败')
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
@ -39,7 +39,7 @@
|
|||||||
<h2>ZRAdmin.NET {{ $t('layout.backstageManagement') }}</h2>
|
<h2>ZRAdmin.NET {{ $t('layout.backstageManagement') }}</h2>
|
||||||
<p>
|
<p>
|
||||||
ZRAdmin.NET借鉴了很多开源项目的优点,让你开发Web管理系统更简单,所以我也把它给开源了(前端
|
ZRAdmin.NET借鉴了很多开源项目的优点,让你开发Web管理系统更简单,所以我也把它给开源了(前端
|
||||||
<code>vue页面</code>主要使用了若依,后端参考Ruoyi stringboot版本,在此表示感谢.)
|
<code>vue页面</code>主要使用了若依,后端参考Ruoyi StringBoot版本,在此表示感谢.)
|
||||||
</p>
|
</p>
|
||||||
<p>{{ $t('layout.content1') }}</p>
|
<p>{{ $t('layout.content1') }}</p>
|
||||||
<p>
|
<p>
|
||||||
|
|||||||
@ -5,7 +5,11 @@
|
|||||||
<el-button type="primary" icon="Search" @click="handleQuery">刷新</el-button>
|
<el-button type="primary" icon="Search" @click="handleQuery">刷新</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
<el-row :gutter="10" class="mb8">
|
||||||
|
<el-col :span="2">
|
||||||
|
<el-button plain type="primary" @click="onLockAll()" icon="lock" v-hasPermi="['monitor:online:forceLogout']">全部强退</el-button>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
<el-table :data="onlineUsers" v-loading="loading" ref="tableRef" border highlight-current-row>
|
<el-table :data="onlineUsers" v-loading="loading" ref="tableRef" border highlight-current-row>
|
||||||
<!-- <el-table-column prop="connnectionId" label="连接id"></el-table-column> -->
|
<!-- <el-table-column prop="connnectionId" label="连接id"></el-table-column> -->
|
||||||
<el-table-column label="No" type="index" width="50" align="center">
|
<el-table-column label="No" type="index" width="50" align="center">
|
||||||
@ -17,7 +21,7 @@
|
|||||||
<el-table-column label="登录地点" prop="location" align="center"> </el-table-column>
|
<el-table-column label="登录地点" prop="location" align="center"> </el-table-column>
|
||||||
<el-table-column label="登录IP" prop="userIP" align="center"></el-table-column>
|
<el-table-column label="登录IP" prop="userIP" align="center"></el-table-column>
|
||||||
<el-table-column prop="browser" label="登录浏览器" width="210"></el-table-column>
|
<el-table-column prop="browser" label="登录浏览器" width="210"></el-table-column>
|
||||||
<el-table-column prop="platform" label="登录设备" align="center"></el-table-column>
|
<el-table-column prop="platform" label="登录平台" align="center"></el-table-column>
|
||||||
<el-table-column prop="loginTime" label="登录时间" witdh="280px">
|
<el-table-column prop="loginTime" label="登录时间" witdh="280px">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
{{ dayjs(scope.row.loginTime).format('MM/DD日HH:mm:ss') }}
|
{{ dayjs(scope.row.loginTime).format('MM/DD日HH:mm:ss') }}
|
||||||
@ -27,7 +31,7 @@
|
|||||||
<el-table-column label="操作" align="center" width="160">
|
<el-table-column label="操作" align="center" width="160">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button text @click="onChat(scope.row)" icon="bell" v-hasRole="['admin']">通知</el-button>
|
<el-button text @click="onChat(scope.row)" icon="bell" v-hasRole="['admin']">通知</el-button>
|
||||||
<el-button text @click="onLock(scope.row)" icon="lock" v-hasRole="['admin']">强退</el-button>
|
<el-button text @click="onLock(scope.row)" icon="lock" v-hasPermi="['monitor:online:forceLogout']">强退</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@ -36,7 +40,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup name="onlineuser">
|
<script setup name="onlineuser">
|
||||||
import { listOnline, forceLogout } from '@/api/monitor/online'
|
import { listOnline, forceLogout, forceLogoutAll } from '@/api/monitor/online'
|
||||||
import dayjs from 'dayjs'
|
import dayjs from 'dayjs'
|
||||||
import useSocketStore from '@/store/modules/socket'
|
import useSocketStore from '@/store/modules/socket'
|
||||||
import useUserStore from '@/store/modules/user'
|
import useUserStore from '@/store/modules/user'
|
||||||
@ -89,18 +93,30 @@ function onChat(item) {
|
|||||||
}
|
}
|
||||||
function onLock(row) {
|
function onLock(row) {
|
||||||
proxy
|
proxy
|
||||||
.$prompt('请输入踢出原因', '', {
|
.$prompt('请输入强退原因', '', {
|
||||||
confirmButtonText: '发送',
|
confirmButtonText: '发送',
|
||||||
cancelButtonText: '取消'
|
cancelButtonText: '取消'
|
||||||
})
|
})
|
||||||
.then((val) => {
|
.then((val) => {
|
||||||
forceLogout({ ...row, time: 10, reason: val.value, clientId: useUserStore().clientId }).then((res) => {
|
forceLogout({ ...row, time: 10, reason: val.value, clientId: row.clientId }).then(() => {
|
||||||
proxy.$modal.msgSuccess('踢出成功')
|
proxy.$modal.msgSuccess('强退成功')
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.catch(() => {})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 批量强退
|
||||||
|
function onLockAll() {
|
||||||
|
proxy
|
||||||
|
.$prompt('请输入强退原因', '', {
|
||||||
|
confirmButtonText: '发送',
|
||||||
|
cancelButtonText: '取消'
|
||||||
|
})
|
||||||
|
.then((val) => {
|
||||||
|
forceLogoutAll({ time: 10, reason: val.value }).then((res) => {
|
||||||
|
proxy.$modal.msgSuccess('强退成功')
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
watch(
|
watch(
|
||||||
onlineNum,
|
onlineNum,
|
||||||
() => {
|
() => {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user