|
@@ -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", {
|