1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
| <script setup lang="ts">
| import type { Recordable } from '@vben/types';
|
| import { Popconfirm } from 'ant-design-vue';
|
| import { useVbenVxeGrid, type VxeGridProps } from '#/adapter/vxe-table';
| import { forceLogout2, onlineDeviceList } from '#/api/monitor/online';
| import { columns } from '#/views/monitor/online/data';
|
| const gridOptions: VxeGridProps = {
| columns,
| keepSource: true,
| pagerConfig: {},
| proxyConfig: {
| ajax: {
| query: async () => {
| return await onlineDeviceList();
| },
| },
| },
| rowConfig: {
| isHover: true,
| keyField: 'tokenId',
| },
| };
|
| const [BasicTable, tableApi] = useVbenVxeGrid({ gridOptions });
|
| async function handleForceOffline(row: Recordable<any>) {
| await forceLogout2(row.tokenId);
| await tableApi.query();
| }
| </script>
|
| <template>
| <div>
| <BasicTable table-title="我的在线设备">
| <template #action="{ row }">
| <Popconfirm
| :title="`确认强制下线[${row.userName}]?`"
| placement="left"
| @confirm="handleForceOffline(row)"
| >
| <a-button danger size="small" type="link">强制下线</a-button>
| </Popconfirm>
| </template>
| </BasicTable>
| </div>
| </template>
|
|