67 lines
1.7 KiB
TypeScript
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
|
|
}
|