quest.ts 2.43 KB
import { defHttp } from '/@/utils/http/axios';

enum Api {
    QUEST_LIST = '/order/erp/quest/list_by_page',
    QUEST_CREATE = '/order/erp/quest/add',
    QUEST_DELETE = '/order/erp/quest/delete_by_id',
    QUEST_UPDATE = '/order/erp/quest/edit',
    QUEST_SET_STATUS = '/order/erp/quest/setStatus',
    QUEST_RELEASE_LIST = '/order/erp/quest/realseList',
    QUEST_GET_ALL = '/order/erp/quest/get_all',
    QUEST_QUERY_TITLE = '/order/erp/quest/queryTitle',
}

export const questUpdate=async(data:any)=>{
  const res=await defHttp.post<any>({
    url: Api.QUEST_UPDATE,
    data,
    successMsg: '操作成功'
  });
  return res;
}

export const questDelete = async (ids: number[]) => {
  const res = await defHttp.post<any>({ 
    url: Api.QUEST_DELETE, 
    data: {ids},
    successMsg: '删除成功'
  });
  return res;
};

export const questCreate = async (data: any) => {
  const res = await defHttp.post<any>({ 
    url: Api.QUEST_CREATE, 
    data,
    successMsg: '创建成功'
  });
  return res;
};

export const getQuestList = async (params: any) => {
  const res=await defHttp.post<any>({
    url: Api.QUEST_LIST,
    params,
  });
  const result={
      items: res.records,
      total: res.total,
    };
    return result;
};

export const setQuestStatus = async (data: { id: number; status: number; refuseRemark?: string }) => {
  const res = await defHttp.post<any>({ 
    url: Api.QUEST_SET_STATUS, 
    data,
    successMsg: data.status === 10 ? '审核通过成功' : '审核驳回成功'
  });
  return res;
};

export const getQuestReleaseData = async (id: number) => {
  const res = await defHttp.post<any>({ 
    url: Api.QUEST_RELEASE_LIST, 
    data: { id } 
  });
  
  // 如果返回的是带记录和总数的格式,处理为标准格式
  if (res && res.records && res.total !== undefined) {
    return {
      items: res.records,
      total: res.total
    };
  }
  
  return res;
};

/**
 * 获取所有扣款原因列表
 * @returns 扣款原因列表数组,包含id和title
 */
export const getAllQuests = async () => {
  const res = await defHttp.post<any>({
    url: Api.QUEST_GET_ALL
  });
  return res;
};

/**
 * 根据输入的关键词搜索匹配的扣款原因
 * @param title 搜索关键词
 * @returns 匹配的扣款原因列表数组,包含id和title
 */
export const queryQuestTitle = async (title: string) => {
  const res = await defHttp.post<any>({
    url: Api.QUEST_QUERY_TITLE,
    data: { title }
  });
  return res;
};