/** * 用户待办操作服务 * 用于后台管理指定用户登录后需要执行的特定操作 */ import apiClient from '@/infrastructure/api/client'; import { API_ENDPOINTS } from '@/infrastructure/api/endpoints'; import type { PendingAction, PendingActionListResponse, CreatePendingActionRequest, BatchCreatePendingActionRequest, UpdatePendingActionRequest, QueryPendingActionsParams, BatchCreateResult, } from '@/types/pending-action.types'; /** * 待办操作管理服务 * * API 响应结构(经过 apiClient 拦截器解包后): * { success: true, data: { code: "OK", message: "success", data: {...} } } * * 需要访问 .data.data 获取实际业务数据 */ export const pendingActionService = { /** * 查询待办操作列表 */ async getList(params: QueryPendingActionsParams = {}): Promise { const response = await apiClient.get(API_ENDPOINTS.PENDING_ACTIONS.LIST, { params }); // eslint-disable-next-line @typescript-eslint/no-explicit-any const result = (response as any)?.data?.data; return result ?? { items: [], total: 0, page: 1, limit: 20 }; }, /** * 获取单个待办操作详情 */ async getDetail(id: string): Promise { const response = await apiClient.get(API_ENDPOINTS.PENDING_ACTIONS.DETAIL(id)); // eslint-disable-next-line @typescript-eslint/no-explicit-any return (response as any)?.data?.data; }, /** * 创建待办操作 */ async create(data: CreatePendingActionRequest): Promise { const response = await apiClient.post(API_ENDPOINTS.PENDING_ACTIONS.CREATE, data); // eslint-disable-next-line @typescript-eslint/no-explicit-any return (response as any)?.data?.data; }, /** * 批量创建待办操作 */ async batchCreate(data: BatchCreatePendingActionRequest): Promise { const response = await apiClient.post(API_ENDPOINTS.PENDING_ACTIONS.BATCH_CREATE, data); // eslint-disable-next-line @typescript-eslint/no-explicit-any return (response as any)?.data?.data; }, /** * 更新待办操作 */ async update(id: string, data: UpdatePendingActionRequest): Promise { const response = await apiClient.put(API_ENDPOINTS.PENDING_ACTIONS.UPDATE(id), data); // eslint-disable-next-line @typescript-eslint/no-explicit-any return (response as any)?.data?.data; }, /** * 取消待办操作(软删除) */ async cancel(id: string): Promise { const response = await apiClient.post(API_ENDPOINTS.PENDING_ACTIONS.CANCEL(id)); // eslint-disable-next-line @typescript-eslint/no-explicit-any return (response as any)?.data?.data; }, /** * 删除待办操作(硬删除) */ async delete(id: string): Promise { await apiClient.delete(API_ENDPOINTS.PENDING_ACTIONS.DELETE(id)); }, }; export default pendingActionService;