- 更新所有 admin API 文件导入路径 - 更新所有 features 中 Vue 文件的导入路径 - 修复 ChatAttachmentImage 组件导入 - 修复 auth 模块部分导入路径 剩余 ~190 个类型错误待修复(主要是缺失的模块)
77 lines
2.1 KiB
TypeScript
77 lines
2.1 KiB
TypeScript
import { apiClient } from '@/shared/api/client'
|
|
|
|
import type { ApiResponse, PaginatedResult } from '@/shared/types/types'
|
|
|
|
export interface AdminRole {
|
|
id: number
|
|
code: string
|
|
name: string
|
|
description: string
|
|
}
|
|
|
|
export interface AdminMgrUser {
|
|
id: number
|
|
username: string
|
|
nickname: string
|
|
status: string
|
|
roles: AdminRole[]
|
|
last_login_at?: string
|
|
created_at: string
|
|
updated_at: string
|
|
}
|
|
|
|
export interface CreateAdminRequest {
|
|
username: string
|
|
password: string
|
|
nickname?: string
|
|
}
|
|
|
|
export interface UpdateAdminRequest {
|
|
nickname?: string
|
|
status?: string
|
|
}
|
|
|
|
export interface ChangePasswordRequest {
|
|
old_password: string
|
|
new_password: string
|
|
}
|
|
|
|
export async function fetchAdminMgrUsers(page = 1, pageSize = 20) {
|
|
const { data } = await apiClient.get<ApiResponse<PaginatedResult<AdminMgrUser>>>('/admin/admin-users', {
|
|
params: { page, page_size: pageSize },
|
|
})
|
|
return data.data
|
|
}
|
|
|
|
export async function fetchAdminMgrUser(id: number) {
|
|
const { data } = await apiClient.get<ApiResponse<AdminMgrUser>>(`/admin/admin-users/${id}`)
|
|
return data.data
|
|
}
|
|
|
|
export async function createAdminMgrUser(req: CreateAdminRequest) {
|
|
const { data } = await apiClient.post<ApiResponse<AdminMgrUser>>('/admin/admin-users', req)
|
|
return data.data
|
|
}
|
|
|
|
export async function updateAdminMgrUser(id: number, req: UpdateAdminRequest) {
|
|
const { data } = await apiClient.put<ApiResponse<AdminMgrUser>>(`/admin/admin-users/${id}`, req)
|
|
return data.data
|
|
}
|
|
|
|
export async function deleteAdminMgrUser(id: number) {
|
|
const { data } = await apiClient.delete<ApiResponse<{ deleted: boolean }>>(`/admin/admin-users/${id}`)
|
|
return data.data
|
|
}
|
|
|
|
export async function assignAdminRoles(id: number, roleIds: number[]) {
|
|
const { data } = await apiClient.put<ApiResponse<{ updated: boolean }>>(`/admin/admin-users/${id}/roles`, {
|
|
role_ids: roleIds,
|
|
})
|
|
return data.data
|
|
}
|
|
|
|
export async function changeAdminPassword(id: number, req: ChangePasswordRequest) {
|
|
const { data } = await apiClient.put<ApiResponse<{ updated: boolean }>>(`/admin/admin-users/${id}/password`, req)
|
|
return data.data
|
|
}
|