2026-03-10 16:19:47 +08:00

67 lines
1.7 KiB
TypeScript

import api from './index'
import type { ApiResponse, PaginatedResponse, Person } from '@/types'
export const getPersonList = async (params: {
page?: number
pageSize?: number
keyword?: string
status?: string
}) => {
const response = await api.get<ApiResponse<PaginatedResponse<Person>>>('/persons', { params })
return response.data
}
export const getPersonDetail = async (id: number) => {
const response = await api.get<ApiResponse<Person>>(`/persons/${id}`)
return response.data
}
export const createPerson = async (data: {
nickname: string
real_name: string
id_number?: string
department?: string
position?: string
phone?: string
email?: string
status?: string
remarks?: string
}) => {
const response = await api.post<ApiResponse<Person>>('/persons', data)
return response.data
}
export const updatePerson = async (
id: number,
data: {
nickname?: string
real_name?: string
id_number?: string
department?: string
position?: string
phone?: string
email?: string
status?: string
remarks?: string
}
) => {
const response = await api.put<ApiResponse<Person>>(`/persons/${id}`, data)
return response.data
}
export const updatePersonStatus = async (id: number, status: 'active' | 'inactive') => {
const response = await api.patch<ApiResponse<Person>>(`/persons/${id}/status`, { status })
return response.data
}
export const deletePerson = async (id: number) => {
const response = await api.delete<ApiResponse<null>>(`/persons/${id}`)
return response.data
}
export const getPersonOptions = async () => {
const response = await api.get<ApiResponse<Person[]>>('/persons/options')
return response.data
}