|
|
@@ -13,12 +13,14 @@
|
|
13
|
13
|
</el-select>
|
|
14
|
14
|
</el-form-item>
|
|
15
|
15
|
<el-form-item>
|
|
16
|
|
- <el-button type="primary" @click="handlerQuery">{{ T('Filter')}}</el-button>
|
|
|
16
|
+ <el-button type="primary" @click="handlerQuery">{{ T('Filter') }}</el-button>
|
|
|
17
|
+ <el-button type="danger" @click="toBatchDelete">{{ T('BatchDelete') }}</el-button>
|
|
17
|
18
|
</el-form-item>
|
|
18
|
19
|
</el-form>
|
|
19
|
20
|
</el-card>
|
|
20
|
21
|
<el-card class="list-body" shadow="hover">
|
|
21
|
|
- <el-table :data="listRes.list" v-loading="listRes.loading" border>
|
|
|
22
|
+ <el-table :data="listRes.list" v-loading="listRes.loading" border @selection-change="handleSelectionChange">
|
|
|
23
|
+ <el-table-column type="selection" align="center" width="50"/>
|
|
22
|
24
|
<el-table-column prop="id" label="id" align="center" width="100"/>
|
|
23
|
25
|
<el-table-column :label="T('Owner')" align="center">
|
|
24
|
26
|
<template #default="{row}">
|
|
|
@@ -56,7 +58,7 @@
|
|
56
|
58
|
</template>
|
|
57
|
59
|
|
|
58
|
60
|
<script setup>
|
|
59
|
|
- import { onActivated, onMounted, watch } from 'vue'
|
|
|
61
|
+ import { onActivated, onMounted, ref, watch } from 'vue'
|
|
60
|
62
|
import { loadAllUsers } from '@/global'
|
|
61
|
63
|
import { useRepositories } from '@/views/user/token.js'
|
|
62
|
64
|
import { T } from '@/utils/i18n'
|
|
|
@@ -70,6 +72,7 @@
|
|
70
|
72
|
getList,
|
|
71
|
73
|
handlerQuery,
|
|
72
|
74
|
del,
|
|
|
75
|
+ batchDelete,
|
|
73
|
76
|
} = useRepositories()
|
|
74
|
77
|
|
|
75
|
78
|
onMounted(getList)
|
|
|
@@ -85,6 +88,17 @@
|
|
85
|
88
|
const now = new Date().getTime()
|
|
86
|
89
|
return row.expired_at * 1000 < now
|
|
87
|
90
|
}
|
|
|
91
|
+
|
|
|
92
|
+ const multipleSelection = ref([])
|
|
|
93
|
+ const handleSelectionChange = (val) => {
|
|
|
94
|
+ multipleSelection.value = val
|
|
|
95
|
+ }
|
|
|
96
|
+ const toBatchDelete = () => {
|
|
|
97
|
+ if (multipleSelection.value.length === 0) {
|
|
|
98
|
+ return
|
|
|
99
|
+ }
|
|
|
100
|
+ batchDelete(multipleSelection.value.map(v => v.id))
|
|
|
101
|
+ }
|
|
88
|
102
|
</script>
|
|
89
|
103
|
|
|
90
|
104
|
<style scoped lang="scss">
|