reset password
This commit is contained in:
@@ -97,6 +97,11 @@ export function editUser(user: User) {
|
|||||||
return http.put("admin/user", user)
|
return http.put("admin/user", user)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 重置用户密码
|
||||||
|
export function resetPassword(userID: number) {
|
||||||
|
return http.post("admin/reset_password", { id: userID })
|
||||||
|
}
|
||||||
|
|
||||||
// 导入用户
|
// 导入用户
|
||||||
export function importUsers(users: string[][]) {
|
export function importUsers(users: string[][]) {
|
||||||
return http.post("admin/user", { users })
|
return http.post("admin/user", { users })
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ const emit = defineEmits<{
|
|||||||
(e: "deleteUser", value: number[]): void
|
(e: "deleteUser", value: number[]): void
|
||||||
(e: "userBanned", value: User): void
|
(e: "userBanned", value: User): void
|
||||||
(e: "openEditModal", value: User): void
|
(e: "openEditModal", value: User): void
|
||||||
|
(e: "resetPassword", value: User): void
|
||||||
}>()
|
}>()
|
||||||
|
|
||||||
async function banUser() {
|
async function banUser() {
|
||||||
@@ -20,6 +21,14 @@ async function banUser() {
|
|||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<n-flex>
|
<n-flex>
|
||||||
|
<n-button
|
||||||
|
size="small"
|
||||||
|
type="error"
|
||||||
|
secondary
|
||||||
|
@click="$emit('resetPassword', props.user)"
|
||||||
|
>
|
||||||
|
重置密码
|
||||||
|
</n-button>
|
||||||
<n-button
|
<n-button
|
||||||
size="small"
|
size="small"
|
||||||
type="primary"
|
type="primary"
|
||||||
|
|||||||
@@ -3,7 +3,13 @@ import { DataTableRowKey, SelectOption } from "naive-ui"
|
|||||||
import Pagination from "~/shared/components/Pagination.vue"
|
import Pagination from "~/shared/components/Pagination.vue"
|
||||||
import { parseTime } from "~/utils/functions"
|
import { parseTime } from "~/utils/functions"
|
||||||
import { User } from "~/utils/types"
|
import { User } from "~/utils/types"
|
||||||
import { deleteUsers, editUser, getUserList, importUsers } from "../api"
|
import {
|
||||||
|
deleteUsers,
|
||||||
|
editUser,
|
||||||
|
getUserList,
|
||||||
|
importUsers,
|
||||||
|
resetPassword,
|
||||||
|
} from "../api"
|
||||||
import Actions from "./components/Actions.vue"
|
import Actions from "./components/Actions.vue"
|
||||||
import Name from "./components/Name.vue"
|
import Name from "./components/Name.vue"
|
||||||
|
|
||||||
@@ -58,13 +64,14 @@ const columns: DataTableColumn<User>[] = [
|
|||||||
{
|
{
|
||||||
key: "actions",
|
key: "actions",
|
||||||
title: "选项",
|
title: "选项",
|
||||||
width: 200,
|
width: 260,
|
||||||
render: (row) =>
|
render: (row) =>
|
||||||
h(Actions, {
|
h(Actions, {
|
||||||
user: row,
|
user: row,
|
||||||
onDeleteUser: onDeleteUsers,
|
onDeleteUser: onDeleteUsers,
|
||||||
onUserBanned,
|
onUserBanned,
|
||||||
onOpenEditModal,
|
onOpenEditModal,
|
||||||
|
onResetPassword,
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
@@ -92,6 +99,16 @@ async function onDeleteUsers(userIDs: DataTableRowKey[] | Ref<number[]>) {
|
|||||||
listUsers()
|
listUsers()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function onResetPassword(user: User) {
|
||||||
|
const res = await resetPassword(user.id)
|
||||||
|
users.value = users.value.map((it) => {
|
||||||
|
if (it.id === user.id) {
|
||||||
|
it.password = res.data.new_password
|
||||||
|
}
|
||||||
|
return it
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
async function onUserBanned(user: User) {
|
async function onUserBanned(user: User) {
|
||||||
users.value = users.value.map((it) => {
|
users.value = users.value.map((it) => {
|
||||||
if (it.id === user.id) {
|
if (it.id === user.id) {
|
||||||
|
|||||||
Reference in New Issue
Block a user